Форумы портала PHP.SU » » CMS и фреймворки » Symfony2 Doctrine. Что я делаю не так?????? За**ало!

Страниц (1): [1]
 

1. nkl - 04 Июня, 2015 - 19:40:27 - перейти к сообщению
Всем привет. Я споткнулся на банальной штуке, сохранение данных в БД. Хотя я 100 раз уже это делал!
Взгляните на кусок кода:...
PHP:
скопировать код в буфер обмена
  1. $event = new LineEvent();
  2. $event->setEventId($row->event_id);
  3. $event->setSportId($row->sport_id);
  4. $event->setCountryId($row->country_id);
  5. /* ... */
  6. $em = $this->container->get('doctrine')->getManager();
  7. $em->persist($event);
  8. $em->flush();

Мне вылетает экспешн! Будь он неладень! Нахмурился
Цитата:

[Doctrine\Common\Persistence\Mapping\MappingException]
The class 'Test\LineBundle\Entity\LineEvent' was not found in the chain configured namespaces

И все бы ничего, НО (начало файла):
PHP:
скопировать код в буфер обмена
  1. namespace Test\LineBundle\Command;
  2.  
  3. use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
  4. use Symfony\Component\Console\Input\InputInterface;
  5. use Symfony\Component\Console\Input\InputOption;
  6. use Symfony\Component\Console\Output\OutputInterface;
  7. use GuzzleHttp\Client;
  8. use Test\LineBundle\Entity\LineEvent; //обратите внимание! Всё use'aется о чем собственно реч в эксепшне и идет!!!
  9. use Test\LineBundle\Entity\LineOdd;
  10.  
  11. class LineCommand extends ContainerAwareCommand
  12. {      
  13. /* ... */
  14. }

Короче я втупике! Белый флаг
(Добавление)
P.S.
Ругается именно на строку
2. Panoptik - 04 Июня, 2015 - 21:52:37 - перейти к сообщению
http://stackoverflow[dot]com/questio[dot][dot][dot]d-namespaces-xxx

тут говорят что лучше ложить все ваши модели в неймспейс \Entity иначе придется конфигурировать доктрину вручную каждый раз для каждой новой модели
3. DeepVarvar - 04 Июня, 2015 - 22:16:24 - перейти к сообщению

Не было печали, доктрины накачали
4. digi - 05 Июня, 2015 - 15:10:37 - перейти к сообщению
что говорит

CODE (text):
скопировать код в буфер обмена
  1. app/console doctrine:schema:validate
5. nkl - 05 Июня, 2015 - 19:14:23 - перейти к сообщению
digi пишет:
что говорит

CODE (text):
скопировать код в буфер обмена
  1. app/console doctrine:schema:validate

Спасибо за эту команду, не знал про неё. Выявилось одно несоответствие Entity с БД. Буду юзать её теперь. Но ошибка возникала не из-за этого.

Действительно, проблема была с конфигом маппинга. Сделал по ссылке Panoptik'а и заработало! Но раньше ведь я не трогал этот конфиг, все работало и с автомаппингом. Правда до этого версия была Symfony 2.4, а сейчас 2.7 вроде если мне не изменяет память. Когда они там успели уже все поломать?

P.S.
Почему на форуме нет отдельного раздела для Symfony? Может кто подскажет годный русскоязычный форум по этому фреймворку? Это мой первый реальный опыт использования фреймворков на практике. И мне он нравиться. Проект стандартизирует афигенно, это именно то, чего всегда нехватало вольному PHP)
6. DeepVarvar - 05 Июня, 2015 - 19:27:37 - перейти к сообщению
nkl пишет:
И мне он нравиться
Опыт или симфони?

Не, я всетаки это запощщу:

DeepVarvar: щас я те покажу трейт и ты будешь ржать
Panoptik: давай
Panoptik: вот я кстати думал заюзать генераторы для чтения сцв файла, помоему это как раз тот момент
Panoptik: а это уже 5.5
DeepVarvar:

trait-for-X.php:


X.php:
PHP:
скопировать код в буфер обмена
  1. class X {
  2.     public function xxx() {};
  3.     include 'trait-for-X.php';
  4.     public function zzz() {};
  5. }


Panoptik: мда
Panoptik: и это работает?
DeepVarvar: с самого начала работало, а что?
Panoptik: ну такое
Panoptik: неожиданно)
OrmaJever: век живи век учись Улыбка
7. nkl - 06 Июня, 2015 - 00:01:58 - перейти к сообщению
DeepVarvar опыт использования фреймворка на практике. Акромя симфони я больше ничего толком и не юзал. Пару лет назад пробовал Кохану пощупать, но до реального применения дело так и не дошло. Варились так сказать в собственном дерьме. В итоге, когда оно (дерьмо) стало к горлу подступать, решили перейти на фреймворк. Итог: первые 3 месяца плакали и кололись и уже было решили выкинуть этот "кактус", как вдруг на одном из старых самописных проектов пришлось не хило так функционала допилить с преферансом и барышнями. Документации естено никакой, просто куча папок и файлов с содержимым наподобие того что вы привели выше. По плану, на преферанс и барышень я думал потрачу неделю, но т.к. проект не открывался больше года, мне неделю только пришлось раздуплять что там к чему и почему. В итоге, лично я пришел к выводу, что без более менее хоть какой-то стандартизации или хотя бы скудной документации долговременное сопровождение проектов на PHP невозможно. И что фреймворк, хоть он и кактус, а грызть надо. Плюс, большая часть дерьма уже написана за вас, просто подключайте его через компостер и юзайте. Причем дерьмо так-то хорошо написано, с эксепшенами и другими полезными штуками, только маны кури. С фреймворком я забыл половину базовых функций PHP, но зато хорошо выучил методы, итерфейсы и вызовы различных готовых бандлов, как например Guzzle, SonataAdmin, KNPPagination, KNPMenu, Monolog Logger и етц. Более не нужно писать код, все написано за меня. Нужно писать только в экстраординарных случаях и то, тебе все на блюдечке поднесено с голубой каемочкой, хочешь через PDO с базой работаешь, хочешь через DQL, хочешь через ORM, на худой конец хоть через Doctrine QB. Не нужно без конца крутить регулярки, что бы роутер заработал как надо. Хочешь новый урл, запихиваешь новый конфиг в роутинг и вуаля - вот тебе новый рабочий урл попадает в какой надо файл с нужными условиями, хоть POST, хоть GET и еще куча услвий для его работы настраивается. Да там даже вебсокеты на автомате юзаются! Я стал настолько ленив, что даже для сайта-визитки ставлю symfony (ну вернее как, она у нас одна стоит и управляет сразу 10 такими сайтами, причем добавление нового занимает пару минут)!
8. DeepVarvar - 06 Июня, 2015 - 01:22:59 - перейти к сообщению
Еще один все понял.
Во первых -- поздравляю.

Во вторых -- личных соображений по большому кол-ву фреймворков за их плюсы и минусы -- вагон и маленькая тележка.
И мне как-то влом это постить в виде ответа в тред на форуме.
Так что жди -- может созрею когда-нить и напишу карательную статью про вот это все.
В кратце -- не все то не гуано что не воняет.
9. armancho7777777 - 06 Июня, 2015 - 23:55:19 - перейти к сообщению
nkl, Вам до Коханы (а точнее до того, что под капотом) как до Луны пешком.
УзБоГойДейсь, на Х!
10. nkl - 07 Июня, 2015 - 11:38:21 - перейти к сообщению
armancho7777777 пишет:
nkl, Вам до Коханы (а точнее до того, что под капотом) как до Луны пешком.
УзБоГойДейсь, на Х!

Я против Коханы ничего не имею. Я ж говорю, толком не вникал в неё и не применял её на реальных проектах.
11. armancho7777777 - 07 Июня, 2015 - 12:32:03 - перейти к сообщению
А, ну тогда пардон )
Спойлер (Отобразить)

А вообще, у Коханы порог вхождения низкий.
Да, чего-то в ней, может, не хватает, но это легко дополняется модулями.

 

Powered by ExBB FM 1.0 RC1