👀
хотелось-бы чисто для собственного развития услышать о каких-то глобальных отличиях между фреймворками
может на выходных вместо балды попинаю что-то новое)
who are you
ну тебе скажут что yii2 для мелких проектов лара для сердних и больших симфони для супер кастомных
Anonymous
👀
это как-бы тоже самое, что и сказать "молоток гвозди забивать, кувалда - колышки, а киянка - людей"
а отличия-то у них в чём?
who are you
Dmitriy
👀
подскажи, есть какие-то ключевые отличия между фреймворками? насколько сложно будет переключиться с yii на symfony/lavarel?
Dmitriy
👀
ты с каким работаешь: symfony или lavarel?
👀
я по каждому доку читал, в принципе, основные понятия есть
Zhandos
что такое DI ?
Anonymous
У Yii2 Service Locator простейший
Anonymous
У Symfony нормальный DI полноценный
Dmitriy
Dmitriy
у ларки был лучше DI. до недавнего времени. говорят что в симфони 3.3 он тоже крутой
👀
меня интересует роутинг: насколько сильно он отличается от yii? в yii у нас есть urlRules, которые прописываются на уровне конфига приложения. В других фреймворках роуты создаются динамично? типа как в zend'е - <module>/<controller>/<action>, или их тоже где-то нужно объявлять? как насчёт кастомных роутов?
Alexander
И судя по всему, формы в симфони там такие же, как и в зенде (если верить описанию выше)
Anonymous
1. Аннотации в контроллере
2. Конфиги
Два способа
Dmitriy
Огромная разница. Для меня роутинг в yii2 это огромная кака из прошлого века
Anonymous
Всё надо явно прописывать.
Anonymous
В Symfony 2.*+.
Anonymous
http://symfony.com/doc/current/routing.html#routing-examples
Anonymous
@Route("/blog", name="blog_list")
Dmitriy
👀
ну, не так уж сильно оно и отличается
нужно лишь привыкнуть к тому что urlRules обрабатываются не системой, а самому нужно делать, как я понял, в RouteCollection()
Dmitriy
Там нет такого, что на каждый чих нужно писать свой роутинг, как в yii2
Dmitriy
у ларке обычно роутеры в 1 файле. У симфони в антонациях держат
👀
да и дока довольно прилично выглядит)
👀
что за аннотации?
Dmitriy
phpdoc
Dmitriy
если грубо говорить
👀
нормально
👀
те, можно обойтись аннотациями к экшнам в контроллере, и не нужно пилить отдельный файлик с роутами?
👀
а эти аннотации не конфликтуют с phpdoc'ом?
Dmitriy
Ах да у симфони нет AR. Data mapper там
Alexander
Dmitriy
👀
меня что отталкивало больше всего - это для меня непонятный роутинг (сейчас вроде как прояснился немного), и шаблонизатор на фронте
Alexander
Anonymous
Вообще не в обиду фанатам Yii2, но Yii2 отстал на лет 6 точно. От Symfony и Laravel.
👀
каждый инструмент создан для своей задачи
Dmitriy
Anonymous
Ну, можно и дальше его юзать. Codeigniter тоже до сих пор юзают, хотя он устаревшим был уже лет 7 тому назад.
👀
ну и в умелых руках любой инструмент будет делать то, что ты захочешь
👀
+ ты забываешь, с чем я имею дело сейчас
👀
👀
я думаю, yii намного лучше, чем это
Anonymous
+ ты забываешь, с чем я имею дело сейчас
С чем?
Я тоже на Yii2 разрабатываю проект сейчас. Но это прихоть клиента. Мне вообще всё равно на чём делать проект. Если бы дали мне выбрать, то взял бы Symfony.
Anonymous
А.
Anonymous
ZF 1.*.
👀
ага)
Borys
Ребят, подскажите, пожалуйста.
Borys
Никак не могу понять.
Borys
Есть строка в БД, в ней есть поле "group_profile" это FK
Borys
если делаю "->where(['group_profile' => 1])", то все ок
Borys
но мне надо что-бы я искал именно в значении FK
Borys
$query = Ap::find()->joinWith('groupProfile')->where(['group_profile.id' => 1]);
Borys
нифига не работает
👀
не совсем понятно что тебе и откуда нужно
👀
есть две таблицы: a и b
тебе нужно сделать select * from a left join b where b.id = '1'?
Borys
да
👀
Ap::find()->joinWith(['groupProfile gp'])->where(['gp.id' => 1]);
👀
попробуй так
👀
офф дока:
Order::find()->joinWith(['books b'], true, 'INNER JOIN')->where(['b.category' => 'Science fiction'])->all();
Borys
У меня уже есть такое-же по функционалу решение и оно работает, но делаю аналогичное и нифига)
Borys
т.е. в другой модели:
$query = Ngpv::find()->joinWith('type0')->where(['type.slug' => $slug]);
работает
Borys
а это нет:
$query = Ap::find()->joinWith('groupProfile')->where(['group_profile.slug' => $slug]);
👀
попробуй как я написал
возможно всё дело в названии таблицы
Borys
действительно, так работает
👀
:)
никогда не используй в join'ах названия таблиц
обезопасишь себя минимум в таких ошибках
👀
а теперь у меня вопрос
👀
уважаемые знатоки
👀
как привязать translator к форме в zend 1? :D
Borys
В моем нерабочем, groupProfile вызов этого:
public function getGroupProfile()
{
return $this->hasOne(Ngpv::class, ['id' => 'group_profile']);
}
Borys
Верно я думаю?
👀
не могу понять, что у вас там не так
👀
всё так
Borys
Это не работает)
$query = Ap::find()->joinWith('groupProfile')->where(['groupProfile.slug' => 'zavod']);
Это работает:
$query = Ap::find()->joinWith('groupProfile gp')->where(['gp.slug' => 'zavod']);