8 новых мощных функций веб-разработки в Laravel 8
Laravel – самый популярный фреймворк PHP, на котором построено более 1,2 миллиона веб-сайтов. С момента своего выпуска в июне 2011 года Laravel привлек внимание многих веб-разработчиков, зарекомендовав себя как наиболее часто используемый фреймворк PHP.
Laravel предлагает среду быстрой разработки, безопасность и хорошие руководства для разработчиков. Созданный и поддерживаемый его создателем Тейлором Отвеллом, Laravel продолжает улучшать свое программное обеспечение. Он следует семантической схеме управления версиями и в настоящее время находится в версии 8.x.
Вот восемь новых функций, на которые стоит обратить внимание в Laravel 8.
1. Laravel Jetstream
Это новая функция построения шаблонов приложений в Laravel . Он поставляется с готовыми функциями, такими как отслеживание сеансов, вход в систему, регистрация, проверка электронной почты, двухфакторная аутентификация и дополнительное управление командой.
Jetstream предлагает на выбор два варианта строительных лесов: Livewire и Inertia.
Livewire – это отзывчивая и динамическая библиотека, которая позволяет избежать использования инфраструктуры JavaScript, такой как Vue.js. Он использует язык шаблонов Blade по умолчанию. Livewire также предлагает гибкость выбора между выходом из Blade или использованием Vue.js.
Inertia использует Vue.js в качестве языка шаблонов.
Он дает всю мощь Vue.js без необходимости маршрутизации на стороне клиента. Если Vue – ваш предпочтительный язык шаблонов, то стек Inertia – хороший выбор.
2. Сжатие миграции
По мере разработки приложения ваши миграции могут увеличиваться. Вы можете «сжать» их в один файл SQL, чтобы избежать шума. Эта опция доступна для пользователей MySQL или PostgreSQL.
Laravel создаст файл схемы при выполнении команды schema: dump . Когда вы пытаетесь перенести свою базу данных, Laravel сначала перенесет файл SQL, связанный с вашей схемой. После этого, если есть какие-либо миграции, которые не были частью схемы, они будут выполнены.
3. Попутный ветер CSS
Laravel теперь использует фреймворк Tailwind CSS в качестве пагинатора по умолчанию. Tailwind – это библиотека CSS для служебных программ, которая предоставляет одноразовые классы CSS. Это дает то преимущество, что информация о стилях хранится в одном месте, а не разбросана. Вы можете применять предопределенные классы непосредственно к вашему HTML-документу.
Tailwind также предлагает возможность создавать адаптивные дизайны. Он предлагает первую мобильную систему, аналогичную Bootstrap. Это означает, что служебные программы без префиксов реагируют на все размеры экрана, в то время как служебные программы с префиксом вступают в силу в определенных точках.
Tailwind также имеет режим «точно по времени», позволяющий создавать стили по запросу, а не отрисовывать все во время начальной сборки. Это делает его быстрее, чем при использовании обычного CSS. Еще одно преимущество этого предложения заключается в том, что вам не нужно избавляться от неиспользуемых производственных стилей, что дает вам возможность использовать свой код в нескольких средах.
Также интересно отметить, что Laravel Jetstream был построен с использованием Tailwind.
4. Пакетирование заданий
Вы можете использовать эту функцию для запуска пакета заданий в заданное время и выполнения определенных действий по завершении их выполнения. Фасад Bus предоставляет пакетный метод, который позволяет отправлять задания.
Вы можете выполнять это в тандеме с другими обратными вызовами завершения, такими как catch , then и, наконец, для добавления функциональности вашим заданиям.
use AppJobsProcessPodcast;
use AppPodcast;
use IlluminateBusBatch;
use IlluminateSupportFacadesBus;
use Throwable;
$batch = Bus::batch([
new ProcessPodcast(Podcast::find(1)),
new ProcessPodcast(Podcast::find(2)),
new ProcessPodcast(Podcast::find(3)),
new ProcessPodcast(Podcast::find(4)),
new ProcessPodcast(Podcast::find(5)),
])->then(function (Batch $batch) {
// All jobs completed successfully...
})->catch(function (Batch $batch, Throwable $e) {
// First batch job failure detected...
})->finally(function (Batch $batch) {
// The batch has finished executing...
})->dispatch();
return $batch->id;
Для начала вам необходимо создать таблицу миграции, которая будет содержать метаданные задания, такие как показатели выполнения. Для этого используйте команду php artisan queue: batches-table . И затем php artisan мигрирует, чтобы перенести их. Теперь вы можете определить свои задания с возможностью пакетной обработки, а затем отправить их, когда будете готовы.
5. Классы фабрики моделей
Сначала обсудим модельные фабрики. Они используются для заполнения ваших баз данных тестовыми данными. Эти поддельные данные важны для целей тестирования, прежде чем будут добавлены какие-либо реальные пользовательские данные.
В Laravel 8 прежние классы моделей Eloquent были полностью заменены фабриками на основе классов. Благодаря этому теперь вы можете управлять состояниями объекта, просто используя методы. Эти методы обычно вызывают метод state () , который указан в базовом фабричном классе Laravel. Метод state () принимает в качестве аргумента функцию, которая принимает массив атрибутов, назначенных фабрике.
6. Улучшенное обслуживание
Ранее в Laravel был список разрешенных IP-адресов, которые вы могли использовать для доступа к приложению в режиме обслуживания. Это было удалено и заменено более простым «секретным» решением. Вы можете указать токен обхода, используя секретную опцию.
Находясь в режиме обслуживания, вы можете получить доступ к URL-адресу вашего приложения, и Laravel автоматически передаст обходной файл cookie вашему браузеру. После того, как файл cookie будет выпущен, вы получите доступ к приложению в обычном режиме, как если бы оно не находилось в режиме обслуживания.
Ваши пользователи могут столкнуться с ошибками, если вы используете PHP artisan во время развертывания. Чтобы избежать этого, Laravel предлагает возможность отображать представление режима обслуживания, которое будет возвращаться при каждом запросе. Вы можете выполнить предварительный рендеринг шаблона, используя опцию рендеринга в команде вниз.
7. Помощники по проверке времени
Laravel теперь включает возможность управлять текущим временем. У вас есть возможность использовать атрибуты времени в миллисекундах, часах, днях и т. Д.
public function testTimeCanBeManipulated()
{
// Travel into the future...
$this->travel(5)->milliseconds();
$this->travel(5)->seconds();
$this->travel(5)->minutes();
$this->travel(5)->hours();
$this->travel(5)->days();
$this->travel(5)->weeks();
$this->travel(5)->years();
// Travel into the past...
$this->travel(-5)->hours();
// Travel to an explicit time...
$this->travelTo(now()->subHours(6));
// Return back to the present time...
$this->travelBack();
}
Эти вспомогательные функции делают вашу работу аккуратной и простой, давая методам описательные имена.
8. Улучшенное ограничение скорости
Ограничение скорости позволяет вам управлять объемом трафика, который вы получаете на определенном маршруте или группе маршрутов. Это может быть достигнуто с помощью промежуточного программного обеспечения дроссельной заслонки . Промежуточное программное обеспечение дроссельной заслонки принимает имя ограничителя скорости, который вы хотите использовать на маршруте. Код HTTP-запроса (429) возвращается, если входящий запрос превышает заданный предел скорости.
В Laravel 8 ограничитель скорости был построен с большей гибкостью, сохраняя при этом обратную совместимость. Функция обратного вызова ограничителя скорости позволяет динамически создавать подходящие ограничения скорости, установленные для аутентифицированных пользователей или входящих запросов.
Впереди захватывающие времена для Laravel
Laravel прост в освоении и предоставляет подробное руководство для разработчиков с простыми для понимания примерами. Он предоставляет исправления ошибок и патчи почти еженедельно, а основные выпуски – ежегодно (примерно в сентябре). Если вам нужна дополнительная помощь, Laravel предоставляет платформу Laracasts, где вы можете получить помощь экспертов. Однако платформа предоставляет платные уроки веб-разработки.
Для веб-разработчика Laravel – обязательный навык. Это открытый исходный код, бесплатное использование и сообщество из более чем 40 000 пользователей. Это технология, за которой стоит следить.