Сегодня мы рассмотрим возможности работы с маршрутами в Laravel. На этот раз, мы будем иметь дело с тем, как Laravel обрабатывает параметры маршрутов. Мы уже познакомились с маршрутизацией раньше и в этот раз рассмотрим более сложные сценарии.
Параметры пути
Laravel позволяет использовать параметры в наших URL. Это полезно, когда вы хотите создать путь с такими вещами, как подкатегория или определенный идентификатор (имя, id или любой другой параметр). Давайте рассмотрим различные способы использования таких параметров.
…
При наследовании Illuminate-класса PHPRequest
и класса PHPResponse
возникает некоторая путаница.
Эти два класса работают несколько иначе, чем обычные классы из-за их важности в обработке HTTP-запросов. Я расскажу, как их наследовать, а потом покажу метод, который показывает, как композиция может быть лучше наследования.
Наследование класса PHPResponse
Сначала я опишу наследование класса PHP…
Оригинальная статья была опубликована в марте 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
.
…
Модель-вид-контроллер (MVC) — очень распространённый шаблон проектирования современных веб-приложений. Широкое использование и признание шаблона проектирования означает, что многие популярные фреймворки построены на основе этой архитектуры.
Laravel 4 — один из таких фреймворков, который использует шаблон проектирования MVC, чтобы аккуратно разделять между собой различные аспекты веб-приложения.
В этой статье мы рассмотрим, что именно представляет собой модель, каковы три важнейших компонента бизнес-логики, и как настроить свою первую модель в Laravel 4.
…
Мне кажется, что Тэйлор и я ввели в заблуждение некоторых из вас в сообществе Laravel. Похоже, после нескольких статей о внедрении зависимостей через IoC и шаблоне репозитория, как будто стало стандартом де факто использование репозиториев ждя всех приложений на Laravel 4.
Хотя репозитории очень хороши, остается один маленький вопрос: «понадобится ли мне когда-нибудь такой уровень абстракции»? Иногда ответ на него — твердое нет. В других случаях вы быстро создаете прототип и тем более не хотите возиться…
Если вы работали с Laravel, скорее всего вы сразу начали использовать Eloquent ORM и пропустили чистые запросы к БД. Однако вы могли пропустить классную вещь — конструктор запросов Fluent Query Builder. Если вы делали запросы наподобие PHPModel::where('name', 'John')
, значит, вы привыкли к удивительному синтаксическому сахару, который Fluent добавляет в ваш код.
…
В последнее время я работаю над несколькими проектами, в которых используются полиморфные отношения, отношения многие-ко-многим и иногда полиморфные отношения многие-ко-многим. При работе с ними стали появляться одни и те же проблемы, которые действительно раздражают меня с точки зрения хорошей архитектуры и традиционных отношений ORM. Поэтому начиная с этой недели, мы будем рассматривать новые шаблоны для создания карт отношений. Сегодня мы рассмотрим стандартные таблицы с отношением многие-ко-многим и их связующую сводную таблицу.
…