Приветствую!
В программировании я еще не силен, выбираю фреймворк, чтобы учиться программированию на конкретной задаче. Сейчас в силах только писать несложные функции/плагины для wordpress. Присматриваюсь к данным фреймворкам (Yii2 и Laravel) уже пару месяцев, смотрел какие-то видео и по тому и по другому, установил оба на локалку, поковырялся чуть-чуть... Но так и не смог определиться на котором остановиться. Laravel (смотрел 5. версию) кажется более элегантным, у него удобный роутинг (можно часть дел сделать без контроллера, и вообще проще для понимания), и другие плюсы. У Yii2 есть из коробки gii, разделение на фронтенд и бэкенд (в advanced версии), что для новичка достаточно значимый плюс, но в остальном он кажется более корявым чтоли...
Вопрос собственно такой, что бы вы посоветовали мне, с моими нынешними знаниями? Yii2 с его возможностями генерировать код и иметь что-то из коробки, или Laravel, который больше мне нравится по коду и удобству его написания, но у которого недостаточно плюшек для быстрого начала? Может подскажете альтернативу? Например сборку Laravel с кодогенератором, или что-то подобное? Понимаю что таких вопросов уже назадавали кучу, я читал ответы, но определиться для себя не смог... Спасибо!
Александр Макаров: роутинг в отдельном файле, а не перемешан с остальными конфигами. Ну и обычный синтаксис php без всяких < id : .. Ну или как там это делается. Когда я смотрю на rules в url manager мне не сразу понятно что к чему (до сегодняшнего дня не особо понятно было, сейчас немного разобрался). В ларавеле же с первого взгляда понятно что куда и зачем
Александр Макаров: это я сам смог догадаться) но синтаксис роутинга менее удобен и понятен. Это лишь моё мнение как новичка, который только пытается сунуться в мир фреймворков
Александр Макаров: Спасибо, в сравнении всё таки лучше понимать) Действительно достаточно понятно, но почему то с первого взгляда когда я увидел треугольные скобки меня это уже напугало :)
Как новичку вам будет очень полезно понять, что у фреймворка внутри и как он работает. Если залезть во внутренности Yii, вы увидите, что там документирован каждый метод, каждый класс, абстракции минимум, всё делается настолько просто, насколько это вообще возможно. Изучить именно как что работает просто.
Если залезть в Laravel, там всё очень слоёно. Комментариев нет. Чтобы понять, как работает метод нужно частенько пролезть через 3—5 слоёв абстракции в нескольких классах.
В документации по Laravel, кстати, использован крутой трюк. Описана лишь часть того, что вообще даёт фреймворк. Это делает доку очень компактной, лёгкой и приятной, но за остальным — либо код без комментариев читать, либо Laracasts смотреть.
Полностью поддерживаю Rikcon по поводу laracast, очень качественно сделано, начинающему хорошо помогает. А то всё что у нас в рунете записывают, какой то шлак где 80% это вода, да и сам код выходит сомнительным
Jeffrey Way крут. Он заведовал в своё время всеми курсами на tuts+ и был его редактором. Теперь делает бизнес на Laravel. Боюсь, с Yii брать по 4$ за видео-урок не прокатит.
Предлагаю поступить следующим образом:
— Собрать средства на создание видео-курса.
— По мере поступления средств, выкладывать материал на Youtube.
— И сообщество довольно, и вы заработаете.
Роман Кондратьев: дело больше в том, что у меня нет опыта записи скринкастов, редактирования аудио и видео. Я как-то пробовал и технически получилось гадко.
Александр Макаров: Обязательно ли в записи делать звуковую дорожку и говорить со зрителями?
Можно рассмотреть вариант:
Видео-уроки по созданию интернет-магазина с анотациями.
Таким образом будет работы больше, но говорить не придется вовсе, да и требования к звуку будут отсутствовать.
Либо, звуковой ряд накладывать после записи видео.
В любом случае, монтаж необходим.
Мне интересно заняться данным вопросом, только я не программировал на Yii2 (ознакомился только через https://www.youtube.com/watch?v=z1xtFbO9jgQ&list=P...).
То, что код Yii2 полностью документирован — огромный плюс.
У лары исходники откоментированы ни разу не хуже чем у yii, местами даже лучше. О каких слоях абстракции идет речь? Вас фасады напрягают? Ну да не очень удобно, в плане автокомплита, но там паттерн то один на все фасады. Нужно найти исходник открываем нужный сервис провайдер (по имени ищем) и смотрим какой класс он добавляет в контейнер. Да и в самих фасадах есть phpdoc который указывает где читать исходники.
Оба фреймворка хороши, и достаточно просты. Чтобы научиться можно начинать и с того и с другого. Я лично некоторое время писал на Уии, но после того как попробовал Ларавел, возвращаться на уии уже не хочется. И еще, раз вы учитесь программировать, то вам как раз таки не нужно пользоваться кодогенераторами. Они чтоб экономить время, но обходиться без нужно уметь.
Laravel, который больше мне нравится по коду и удобству его написания, но у которого недостаточно плюшек для быстрого начала?
Чего там недостаточно то? Создали контроллер, вьюху, прописали роут и все заработало
Соглашусь, что нужно писать свой код, а не генерировать. Но когда я вижу как он генерируется, я могу понять как мне писать. А в Laravel я даже не особо вижу примеров, как сделать crud например. В Yii большой плюс для меня это crud, админку можно сделать на раз два... Готовые расширения для админки Laravel какие то жуткие. Но в Yii жутким кажется роутинг, например
"Чего там недостаточно то?" у меня например даже сложность тупо создать обычное меню. То есть я могу его просто сверстать, но мне же надо чтобы он активные пункты выделял или еще что. Встроенного меню в ларе я так понял тоже нет?
Я год пишу на ларе, и еще не сталкивался, что для нее чего-то нет. Любые библиотеки на любой вкус и цвет. https://gitter.im/LaravelRUS/chat вот кстати чат по ларавел русский. Там можно спрашивать, иногда отвечают)
kirill-93: Вот за чат спасибо) Надеюсь там новичков сильно не пинают за тупые вопросы :) Я правильно понял что практически для любого телодвижения (crud, меню, хлебные крошки, пагинация... может что-то из коробки конечно есть) нужно ставить расширения?
Rikcon: Это потому что вы не с фреймворков начинали :) Я, начавший с разных CMS, привык использовать готовое. Но в то же время среди готового порой сложно найти чтото приличное :)
Rikcon: Спасибо, видимо придется смириться и привыкнуть, что в мире фреймворков всё делается сторонними расширениями) Значит цель - найти хорошие расширения для базовых задач, и обкатать их на практике, чтобы привыкнуть к такой системе
Станислав Ким: одно дело генерировать, а другое дело получать сразу удобную форму для этого (при генерации crud через gii). Там всё же сразу и фильтрация в таблице, и поиск по данным, очень удобно для быстрого создания админки
В своё время пару лет назад тоже решал. Начал изучать с CodeIgniter для того, чтобы понять принцип работы и поближе узнать об MVC. Для понимания смысла было достаточно. Затем пробовал и Yii, и Laravel. Остановил свой выбор на Laravel ( 4 версия тогда была еще). Просто и понятно, есть хорошие уроки на scotch.io, lynda.com. Для бэкенда самое то. Для фронтенда не использую встроенный шаблонизатор blade, делаю сразу на Angular. Весьма удобное разделение фронта от бэка получилось. Laravel я доволен по прошествии уже 1.5 лет. Не нарадуюсь)
Я в своё время остановился на Laravel, Тогда ещё 4 версии. Тут сложно что-то советовать, что больше нравится то и берите. Лара более модульный фреймворк, в него заложены компоненты Symfony и идеология RoR. Laravel на 90% состоит из различных открытых библиотек (Carbon, Monolog etc.) что позволит вам его расширить или выпелить ненужное)) Yii вроде как 90% компонентов написаны разрабами Yii.
Спасибо. Я так понимаю логика ларавеля на том и основана, что из коробки только базовые возможности, а на всё остальное найдутся расширения (ну или писать самому)? Получается почти как с плагинами вордпресса (просто я на нем работаю сейчас), ставить кучу плагинов, смотреть чем подходят или не подходят. Чтобы сделать меню, ставить расширение. Сделать crud - расширение. И так с каждым телодвижением?
Евгений Перин: Ну почему у Лары, есть многие полезности из коробки.. Это удобная ОRМ, удобный шаблрнизатор, валидатор в 5 версии полностью система аутентификации. Да CRUD нет, но существует много пакетов, например https://github.com/vahidstar/laravel-crud . В общем на ларавел, легче внедрить сторонний код, нежели в тот же yii.
Александр Макаров: Ну я не о том) Например написал я свой велосипед, создал в Ларе СервисПровайдер, Фасад, все это внутри PSR-4 - готово. Мой класс внутри системы) В Laravel5 это из коробки, в L4 - нужно немножко повозится. Т.е мне не нужно даже пакет/расширение создавать. Хотя и в Yii2 может что подобное есть, вам тут виднее конечно))
В Yii можно не создавать расширение, если не хочется менять синтаксис как-то или что-либо оборачивать. Конфигурировать при этом можно стандартным конфигом.
Не смотрел на Laravel, поэтому сравнить не могу. На мой взгяд, Yii2 отличный фреймворк для изучения, для новичков.
Весь код фрейморка написан очень просто. Вместо того, чтобы залезать в документацию, можно просто читать код и аннотации. Кроме того у Yii2 сильное русскоязычное сообщество - без помощи не останетесь.
Всем большое спасибо за советы. Немного прояснилась ситуация с этими фреймворками. Первую попытку попробую сделать на Yii2, просто из-за более быстрого старта при моих знаниях. Когда набью руку, возможно двинусь покорять laravel или simfony.
Начните сразу с симфони, ну или с ларавел. Не стоит учиться косить тупой косой под предлогом, что ей порезаться сложнее, берите сразу нормальный инструмент.
В Yii удобно работать с транзакциями к БД. Они оборачиваются одна в другую и не надо сделать где открывать где закрывать.
Так же встроенная поддержка масштабирования. Встроенный CodeCeption.
Ну и он быстрее.
В ларавеле удобный Ларавел-микс для работы с фронтом.
По мне, так если пишется серверное приложение - то Yii предпочтительней.
Мой опыт работы с ними:
На Yii писал около 2 лет на High-load проекте серверную часть ядра.
На Ларавеле последний год сервер + фронт. Уже не High-load.