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 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 для тестирования, заполнение базы данных и безболезненное тестирование в браузере позволяют вам развиваться с уверенностью.
Узнать больше