Как настроить Laravel для создания базового серверного кода?

Я исследовал возможности Laravel, используя breeze+inertia+react, и мне понравилась сложность и целостность создаваемого приложения. Сейчас я хочу продолжить изучение разработки на PHP, но хочу изменить проект, написав только backend на PHP, а frontend на JS. Я поискал лучшие фреймворки для создания API и увидел, что Laravel часто указывается в топах. В большинстве статей, которые я прочитал, описывается пошаговое создание API с использованием маршрутизации, контроллеров и моделей баз данных, построенное на основе обычного проекта. Это понятно. Но меня беспокоит вопрос: не будет ли излишним использование Laravel в моем случае? Первое, что приходит в голову, это то, что Laravel изначально предоставляет маршруты и примеры для веб-приложений. Я допускаю, что могу их удалить. Кроме того, есть шаблоны представлений, которые тоже нужно удалить. Далее, есть тесты для всего этого, которые нужно удалить. Наверняка есть и Middleware, которые я не буду использовать, и так далее. Существует ли способ получить сразу оптимизированное решение, соответствующее написанию API? Или может быть есть более простые фреймворки для моих целей?
  • 20 ноября 2023 г. 10:15
Ответы на вопрос 2
Laravel действительно может быть очень удобным фреймворком для разработки API, даже если ваш основной фокус - только на backend-разработке на PHP.

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

1. Удалите все маршруты в файле `routes/web.php`. Это удалит маршруты, предназначенные для веб-приложения.

2. Создайте новый файл маршрутов, например, `routes/api.php`, и определите все ваши API-маршруты в этом файле. Вы можете использовать методы, такие как `Route::get()` и `Route::post()` для определения путей и контроллеров, которые будут обрабатывать их.

3. Удалите все шаблоны представлений, чтобы избавиться от неиспользуемого кода. Обычно они находятся в каталоге `resources/views`.

4. Отключите или удалите тесты, которые не нужны для вашего API. Обычно они находятся в каталоге `tests`.

5. В настройках приложения (`config/app.php`) проверьте, что не установлен `App\Providers\RouteServiceProvider`, так как этот провайдер содержит ссылку на файл маршрутов веб-приложения (`routes/web.php`).

6. Если вы не планируете использовать Middleware, вы также можете удалить или отключить любые упоминания о них в ваших маршрутах или в глобальном Middleware (`app/Http/Kernel.php`).

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

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

Относительно вопроса о других более простых фреймворках для разработки API на PHP, Laravel все равно остается одним из самых распространенных и мощных фреймворков для этой цели. Однако существует также несколько других фреймворков, таких как Slim, Lumen и Yii, которые могут предоставить более минимальный набор функций и быть более легковесными для ваших потребностей. Вы можете рассмотреть эти фреймворки, если вам нужна более простая альтернатива Laravel.
Там все уже оптимизировано для вас, не нужно заморачиваться. Если у вас возникают проблемы с производительностью из-за фреймворка (что маловероятно), тогда вы можете оптимизировать конкретные проблемные места.

Раньше была урезанная версия Laravel под названием Lumen, в которой было сделано то, что вы описали. Однако, с течением времени необходимость в нем отпала и рекомендуется не использовать Lumen.

Просто почистите роуты и все будет в порядке. Да, часть миддлваров не будет использоваться для API, но почему это должно вас беспокоить? Они просто лежат на диске и их размер составляет менее килобайта.

Есть ли способ получить сразу оптимизированное решение под написание API? Laravel уже оптимизирован и по умолчанию включает пакет для аутентификации по токенам. Просто используйте его и не беспокойтесь.
Похожие вопросы