Laravel Большие изменения в следующем Laravel

AmdY

Пью пиво
Команда форума
Не знаю, как назовут следующую версию 4.3 или 7, как метко шутят многие, но авторы пошли на очень странный шаг, меня структуру папок и сам подход.
https://github.com/laravel/laravel/tree/develop
Laravel 4.3
Laravel 4.3 introduces a fresh application structure to the default Laravel project. This new structure serves as a better foundation for building robust application in Laravel, as well as embraces new auto-loading standards (PSR-4) throughout the application. First, let's examine two of the major changes:

New Folder Structure
The old app/models directory has been entirely removed. Instead, all of your code lives directly within the app folder, and, by default, is organized to the App namespace. This default namespace can be quickly changed using the new app:name Artisan command. The Laravel class generators will remember your application namespace by examining the new config/namespaces.phpconfiguration file.

Controllers, filters, and requests (a new type of class in Laravel 4.3) are now grouped under theapp/Http directory, as they are all classes related to the HTTP transport layer of your application. Instead of a single, flat file of route filters, all filters are now broken into their own class files.

A new app/Providers directory replaces the app/start files from previous versions of Laravel 4.x. These service providers provide various bootstrapping functions to your application, such as error handling, logging, route loading, and more. Of course, you are free to create additional service providers for your application.

Application language files and views have been moved to the resources directory.

Thorough Namespacing
Laravel 4.3 ships with the entire app directory under the App namespace. Out of the box, Composer will auto-load all classes within the app directory using the PSR-4 auto-loading standard, eliminating the need to composer dump-autoload every time you add a new class to your project. Of course, since controllers are namespaced, you will need to import any classes you utilize from other namespaces.
Идея понятная, здравая и не проблемная, так как некоторые пользуются уже подобным подходом, благо всё это легко настраивается, но мало кому нужно. Пугает то, что сейчас это путаются всунуть из коробки и не понятно как с обратной совместимостью и страшно не за сам фреймворк, а за дополнительный контент и сотни пакетов.

p.s. Забавно, что при всё этом даже на PSR-1,2 и дальше продолжают игнорировать.
 

fixxxer

К.О.
Партнер клуба
Гуд. Я примерно так и делаю уже, эти app/models без неймспейсов и с необходимостью делать композеру мапу очень быстро надоели.

На пакеты это влиять не должно - правильно написанный пакет обычно регистрирует сервис-провайдеры, а весь свой код держит в PSR4-неймспейсе.
 

fixxxer

К.О.
Партнер клуба
Забавно, что при всё этом даже на PSR-1,2 и дальше продолжают игнорировать.
Это как раз вообще не парит. Ну нажал после генератора cmd-alt-l, очень сложно! :)

А что там внутрях - фиг с ним. Читать код это не мешает, а писать туда я не собираюсь.
 

AmdY

Пью пиво
Команда форума
Это как раз вообще не парит. Ну нажал после генератора cmd-alt-l, очень сложно! :)

А что там внутрях - фиг с ним. Читать код это не мешает, а писать туда я не собираюсь.
Это я к тому, что делаются полумеры. Роуты до сих пор навалены в один файл, а папке app по прежнему куча мусора и стандартный набор фильтров c провайдерами, место котором в vendor. Ну и главная боль - что никакой ассетик из коробки не планируется, ещё бы установщик пакетов вроде https://github.com/rtablada/package-installer.
Очень рад, что будет нормальный DI с инъекцией в методы, а не только конструктор.
 

fixxxer

К.О.
Партнер клуба
Очень рад, что будет нормальный DI с инъекцией в методы, а не только конструктор.
Да, это ок.

Я тут небольшой проектик решил сделать в качестве эксперимента симфони-стайл, без фасадов. Вот в роутах основная помойка и получается.

Еще, конечно, некоторые проблемы с тем, что активрекорд - это активрекорд, и операции, затрагивающие обновление кучи моделей (скажем так, unit of work), красиво не делаются, но тут уж что уж. Доктрину я точно не хочу. Хочу как в питоновском SqlAlchemy, но на php ничего подобного нет.

А, ну еще валидаторы - дерьмо, их бы переписать целиком - по классу на правило, и чтобы не было различий между встроенными и пользовательскими. И некоторое подобие ardent из коробки бы.
 

AmdY

Пью пиво
Команда форума
fixxxer, а аннотации для роутов не используешь?

М... Ты делаешь очень много очень мелких проектов? Меня не парит ручками пару раз в месяц.
Ну, подобный был ещё во времена 3-го, сейчас с компосером не так удобно, потому держу свой набор для старта с любимыми пакетами и их форками, а то уже сейчас есть в двух траблы с версиями.
 

fixxxer

К.О.
Партнер клуба
Да нормально с композером, скопипастить из соседнего наиболее близкого проекта композер.жсон и подправить - три минуты дел же. composer update дольше тупит =)

Аннотации не люблю, как и прочие подобные миниязыки (и увлечение подобным в sf2 мне совершенно не нравится). Синтаксиса php достаточно для всего.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Ну кстати, ничего особо не мешает вернуть привычный лейаут папок, просто описав одноименные неймспейсы. Вообще, я наверное за нормальную группировку классов по контексту использования (неймспейсу) а не по наименованию или месту в иерархии MVC. Хотя надо отметить, что конвеншн овер конфигруейшн всегда быстрее в разработке за счет выработки общих для фреймворка привычек, в будущем данный подход приведет к зоопарку теймплейтов у проектов, вынуждая новых разработчиков выяснять "а почему тогда делали так, а не так"
 

AmdY

Пью пиво
Команда форума
А вот и рассосалось, вроде будет 5-й в октябре. Теперь всё лоигчненько, но всё равно как-то поспешно.
 

Sam Dark

Новичок
Интересно, выкинут ли четвёрку как тройку или всё-таки будут поддерживать?
 
Сверху