Чтобы создать приложение CRUD реального времени (создание, чтение, обновление, удаление) с API Laravel с использованием WebSockets, вы можете выполнить шаги, описанные ниже.
-
Настройте Laravel и WebSockets:
- Установите Laravel, запустив
composer create-project --prefer-dist laravel/laravel myprojectна своем терминале. - Установите пакет Laravel WebSockets, запустив
composer require Beyondcode/laravel-websocketsв своем терминале. - Опубликуйте файл конфигурации WebSockets с помощью
php artisanvendor:publish --provider="BeyondCode\LaravelWebSockets\WebSocketsServiceProvider" --tag="config". - Сгенерируйте сертификат SSL, запустив
php artisan websockets:cert.
- Установите Laravel, запустив
-
Создание базы данных и миграция:
- Создайте новую базу данных для своего приложения.
- Создайте файл миграции с помощью команды
php artisan make:migration create_items_table. - В файле миграции определите необходимые столбцы для таблицы элементов, такие как
имя,описаниеи т. д., и запустите миграцию с помощьюphp artisanmigrate Команда.
-
Настройте маршруты и контроллеры:
- Определите необходимые маршруты в файле
routes/api.phpдля операций CRUD. - Создайте соответствующие контроллеры, используя
php artisan make:controller ItemController --api --model=Item.
- Определите необходимые маршруты в файле
-
Реализовать функциональность в реальном времени:
- В вашем
ItemControllerимпортируйте необходимые классы:use App\Events\ItemCreated; use App\Events\ItemUpdated; use App\Events\ItemDeleted; use App\Models\Item; -
Реализуйте методы CRUD, например:
public function store(Request $request) { $item = Item::create($request->all()); event(new ItemCreated($item)); return response()->json($item, 201); } public function update(Request $request, Item $item) { $item->update($request->all()); event(new ItemUpdated($item)); return response()->json($item, 200); } public function destroy(Item $item) { $item->delete(); event(new ItemDeleted($item)); return response()->json(null, 204); } - Создайте соответствующие классы событий, используя
php artisan make:event ItemCreated,php artisan make:event ItemUpdatedиphp artisan make:event ItemDeleted>команды. - Реализуйте классы событий, например:
public $item; public function __construct(Item $item) { $this->item = $item; } public function broadcastOn() { return new Channel('items'); } public function broadcastWith() { return ['item' => $this->item]; }
- В вашем
-
Настроить WebSockets:
- Откройте файл
config/websockets.phpи установите для значенияrouteзначениеnullвappsраздел кода>. - Установите для драйвера
broadcastingзначениеpusherи настройте учетные данные Pusher в файлеconfig/broadcasting.php.
- Откройте файл
-
Запустите сервер WebSockets:
- Запустите
php artisan websockets:serveна своем терминале, чтобы запустить сервер WebSockets.
- Запустите
Теперь у вас есть CRUD-приложение реального времени с API Laravel, использующее WebSockets. Вы можете отправлять запросы к определенным маршрутам для создания, обновления и удаления элементов, и изменения будут транслироваться всем подключенным клиентам.