Malezha
Проверенные
- Сообщения
- 132
- Реакции
- 75
- Баллы
- 5,525
Ещё в
Некоторые
Laravel 5 — значительное обновление с большим количеством новых фишек, но в то же время в нём сохраняется то, что сделало Laravel невероятно успешным.
На самом деле новых возможностей так много, что всех их трудно отследить. В этой статье я опишу новые возможности и то, на что вам стоит обратить внимание.
Структура каталогов Laravel 5
Первое существенное изменение — структура каталогов. Папка приложения внешне преобразилась, и некоторые вещи были вынесены за пределы приложения. В том числе настройки, база данных, хранилище и ресурсы.
То, что находится внутри приложения, теперь разбито на следующие папки:
Изменения Blade
В Blade сделано не так много изменений, но
В Laravel 4 Blade включал два следующих стиля: {{ и {{{. Двойные фигурные скобки служили для вывода сырой информации, а тройные — для экранирования.
Теперь и двойные и тройные фигурные скобки экранируют переменную, а для сырого вывода служит новый стиль {!! $var !!}.
Типичный пример использования сырого вывода — вспомогательные методы формы:
Контракты
Контракты — это набор интерфейсов, которые определяют базовые услуги, предоставляемые фреймворком. Поэтому они могут служить в качестве документации по функциям фреймворка. Тем не менее, они гораздо более полезны, и вы можете прочесть официальную документацию для получения дополнительной информации о них и о том, как они могут помочь.
Команды и события
Команды и события были переделаны. Эти функции подробно описаны как в документации, так и в следующих материалах:
Фасады по-прежнему есть в Laravel 5, но новые вспомогательные функции начинают замещать некоторые из наиболее распространённых элементов. Например, в Laravel 4 для отрисовки представления использовался такой код:
Теперь это простой вызов функции:
Вот ещё несколько:
В маршрутах две новые функции.
Мэтт проделал отличную работу, описав обе эти функции так, что мне просто нечего добавить. Прочитайте его статьи, чтобы разобраться в этом глубже.
Внедрение метода контроллера
Laravel 4 поддерживал внедрение конструктора контроллера. Разработчики пошли дальше, и теперь вы можете использовать любые зависимости на основе подсказок типов в ваших методах:
или вообще что угодно:
Вот ссылки для более глубокого изучения:
Процесс авторизации по умолчанию предварительно настроен и готов к использованию. Вникнуть во всё это теперь легче, чем когда-либо.
Появилось два новых типажа (trait):
Socialite
Socialite — необязательный пакет Laravel 5.0, который упрощает работу с OAuth. Все мы его ненавидим, правда? В данный момент Socialite поддерживает работу с Facebook, Twitter, Google и GitHub.
В официальной документации более подробная информация о реализации и принципе работы пакета.
Flysystem
Следующее замечательное новшество — включение в состав фреймворка пакета
Сейчас имеются следующие адаптеры:
dotenv — определение среды
Ванс Лукас создал PHP-пакет
Этот пакет встроен в Laravel 5, чтобы значительно упростить управление средами. Больше не надо редактировать bootstrap/start.php и настраивать массив $app->detectEnvironment().
Вместо этого вы создаёте собственный файл .env, и легко можете настраивать его под свои нужды. А затем в любом файле настроек вы можете использовать что-то подобное:
Вы также можете создать дополнительные файлы для различных сред, например для тестирования. Кстати у Laracasts уже есть пример
Запросы формы
О проверке ввода и запросах формы уже много сказано. Это такая область, о которой, я уверен, вы уже наслышаны.
В целом авторизация и проверка ввода могут быть превращены в FormRequests и легко внедрены.
Взгляните на следующие материалы, чтобы узнать больше об этой возможности:
Laravel Elixir
Elixir — это новая обёртка для gulp, упрощающая работу с активами. Вместо того, чтобы стараться создать собственную систему для создания css и js-файлов, вы можете использовать Elixir и легко запускать ваше приложение.
Прямо из коробки Elixir обрабатывает 90% всего, что вам необходимо: sass, less, coffeescript, JavaScript, версионность файлов и многое другое.
Laravel Scheduler
После настройки cron вы можете планировать запуск любых задач в краткой и дружелюбной форме. Это устраняет неприятную необходимость запоминания планирования в cron, и это действительно очень просто. Эти планирования созданы в вашей папке app/Console/Commands.
Вот пример задачи:
Анонс этой функции был встречен множеством смешанных реакций. Я из тех, кто считает её прекрасной. Мне нравится, что cron-задачи разделены по версиям, легко просматриваются в моём редакторе, и, кроме всего прочего, написаны на чистом английском.
Новое поведение dd()
Серьёзно обновилась всеми любимая функция dd(), или dump and die (вывод дампа переменной и завершение выполнения скрипта — прим. пер.). Symfony выпустила компонент VarDumper, и теперь он в арсенале Laravel.
Компонент VarDumper обеспечивает механизмы для доступа к любой произвольной переменной в PHP. С их помощью он предоставляет вам возможность использовать функцию dump(), которая лучше var_dump.
Это функция очень полезна и даёт нам намного больше возможностей. Более подробную информацию вы найдёте в статье
Изменение атрибутов Eloquent
Этим нововведением мы обязаны
Это автоматически изменит тип is_admin на boolean. А options будут храниться в виде json и будут автоматически конвертированы в массив при выводе.
Это восхитительно, когда вы используете JavaScript, и вам необходимо совпадение типов.
Whoops больше не нужен
В Laravel 4 был обработчик ошибок Whoops. Он удалён из Laravel 5, но если он вам нужен, прочтите
Пакеты и Workbench
В системе работы с пакетами в Laravel произошло несколько значительных изменений. Наиболее заметное из них — отказ от Workbench в пользу использования пакетов Composer напрямую.
Вы можете узнать больше об этих изменениях из официальной документации или из руководства от Джона инт Хаута
Psysh
Tinker — инструмент с интерфейсом командной строки для манипуляций над вашим кодом — теперь использует
Консоль разработчика в режиме исполнения, интерактивный отладчик и REPL (Read-eval-print loop) — простая интерактивная среда программирования — для PHP.
Psysh супер мощный, вот его некоторые возможности:
SuperClosure
Ещё одно новшество —
Новые генераторы
Artisan теперь ещё мощнее и может генерировать множество шаблонного кода для вас. Вот список некоторых доступных на данный момент:
С помощью простой команды composer update обновиться не получится. Так как это основная версия, приготовьтесь потратить несколько часов на обновление. Уже написано два руководства по этому процессу.
Куда идти дальше?
Как и в любом фреймворке, лучшее место для изучения — официальная документация. После этого подпишитесь на
2015 год обещает быть захватывающим для мира Laravel, и мне уже не терпится держать вас в курсе событий!
Источник:
Немного хочу добавить от себя.
Ларавел очень удобный и современный фреймворк в мире PHP. Он основан на проверенной временем Symfony 2, но черпает свое вдохновение с Ruby on Rails.
Такая комбинация создает достаточно простой в изучении и в то же время очень мощный инструмент для выполнения работы любой сложности.
Начав свое знакомство с версии 4.1 я был поражен наличием встроенных компонентов почти на любой случай и огромного количества пакетов буквально для всего: авторизации, админ-панели, mongodb драйвера - в общем все, что позволяет ускорить разработку. Но это и является наверное самым большим минусом - он достаточно тяжел и несколько проигрывает в скорости своему облегченному конкуренту Yii2.
Спасибо всем дочитавшим до этого момента :thumbsup:
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
Тейлор Отвелл объявил, что Laravel 4.3 будет переименован в Laravel 5, чтобы отразить изменения каталогов и «другие интересные новшества». После этого не прекращается волнение вокруг Laravel 5, а «другие интересные новшества» превратились в почти два десятка новых функций, которые помогут разработчикам быть более продуктивными.Некоторые
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
и терпеливо ожидают в стороне. Другие уже несколько месяцев назад погрузились с головой в разрабатываемую ветку, тщательно просматривая коммиты в поисках критических изменений.Laravel 5 — значительное обновление с большим количеством новых фишек, но в то же время в нём сохраняется то, что сделало Laravel невероятно успешным.
На самом деле новых возможностей так много, что всех их трудно отследить. В этой статье я опишу новые возможности и то, на что вам стоит обратить внимание.
Структура каталогов Laravel 5
Первое существенное изменение — структура каталогов. Папка приложения внешне преобразилась, и некоторые вещи были вынесены за пределы приложения. В том числе настройки, база данных, хранилище и ресурсы.
То, что находится внутри приложения, теперь разбито на следующие папки:
- Commands (Команды)
- Console (Консоль)
- Events (События)
- Exceptions (Исключения)
- Handlers (Обработчики)
- Http
- Providers (Поставщики услуг)
- Services (Услуги)
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
Мэтта Штоффера.Изменения Blade
В Blade сделано не так много изменений, но
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
довольно существенно.В Laravel 4 Blade включал два следующих стиля: {{ и {{{. Двойные фигурные скобки служили для вывода сырой информации, а тройные — для экранирования.
Теперь и двойные и тройные фигурные скобки экранируют переменную, а для сырого вывода служит новый стиль {!! $var !!}.
Типичный пример использования сырого вывода — вспомогательные методы формы:
HTML:
{!! Form::open() !!}
Контракты
Контракты — это набор интерфейсов, которые определяют базовые услуги, предоставляемые фреймворком. Поэтому они могут служить в качестве документации по функциям фреймворка. Тем не менее, они гораздо более полезны, и вы можете прочесть официальную документацию для получения дополнительной информации о них и о том, как они могут помочь.
Команды и события
Команды и события были переделаны. Эти функции подробно описаны как в документации, так и в следующих материалах:
-
У Вас недостаточно прав для просмотра ссылок. Вход или Регистрация
-
У Вас недостаточно прав для просмотра ссылок. Вход или Регистрация
-
У Вас недостаточно прав для просмотра ссылок. Вход или Регистрация
-
У Вас недостаточно прав для просмотра ссылок. Вход или Регистрация
Фасады по-прежнему есть в Laravel 5, но новые вспомогательные функции начинают замещать некоторые из наиболее распространённых элементов. Например, в Laravel 4 для отрисовки представления использовался такой код:
PHP:
View::make('path.to.view');
PHP:
view('path.to.view');
Вот ещё несколько:
- abort()
- action()
- app()
- app_path()
- asset()
- маршрутизация – get(), delete(), put()
- back()
- redirect()
- response()
- и многие другие…
В маршрутах две новые функции.
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
и
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
.Мэтт проделал отличную работу, описав обе эти функции так, что мне просто нечего добавить. Прочитайте его статьи, чтобы разобраться в этом глубже.
Внедрение метода контроллера
Laravel 4 поддерживал внедрение конструктора контроллера. Разработчики пошли дальше, и теперь вы можете использовать любые зависимости на основе подсказок типов в ваших методах:
PHP:
public function store(Request $request)
PHP:
public function taxes(TaxCalculator $tax)
- Официальная документация
-
У Вас недостаточно прав для просмотра ссылок. Вход или Регистрация
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
авторизации Процесс авторизации по умолчанию предварительно настроен и готов к использованию. Вникнуть во всё это теперь легче, чем когда-либо.
Появилось два новых типажа (trait):
- AuthenticatesAndRegistersUsers
- ResetsPasswords
Socialite
Socialite — необязательный пакет Laravel 5.0, который упрощает работу с OAuth. Все мы его ненавидим, правда? В данный момент Socialite поддерживает работу с Facebook, Twitter, Google и GitHub.
В официальной документации более подробная информация о реализации и принципе работы пакета.
Flysystem
Следующее замечательное новшество — включение в состав фреймворка пакета
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
от Фрэнка де Джонга. Если вы не знакомы с этим пакетом, я расскажу. Это абстракция файловой системы, которая позволяет вам легко подменять локальную ФС на удалённую.Сейчас имеются следующие адаптеры:
- Local
- Amazon Web Services – S3
- Rackspace Cloud Files
- Dropbox
- Copy
- Ftp
- Sftp (через phpseclib)
- Zip (через ZipArchive)
- WebDAV (через SabreDAV)
- Azure Blob Storage
- NullAdapter
dotenv — определение среды
Ванс Лукас создал PHP-пакет
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
, который автомагически загружает переменные среды из .env в getenv(), $_ENV и $_SERVER.Этот пакет встроен в Laravel 5, чтобы значительно упростить управление средами. Больше не надо редактировать bootstrap/start.php и настраивать массив $app->detectEnvironment().
Вместо этого вы создаёте собственный файл .env, и легко можете настраивать его под свои нужды. А затем в любом файле настроек вы можете использовать что-то подобное:
PHP:
'database' => env('DB_DATABASE’, 'myproddb'),
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
, в котором это уже используется.Запросы формы
О проверке ввода и запросах формы уже много сказано. Это такая область, о которой, я уверен, вы уже наслышаны.
В целом авторизация и проверка ввода могут быть превращены в FormRequests и легко внедрены.
Взгляните на следующие материалы, чтобы узнать больше об этой возможности:
-
У Вас недостаточно прав для просмотра ссылок. Вход или Регистрация
-
У Вас недостаточно прав для просмотра ссылок. Вход или Регистрация
Laravel Elixir
Elixir — это новая обёртка для gulp, упрощающая работу с активами. Вместо того, чтобы стараться создать собственную систему для создания css и js-файлов, вы можете использовать Elixir и легко запускать ваше приложение.
Прямо из коробки Elixir обрабатывает 90% всего, что вам необходимо: sass, less, coffeescript, JavaScript, версионность файлов и многое другое.
-
У Вас недостаточно прав для просмотра ссылок. Вход или Регистрация
-
У Вас недостаточно прав для просмотра ссылок. Вход или Регистрация
Laravel Scheduler
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
(планировщик) создан для упрощения задач, которые необходимо запускать через CRON. Надо только настроить одно cron-задание, которое вызывает artisan schedule:run, и запланировать его выполнение на каждую минуту.После настройки cron вы можете планировать запуск любых задач в краткой и дружелюбной форме. Это устраняет неприятную необходимость запоминания планирования в cron, и это действительно очень просто. Эти планирования созданы в вашей папке app/Console/Commands.
Вот пример задачи:
PHP:
$schedule->command('cache:clear')
->hourly()
->sendOutputTo($filePath)
->emailOutputTo('[email protected]');
Анонс этой функции был встречен множеством смешанных реакций. Я из тех, кто считает её прекрасной. Мне нравится, что cron-задачи разделены по версиям, легко просматриваются в моём редакторе, и, кроме всего прочего, написаны на чистом английском.
PHP:
$schedule->call('SomeClass@method')->dailyAt('10:00');
Новое поведение dd()
Серьёзно обновилась всеми любимая функция dd(), или dump and die (вывод дампа переменной и завершение выполнения скрипта — прим. пер.). Symfony выпустила компонент VarDumper, и теперь он в арсенале Laravel.
Компонент VarDumper обеспечивает механизмы для доступа к любой произвольной переменной в PHP. С их помощью он предоставляет вам возможность использовать функцию dump(), которая лучше var_dump.
Это функция очень полезна и даёт нам намного больше возможностей. Более подробную информацию вы найдёте в статье
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
.Изменение атрибутов Eloquent
Этим нововведением мы обязаны
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
. Изменение атрибутов позволяет конвертировать атрибуты в другой тип данных. Например, вы добавляете свойство casts в вашу модель:
PHP:
protected $casts = [
'is_admin' => 'boolean',
'options' => 'array',
];
Это восхитительно, когда вы используете JavaScript, и вам необходимо совпадение типов.
Whoops больше не нужен
В Laravel 4 был обработчик ошибок Whoops. Он удалён из Laravel 5, но если он вам нужен, прочтите
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
.Пакеты и Workbench
В системе работы с пакетами в Laravel произошло несколько значительных изменений. Наиболее заметное из них — отказ от Workbench в пользу использования пакетов Composer напрямую.
Вы можете узнать больше об этих изменениях из официальной документации или из руководства от Джона инт Хаута
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
.Psysh
Tinker — инструмент с интерфейсом командной строки для манипуляций над вашим кодом — теперь использует
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
от Джастина Хальмана. Для тех, кто не знает, Psysh — это:Консоль разработчика в режиме исполнения, интерактивный отладчик и REPL (Read-eval-print loop) — простая интерактивная среда программирования — для PHP.
Psysh супер мощный, вот его некоторые возможности:
- Чтение документации по контексту. doc dd.
- Команда list знает всё про ваш код, и любой другой. Легко выводит и ищет все переменные, константы, классы, интерфейсы, типажи, функции, методы и свойства.
- Легко показывает исходный код любого пользовательского объекта, класса, интерфейса, типажа, константы, метода или свойства.
- Ловит последнее исключение и предоставляет его по команде wtf.
- Отображает, ищет, сохраняет и воспроизводит историю вашей командной оболочки.
SuperClosure
Ещё одно новшество —
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
— библиотека для сериализации замыканий и анонимных функций от Джереми Линблума. В фреймворке она используется для замыканий очередей.Новые генераторы
Artisan теперь ещё мощнее и может генерировать множество шаблонного кода для вас. Вот список некоторых доступных на данный момент:
- make:command — создаёт новый класс команды
- make:console — создаёт новую команду Artisan
- make:controller — создаёт новый класс контроллера ресурса
- make:event — создаёт новый класс события
- make:middleware — создаёт новый класс промежуточного ПО
- make:migration — создаёт новый файл миграции
- make:model — создаёт новый класс модели Eloquent
- make:provider — создаёт новый класс поставщика услуг
- make:request — создаёт новый класс запроса формы
- event:generate — генерирует пропущенные события и обработчики
С помощью простой команды composer update обновиться не получится. Так как это основная версия, приготовьтесь потратить несколько часов на обновление. Уже написано два руководства по этому процессу.
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
и
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
.Куда идти дальше?
Как и в любом фреймворке, лучшее место для изучения — официальная документация. После этого подпишитесь на
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
, которая будет держать вас в курсе последних
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
,
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
и всего остального, связанного с Laravel.2015 год обещает быть захватывающим для мира Laravel, и мне уже не терпится держать вас в курсе событий!
Источник:
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
Немного хочу добавить от себя.
Ларавел очень удобный и современный фреймворк в мире PHP. Он основан на проверенной временем Symfony 2, но черпает свое вдохновение с Ruby on Rails.
Такая комбинация создает достаточно простой в изучении и в то же время очень мощный инструмент для выполнения работы любой сложности.
Начав свое знакомство с версии 4.1 я был поражен наличием встроенных компонентов почти на любой случай и огромного количества пакетов буквально для всего: авторизации, админ-панели, mongodb драйвера - в общем все, что позволяет ускорить разработку. Но это и является наверное самым большим минусом - он достаточно тяжел и несколько проигрывает в скорости своему облегченному конкуренту Yii2.
Спасибо всем дочитавшим до этого момента :thumbsup:
Последнее редактирование: