Почему Laravel считается лучшим php-фреймворком?
Почему выбирают Laravel? Потому что, он — лучший!

Логотип Laravel в кривых



Без вариантов, — выбор за Laravel!

В Laravel уже есть готовые элегантные решения для стандартных задач, которые необходимы для работы всех современных веб-приложений. Пришло время начать создавать потрясающие приложения и перестать тратить время на поиск необходимых программных пакетов и изобретать велосипед.

Что идёт в Laravel из коробки

Аутентификация в Laravel.

Аутентификация пользователей осуществляется просто - достаточно добавить middleware аутентификации в определение маршрута Laravel:

Route::get('/profile', ProfileController::class)
    ->middleware('auth');

После аутентификации доступ к аутентифицированному пользователю можно получить через фасад Auth:

use Illuminate\Support\Facades\Auth;
 
// Get the currently authenticated user...
$user = Auth::user();

Конечно, можно определить собственное middleware для аутентификации, что позволит гибко настроить процесс аутентификации.

Более подробную информацию о возможностях аутентификации в Laravel можно найти в документации по аутентификации.

Авторизация в Laravel.

Часто возникает необходимость проверить, имеет ли авторизованный пользователь право на выполнение определенного действия. Политики моделей Laravel позволяют сделать это без особых усилий:

php artisan make:policy UserPolicy

После определения правил авторизации в сгенерированном классе политики можно авторизовать запрос пользователя в методах контроллера:

public function update(Request $request, Invoice $invoice)
{
    Gate::authorize('update', $invoice);
 
    $invoice->update(/* ... */);
}

Узнать больше...

Eloquent ORM Laravel.

Боитесь баз данных? Не стоит. С помощью Eloquent ORM в Laravel можно легко взаимодействовать с данными приложения, а также быстро создавать модели, миграции и зависимости:

php artisan make:model Invoice --migration

После того как структура модели и взаимосвязи определены, можно взаимодействовать с базой данных, используя мощный и выразительный синтаксис Eloquent:

// Создание связанной модели...
$user->invoices()->create(['amount' => 100]);
 
// Обновление модели...
$invoice->update(['amount' => 200]);
 
// Получение данных модели...
$invoices = Invoice::unpaid()->where('amount', '>=', 100)->get();
 
// Богатый API для взаимодействия с моделями...
$invoices->each->pay();

Дополнительная информация...

Миграции баз данных в Laravel.

Миграции — это аналог контроля версий для базы данных, позволяющий участникам команды определять и совместно использовать схему базы данных приложения:

public function up(): void
{
    Schema::create('flights', function (Blueprint $table) {
        $table->uuid()->primary();
        $table->foreignUuid('airline_id')->constrained();
        $table->string('name');
        $table->timestamps();
    });
}

Читать подробнее...

Валидация в Laravel.

В Laravel существует более 90 мощных встроенных правил валидации, а с помощью Laravel Precognition можно обеспечить прямую валидацию на фронтенде:

public function update(Request $request)
{
    $validated = $request->validate([
        'email' => 'required|email|unique:users',
        'password' => Password::required()->min(8)->uncompromised(),
    ]);
 
    $request->user()->update($validated);
}

Более подробная информация...

Уведомления и почта в Laravel.

Laravel позволяет быстро отправлять красиво оформленные уведомления пользователям по электронной почте, через Slack, SMS, in-app и т.д:

php artisan make:notification InvoicePaid

После создания уведомления его можно легко отправить одному из пользователей приложения:

$user->notify(new InvoicePaid($invoice));

Дополнительный материал...

Хранение файлов Laravel.

Laravel предоставляет надежный уровень абстракции файловой системы, обеспечивая единый унифицированный API для взаимодействия как с локальными файловыми системами, так и с облачными файловыми системами, например Amazon S3:

$path = $request->file('avatar')->store('s3');

Независимо от того, где хранятся файлы, взаимодействовать с ними можно с помощью простого и элегантного синтаксиса Laravel:

$content = Storage::get('photo.jpg');
 
Storage::put('photo.jpg', $content);

Узнать больше...

Очереди заданий в Laravel.

Laravel позволяет передавать медленные задания в фоновую очередь, обеспечивая быстрое выполнение веб-запросов:

$podcast = Podcast::create(/* ... */);
 
ProcessPodcast::dispatch($podcast)->onQueue('podcasts');

Количество рабочих очередей может быть таким, какое необходимо для выполнения работы:

php artisan queue:work redis --queue=podcasts

Для большей наглядности и контроля над очередями Laravel Horizon предоставляет красивую информационную панель и возможность настройки очередей Redis на базе Laravel непосредственно с помощью кода.

Подробнее:

Планирование задач в Laravel.

Планируйте повторяющиеся задания и команды с помощью выразительного синтаксиса и попрощайтесь со сложными конфигурационными файлами:

$schedule->job(NotifySubscribers::class)->hourly();

Планировщик Laravel может работать даже с несколькими серверами и предлагает встроенную защиту от дублирования:

$schedule->job(NotifySubscribers::class)
    ->dailyAt('9:00')
    ->onOneServer();
    ->withoutOverlapping();

Более подробная информация...

Тестирование в Laravel.

Laravel создан и для тестирования. От модульных тестов до браузерных тестов, это позволит более уверенно развёртывать приложение:

$user = User::factory()->create();
 
$this->browse(fn (Browser $browser) => $browser
    ->visit('/login')
    ->type('email', $user->email)
    ->type('password', 'password')
    ->press('Login')
    ->assertPathIs('/home')
    ->assertSee("Welcome {$user->name}")
);

Читать далее...

Events & WebSockets в Laravel.

События Laravel позволяют отправлять и прослушивать события во всем приложении, а слушатели могут быть легко отправлены в фоновую очередь:

OrderShipped::dispatch($order);
class SendShipmentNotification implements ShouldQueue
{
    public function handle(OrderShipped $event): void
    {
        // ...
    }
}

С помощью Laravel Echo и WebSockets фронтенд-приложение может подписываться на события Laravel, что позволяет создавать динамические приложения, работающие в режиме реального времени:

Echo.private(`orders.${orderId}`)
    .listen('OrderShipped', (e) => {
        console.log(e.order);
    });

Изучить подробнее...

Ещё больше возможностей с документацией Laravel

Это лишь малая часть. В Laravel есть все, что нужно для создания веб-приложения, включая проверку электронной почты, ограничение скорости и пользовательские консольные команды. Изучайте документацию по Laravel, чтобы продолжать учиться.

Перевод с английского официальной информации о Laravel:
https://laravel.com

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню