PHP-фреймворк для веб-мастеров

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

Пишите код ради удовольствия.

Laravel ценит красоту. Мы так же любим чистый код, как и вы. Простой, элегантный синтаксис предоставляет потрясающую функциональность на расстоянии вытянутой руки. Каждая особенность была тщательно продумана, чтобы обеспечить замечательный опыт разработчика.

Начать обучение

Всё, что вам нужно, чтобы быть потрясающим.

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

Аутентификация

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

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

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

use Illuminate\Support\Facades\Auth;
 
// Получить текущего аутентифицированного пользователя...
$user = Auth::user();

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

Для получения дополнительной информации о функциях аутентификации Laravel, ознакомьтесь с документацией по аутентификации.

Авторизация

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

php artisan make:policy UserPolicy

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

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

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

Eloquent ORM

Боитесь работать с базами данных? Не стоит. 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();

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

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

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

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

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

Валидация

У 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 для быстрой отправки красочных уведомлений пользователям по электронной почте, в Slack, SMS, внутри приложения и многое другое:

php artisan make:notification InvoicePaid

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

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

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

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

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

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

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

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

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

Очереди задач

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

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

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

php artisan queue:work redis --queue=podcasts
Laravel Horizon предоставляет красивую панель и конфигурацию на основе кода для ваших очередей Redis, работающих на Laravel.

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

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

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

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

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

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

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

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

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}")
);

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

События и веб-сокеты

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

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

Ваше фронтенд-приложение может даже подписываться на события Laravel с использованием Laravel Echo и веб-сокетов, что позволяет создавать реальное время и динамические приложения:

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

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

Мы только коснулись поверхности. Laravel предоставляет все, что вам понадобится для создания веб-приложения, включая верификацию по электронной почте, ограничение скорости и собственные консольные команды. Ознакомьтесь с документацией Laravel, чтобы продолжать учиться.

Двигайтесь быстро...
с уверенностью.

Laravel стремится предоставить вам лучший опыт тестирования, который вы можете себе представить. Не более хрупких тестов, которые тяжело поддерживать. Красивые API для тестирования, заполнение базы данных и безболезненное тестирование в браузере позволяют вам развиваться с уверенностью.

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