Недавно появились комментарии от Фила Старджина и других людей о том, что тем людям, которые в восторге от Laravel, и которые делают отличные проекты с его помощью. Им стоит спуститься на землю и больше думать о PHP в целом.
Вместо того чтобы продолжать перепалку с ними, я предпочел напрямую высказать свои мысли сообществу и надеюсь, они поймут мои соображения.
Laravel — это PHP, мы не в Зазеркалье
Если вы хотите добавить в свой…
За последние годы Laravel стал одним из самых известных фреймворков, который используют разработчики для создания своих приложений. Имея такую же популярность, какую имел CodeIgniter во время своего расцвета, Laravel славится своей простотой в использовании, удобством для начинающих и верностью отраслевым стандартам.
Введение
Почему-то немногие разработчики пользуются тем преимуществом, что Laravel — компонентная система. С момента перехода к компонентам на основе Composer, Laravel 4 стал очень модульной системой, похожей по разнообразию возможностей на более взрослые фреймворки, такие…
Сегодня мы рассмотрим возможности работы с маршрутами в Laravel. На этот раз, мы будем иметь дело с тем, как Laravel обрабатывает параметры маршрутов. Мы уже познакомились с маршрутизацией раньше и в этот раз рассмотрим более сложные сценарии.
Параметры пути
Laravel позволяет использовать параметры в наших URL. Это полезно, когда вы хотите создать путь с такими вещами, как подкатегория или определенный идентификатор (имя, id или любой другой параметр). Давайте рассмотрим различные способы использования таких параметров.
…
При наследовании Illuminate-класса PHPRequest
и класса PHPResponse
возникает некоторая путаница.
Эти два класса работают несколько иначе, чем обычные классы из-за их важности в обработке HTTP-запросов. Я расскажу, как их наследовать, а потом покажу метод, который показывает, как композиция может быть лучше наследования.
Наследование класса PHPResponse
Сначала я опишу наследование класса PHP…
Laravel традиционно является MVC-фреймворком, но MVC не слишком хорошо масштабируется для крупных проектов. Обычно, в конечном итоге получается, что логика содержится во всех секциях: моделях, представлениях и контроллерах, и по мере развития приложения его становится почти невозможно тестировать. В книге Тейлора Отвелла упоминается шаблон репозитория, но даже он не способен решить эту проблему масштабируемости. После того, как коллега показал мне статью в блоге о шестиугольном шаблоне проектирования в Rails, я решил попробовать применить его в Laravel —…
Оригинальная статья была опубликована в марте 2013 года — прим. пер.
Laravel — это простой и изящный PHP-фреймворк, который превращает рутинную разработку в творчество.
Расскажи о себе и о своём проекте «Laravel».
Мне 26 лет, я разработчик, в настоящее время живу в своем родном штате Арканзас. Я создал Laravel — фреймворк для веб-приложений, помогающий разработчикам создавать отличные приложения, используя PHP. Сейчас это один из самых популярных открытых (open-source) PHP-проектов на Github, сообщество которого насчитывает тысячи…
Один из основных вопросов в Laravel — как лучше устанавливать пакеты. Традиционно мы имеем неприятную часть файла readme, которая содержит подобную инструкцию:
shphp artisan config:publish rtablada/laravel-faq
Это не очень сложно, но может быть немного запутанным и длинным. Гораздо приятнее было бы иметь команду наподобие:
shphp artisan faq:config
Она короче, слаще и удобнее.
Итак, для начала мы создадим для наших команд пространство имен в консоли…
По мере того, как я начал создавать больее полнофункциональные пакетов Laravel, я понял, что хочу давать пользователям возможность задавать параметры подключения к БД, отличные от тех, которые используются по умолчанию в изначальном окружении Laravel. Один такой случай произошел, когда я начинал создавать свой пакет для FAQ. Итак, давайте посмотрим, как мы можем это сделать.
После разговора с Тэйлором я узнал, что хитрость заключается в методе PHPgetConnection
, который находится в PHPIlluminate\Database\…
Есть три компонента при создания фасада:
- Корень фасада (Facade Root) — базовый класс, методы которого вызывает фасад.
- Класс фасада, который указывает Laravel, к какому зарегистрированному (базовому) классу он относится.
- Сервис-провайдер, который регистрирует базовый класс в контейнере приложения (
PHPApp
).
Сценарий использования
Предположим, у нас есть класс, для которого мы хотим сгенерировать фасад. Например, класс PHPFideloper\Example\UnderlyingClass
.
…
При работе над большими Laravel-проектами всегда возникает вопрос: «Каким образом мне организовать весь этот код?» Многие люди начали предлагать новые пути решения данной проблемы. Довольно часто люди создают пространство имен в своих котроллерах, представлениях, составителях (view composers) и сервисе каталогов. Но для меня — это нечто паутины, состоящей из каталогов, и кричащей: «Я просто подгоняю все под MVC». Обычно я наблюдаю, как люди создают пространство имен с названиями типа API, Admin Panel и для самого сайта (Marketing). Таким образом, структура их приложения приобретает некий вид…
Поздравляю, вы изобрели сервисный слой. Но до гексагональной архитектуры ещё не близко.
Валидация должна быть в классе Request, за одно это исключило бы ваше применение рефлексии которое тут не очень уместно.