Найти в Дзене
Базовые концепции GraphQL в Laravel
В Laravel из под капота не поддержки работы с GraphQL поэтому для работы с GraphQL в Laravel проекте самым подходящим пакетом будет Lighthouse (Документация: https://lighthouse-php.com/) Устанавливается как и любой пакет в PHP через Composer # Установка пакета composer require nuwave/lighthouse # Публикация конфигурации php artisan vendor:publish --provider="Nuwave\Lighthouse\LighthouseServiceProvider" Типы запроса: Схематика входных и выходных данных: 1. Input - будет использоваться для схематики входных данных Пример: input UserCreateInput { name: String! surname: String! email: String! } 2...
3 месяца назад
GraphQL API. Лучше или хуже чем REST API
GraphQL - это язык запросов для API-интерфейсов и среда, в которой они выполняются. С помощью GraphQL можно получить данные из API и передать их в приложение (от сервера к клиенту). У них есть официальная документация, которая расположена по адреу https://graphql.org/learn/. Данный язык был придуман компанией Facebook чтобы, якобы, исправить ошибки REST API. Facebook видели в REST API следующие недостатки, которые они решили исправить создав GraphQL: Если вы понимаете, что в вашей организации присутствуют данные проблемы, то можете попробовать создать один из новых проектов на GraphQL и, возможно, будет вам счастье...
3 месяца назад
Паттерн DTO (Data Transfer Object)
Data Transfer Object или же DTO или же в переводе на русский язык - "объект передачи данных" - это шаблон проектирования приложения, который позволяет упаковывать все необходимые данные в один экземпляр класса и передавать их в любой участок вашего приложения в удобном виде. Все начинается с проблемы. Допустим мы создаем кусок приложения, который создает кусок пользователя. Для начала мы создаем метод createUser , который будет выглядеть примерно так: public function createUser(string $email, string $password): User { return User::create([ 'email' => $email, 'password' => bcrypt($password) ]); }...
3 месяца назад
Что такое declare(strict_types=1)?
PHP с каждым большим обновлением все больше стримится к строгой типизации. Так вначале пути нельзя было вообще указывать типы (было просто var), потом стало можно указывать типы у аргументов, но нельзя указывать возвращаемый тип. Потом добавили скалярные типы, nullable. Потом типы у свойств классов и так далее. Но несмотря на все это - PHP не является строго типизированным языком, что дает много свободы разработчикам. Директива declare(strict_types=1) показывает интерпретатору то, что в данном файле будет использоваться строгая типизация. Это так сказать "бьет по рукам" неграмотным разработчикам, выдавая ошибки при нарушении типизации...
3 месяца назад
Сервисный слой (Service Layer) на примерах Laravel
Сервисный слой — это архитектурный паттерн, который выносит бизнес-логику из контроллеров в отдельные классы-сервисы. Это помогает: Главное что стоит понимать - это то, что контроллер нужен лишь для того чтобы принять запрос, передать его куда нужно, дождаться ответа и вернуть ответ. То есть в идеале метод контроллера будет выглядить следующим образом: class UserController extends Contoller { public function get(UserRequest $request): JsonResponse { return (new UserGetAction)->handle($request->perPage); } } Контроллеры должны быть тонкими. Представьте, что у вас есть контроллер...
3 месяца назад
Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала