сабж) У меня вопрос к знатокам, которые делали проекты и в том и в другом. Я в свое время пытался на Yii2 делать что-то, но как-то оно вообще не зашло. Например, вот код, который создает простейшую форму: PHP: <?php use yii\helpers\Html; use yii\widgets\ActiveForm; ?> <?php $form = ActiveForm::begin() ?> <?= $form->field($form_model, 'name') ?> <?= $form->field($form_model, 'email') ?> <?= Html::submitButton('Send', ['class' => 'btn btn-success']) ?> <?php ActiveForm::end() ?> это какое-то безобразие я считаю ))) И это пока без валидаторов и прочего Помню чуть не свихнулся, пока каким-то основным вещам научался. Но может я как-то предвзят, а?
вид: PHP: <?php use yii\helpers\Html; use yii\bootstrap\ActiveForm; ?> <div class="ident-form"> <?php $form = ActiveForm::begin(); ?> <?= $form->field($model, 'username')->label('Пользователь:') ?> <?= $form->field($model, 'password')->passwordInput()->label('Пароль:') ?> <?= $form->field($model, 'label')->hiddenInput(['value' => $value])->label(false) ?> <?= Html::submitButton('Войти', ['class' => 'btn btn-info', 'name' => 'login-button']) ?> <?php ActiveForm::end(); ?> </div> контроллер: PHP: $model = new ModelFormCard(); if ($model->load(Yii::$app->request->post()) && $model->login()) { return ModelRout::routForm($page); } return $this->render('identForCard', compact('model', 'label', 'value', 'error')); модель: PHP: class ModelFormCard extends ActiveRecord{ public $username; public $password; public $label; public function rules(){ return [ [['username', 'password', 'label'], 'required', 'message'=>'не заполнено поле!'] ]; } public function login(){ if ($this->validate()) { if(!preg_match("/^[a-zA-Z0-9]+$/",$this->username)){ return false; } if(strlen($this->username) < 3 or strlen($this->username) > 30){ return false; } return ModelFormCard::getUser(); } return false; } } тут много чего нет, но как то так примерно
@Artur_hopf ну, вьюха тут явно не вся))) То есть смотри что мне например понравилось в Laravel по сравнению со всем этим издевательством над здравым смыслом В Laravel вьюха - это нормальная вьюха Ее можно верстать прям "наглазок" )) А это что? PHP: <?php use yii\helpers\Html; use yii\bootstrap\ActiveForm; ?> <div class="ident-form"> <?php $form = ActiveForm::begin(); ?> <?= $form->field($model, 'username')->label('Пользователь:') ?> <?= $form->field($model, 'password')->passwordInput()->label('Пароль:') ?> <?= $form->field($model, 'label')->hiddenInput(['value' => $value])->label(false) ?> <?= Html::submitButton('Войти', ['class' => 'btn btn-info', 'name' => 'login-button']) ?> <?php ActiveForm::end(); ?> </div> Это и не вьюха, и не контроллер, это вообще непойми что)) Смысл данной сущности совершенно неочевиден. Ну, лично мне.
Да без разницы)) Суть в том что выглядит как какой-то шаблонизатор в который забыли добавить шаблон))) В одном проекте помню некий участник настаивал чтобы использовать Pug в шаблонах VUE-CLI - но мы сказали свое решительное нет))) Ну просто представьте себе во что это превратилось бы визуально. Тут ситуация примерно такая же. Налицо избыточный слой абстракции, который откровенно мешает целостному восприятию проекта.
Это построитель формы, генерирующий инпуты с метками и уже JS валидацией, чтобы вручную кучу кода не верстать. Аналогично Yii в комплекте имеет GridView для вывода таблиц с сортировкой и поиском в админке. И в Laravel есть такой же хелпер https://laravel.com/docs/4.2/html, только теперь его вынесли из ядра в отдельный пакет. Yii из коробки для скорости не использует шаблонизатор, поэтому там вьюхи на нативном <?php ... ?>. Но можно подключить yii2-twig. Yii2 позиционируется как быстрый фреймворк для быстрой разработки и прототипирования. Ввиду отсутствия шаблонизаторов и многих абстракций он работает в два раза быстрее Laravel. И ввиду наличия генератора Gii, виджетов GridView, ListView и ActiveForm и автороутинга позволяет по таблицам в БД автоматически генерировать CRUD-админки на Bootstrap за минуту. Такое упрощение всего в Yii выглядит привлекательным в начале, но мешает при росте проекта. Там уже выигрывают более гибкие, строгие и мощные Laravel и Symfony.
Ничего безобразного нету, это как минимум можно спокойно прогнать через брейкпоинт если такое необходимо. Если конечно шаблоны ревращаются во что-то громозкое и не поворотливое то альт.синтаксис пыхи становится не удобным и лучше взять шаблонизатор, а можно и не брать грамотно разбить на переиспользуемые чанки Валидаторы же автоматом создаются в модели после её генерации (на бэке), плюс js тоже на выхлопе есть (что и плюс и минус, в yii3 выхлоп уберут). Если же форма из себя представляет > 1 модели, то склпать новую модельку с рулесами не так сложно и к ним же припиздячить валидаторы 'with' => func($model) $model->isWhat ?? false если встройки не хватает. Ну блет, yii простой как два пальца Явно не так он в них утанул как ларка или симфони
я немного поработал с Yii2 и сейчас работаю с Laravel... а еще был проект на slim3 + twig)) так вот из всего с чем работал выводы у меня такие) 1. Таблички я теперь делаю с помощью datatables https://datatables.net/ 2. Twig нравится больше чем Blade 3. С шаблонизатором (хоть blade хоть twig) нравится больше работать чем просто с нативным php в шаблоне.. не могу сказать почему - но нравится больше.. 4. Laravel мне понравился больше чем Yii2... хотя это тоже неоднозначно.. 5. Eloquent нравится больше чем ActiveRecords в Yii2... хоть по сути то и там и там AR)) но как называется ОРМ в Yii2 не знаю)) 6. Yii2 мне больше показался похожим на CMS или CMF)))
@villiwalla, спасибо!)))))))))))) ну, я их тоже не идеализирую)) --- Добавлено --- lol)))) //инструмент конечно годный, тока он явно не из этого топика -) любой мало-мальски известный UI-фреймворк имеет в своем составе нечто подобное.
https://quasar.dev/vue-components/table от нашего стола вашему))) Это в Квазаре такие таблицы сам ими ни разу не пользовался, но квазаровский UI мне оч нра, их реализация Material Design имхо зебест)))
@Roman __construct, у Yii2 тоже есть поклонники. Последнее время новые проекты правда начинаю на Laravel, но веду несколько и на Yii2
Ну это да, я часто вижу объявления о потребности в доработках на Yii-проектах, но это как я понял - легаси, то есть сделали много лет назад, а теперь тащат как чемодан без ручки )) Хотя, если человек смог в этом досконально разобраться - наверное без разницы уже --- Добавлено --- Ну и правильно - на React вакансий больше
Нет, не только легаси. У йишки свои плюсы, скорость, простота и т.п. Потом сейчас тройку может выпустят, там что-то интересное может
Не всегда легаси при разработке на фреймворка и потом чемодан. В случаях когда не чемодан то все по пастулату.