Forwarded from PHP jobs — вакансии по PHP, Symfony, Laravel
#дайджест #phpdevjob
Вакансии недели для Москвы 👨🏻🏫
Senior PHP разработчик в Торговая компания
Москва. Высоконагруженный маркетплейс.
Подробнее
Программист в Университет искусственного интеллекта
Москва. Образование в сфере AI.
Подробнее
Senior PHP-разработчик в EdgeQ
Москва. Web & Mobile разработка полного цикла.
Подробнее
PHP-разработчик в ЛАБИРИНТ
Москва. Книжный холдинг.
Подробнее
Программист PHP в OOMI
Москва. Комплексный маркетинг, WEB разработка и аутсорсинг.
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
Вакансии недели для Москвы 👨🏻🏫
Senior PHP разработчик в Торговая компания
Москва. Высоконагруженный маркетплейс.
Подробнее
Программист в Университет искусственного интеллекта
Москва. Образование в сфере AI.
Подробнее
Senior PHP-разработчик в EdgeQ
Москва. Web & Mobile разработка полного цикла.
Подробнее
PHP-разработчик в ЛАБИРИНТ
Москва. Книжный холдинг.
Подробнее
Программист PHP в OOMI
Москва. Комплексный маркетинг, WEB разработка и аутсорсинг.
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
hh.ru
Вакансия Senior PHP разработчик в Москве, работа в компании Торговая компания (вакансия в архиве c 23 декабря 2023)
Зарплата: от 400000 ₽ за месяц. Москва. Требуемый опыт: 3–6 лет. Полная занятость. Дата публикации: 23.11.2023.
🤔6❤3
Какое самое лучшее решение вы когда-либо принимали в отношении своей работы/рабочего процесса?⬇️
🥱10❤2👍1
Последнее слово об «unfinalize»
Автор создал запрос на объединение в PHP-CS-Fixer, чтобы предотвратить установку stevebauman/unfinalize вместе с friendsofphp/php-cs-fixer. Это вызвало оживленные обсуждения в сообществе PHP относительно использования ключевого слова «final» в коде. Запрос на объединение был воспринят как полушутка, направленная на предотвращение интеграции инструмента unfinalize с PHP-CS-Fixer.
Драма разгорелась, когда запрос на объединение был принят, и unfinalize был заблокирован в PHP-CS-Fixer. Автор столкнулся с критикой и дизлайками со стороны сообщества, что привело к отмене запроса на объединение. Он аргументировал, что модификация вендорного кода не является стандартом кодирования, и высказал опасения относительно потенциального вреда от разрешения запрещенного наследования.
В статье обсуждаются причины запроса на объединение, включая убеждение в том, что «final by default» — хороший подход, и что unfinalize может быть вредным для пользователей. Автор также рассматривает контраргументы, такие как существование Composer patches и dg/bypass-finals.
Автор создал запрос на объединение в PHP-CS-Fixer, чтобы предотвратить установку stevebauman/unfinalize вместе с friendsofphp/php-cs-fixer. Это вызвало оживленные обсуждения в сообществе PHP относительно использования ключевого слова «final» в коде. Запрос на объединение был воспринят как полушутка, направленная на предотвращение интеграции инструмента unfinalize с PHP-CS-Fixer.
Драма разгорелась, когда запрос на объединение был принят, и unfinalize был заблокирован в PHP-CS-Fixer. Автор столкнулся с критикой и дизлайками со стороны сообщества, что привело к отмене запроса на объединение. Он аргументировал, что модификация вендорного кода не является стандартом кодирования, и высказал опасения относительно потенциального вреда от разрешения запрещенного наследования.
В статье обсуждаются причины запроса на объединение, включая убеждение в том, что «final by default» — хороший подход, и что unfinalize может быть вредным для пользователей. Автор также рассматривает контраргументы, такие как существование Composer patches и dg/bypass-finals.
blog.codito.dev
Final word about `unfinalize`
Recently I’ve created pull request to #PHP-CS-Fixer that aimed to prevent installing stevebauman/unfinalize along with friendsofphp/php-cs-fixer, effectively blocking Fixer to be installed as a dev dependency for that tool. That escalated quickly 😅!
👍10
This media is not supported in the widget
VIEW IN TELEGRAM
🥱18👍8🌚3❤2👏2
Что такое type hinting, как работает, зачем нужен?
Type hinting в PHP — это возможность указывать ожидаемые или допустимые типы данных для параметров функций и функций-обратного вызова (callback). Он используется для определения типов аргументов функций и возвращаемых значений.
Type hinting выполняется при помощи объявления типа данных перед именем параметра функции или функции-обратного вызова.
В данном случае мы указываем, что параметры $a и $b должны быть целочисленного типа (int), а функция должна возвращать тоже целочисленное значение. Если будет передан несоответствующий тип данных, то PHP выдаст ошибку.
Type hinting в PHP имеет следующие преимущества и цели:
1. Увеличение надежности и безопасности кода: Type hinting позволяет контролировать типы данных, которые принимаются и возвращаются функциями, что может помочь предотвратить ошибки типизации и некорректное использование функций.
2. Улучшение понимания кода: Type hinting делает код более читаемым и понятным, особенно при работе в команде. Видя ожидаемые типы данных в объявлениях функций, другие разработчики легко могут понять, какие данные ожидаются для правильного использования функции.
3. Интеграция со средами разработки: Многие среды разработки, такие как PhpStorm, могут использовать информацию о типах данных для предоставления подсказок и автодополнения, что упрощает разработку и ускоряет процесс написания кода.
Однако, следует отметить, что type hinting в PHP не является строгой типизацией. Если передать аргумент, не соответствующий указанному типу, PHP будет пытаться выполнить приведение типов, что может привести к непредсказуемому поведению программы.
#вопросы_с_собеседований
Type hinting в PHP — это возможность указывать ожидаемые или допустимые типы данных для параметров функций и функций-обратного вызова (callback). Он используется для определения типов аргументов функций и возвращаемых значений.
Type hinting выполняется при помощи объявления типа данных перед именем параметра функции или функции-обратного вызова.
В данном случае мы указываем, что параметры $a и $b должны быть целочисленного типа (int), а функция должна возвращать тоже целочисленное значение. Если будет передан несоответствующий тип данных, то PHP выдаст ошибку.
Type hinting в PHP имеет следующие преимущества и цели:
1. Увеличение надежности и безопасности кода: Type hinting позволяет контролировать типы данных, которые принимаются и возвращаются функциями, что может помочь предотвратить ошибки типизации и некорректное использование функций.
2. Улучшение понимания кода: Type hinting делает код более читаемым и понятным, особенно при работе в команде. Видя ожидаемые типы данных в объявлениях функций, другие разработчики легко могут понять, какие данные ожидаются для правильного использования функции.
3. Интеграция со средами разработки: Многие среды разработки, такие как PhpStorm, могут использовать информацию о типах данных для предоставления подсказок и автодополнения, что упрощает разработку и ускоряет процесс написания кода.
Однако, следует отметить, что type hinting в PHP не является строгой типизацией. Если передать аргумент, не соответствующий указанному типу, PHP будет пытаться выполнить приведение типов, что может привести к непредсказуемому поведению программы.
#вопросы_с_собеседований
🥱8👍5
Kubernates и Laravel: Начало работы
Статья предоставляет введение в Kubernetes, охватывая основные концепции и объясняя ключевые компоненты, такие как узлы, кластеры, пулы узлов, поды, наборы реплик, деплойменты, сервисы, ингрессы и пространства имен. Затем описывается конфигурация Pod, ReplicaSet и Deployment в Kubernetes, с акцентом на механизмы меток и селекторов.
Автор также рассматривает создание кластера Kubernetes с использованием DigitalOcean и командной строки kubectl. Управляемые базы данных представляются в качестве решения для обработки состояний в приложениях внутри кластера Kubernetes.
Далее в статье идет речь о развертывании Laravel API в Kubernetes, охватываются темы, такие как ConfigMaps и Secrets для управления переменными окружения. Приводятся подробные шаги по созданию и применению конфигураций деплоймента, а также проверке статуса подов и просмотру журналов.
Затем объясняется развертывание nginx в Kubernetes вместе с настройкой коммуникации между nginx и Laravel API с использованием сервисов типа ClusterIP. Демонстрируется использование команд kubectl для взаимодействия с кластером и тестирования конфигураций.
Статья предоставляет введение в Kubernetes, охватывая основные концепции и объясняя ключевые компоненты, такие как узлы, кластеры, пулы узлов, поды, наборы реплик, деплойменты, сервисы, ингрессы и пространства имен. Затем описывается конфигурация Pod, ReplicaSet и Deployment в Kubernetes, с акцентом на механизмы меток и селекторов.
Автор также рассматривает создание кластера Kubernetes с использованием DigitalOcean и командной строки kubectl. Управляемые базы данных представляются в качестве решения для обработки состояний в приложениях внутри кластера Kubernetes.
Далее в статье идет речь о развертывании Laravel API в Kubernetes, охватываются темы, такие как ConfigMaps и Secrets для управления переменными окружения. Приводятся подробные шаги по созданию и применению конфигураций деплоймента, а также проверке статуса подов и просмотру журналов.
Затем объясняется развертывание nginx в Kubernetes вместе с настройкой коммуникации между nginx и Laravel API с использованием сервисов типа ClusterIP. Демонстрируется использование команд kubectl для взаимодействия с кластером и тестирования конфигураций.
👍7
Из чего состоят карьерные сайты: топ-5 фич и 4 месяца разработки
Здесь рассказывается о растущем спросе на IT-специалистов в России за последние два года и о том, как многие компании начали активно создавать карьерные сайты для эффективного подбора персонала.
Автор описывает свой опыт работы над карьерными сайтами для крупных компаний с активным IT-подбором.
Здесь рассказывается о растущем спросе на IT-специалистов в России за последние два года и о том, как многие компании начали активно создавать карьерные сайты для эффективного подбора персонала.
Автор описывает свой опыт работы над карьерными сайтами для крупных компаний с активным IT-подбором.
Хабр
Из чего состоят карьерные сайты: топ-5 фич и 4 месяца разработки
Всем привет! Меня зовут Данила Соловьев, я заместитель руководителя направления PHP в AGIMA . Недавно мы разработали собственное коробочное решение — это универсальный бэкенд для карьерных сайтов на...
Как часто вы ездите в офис? Сколько раз в неделю?⬇️
🌚13👍2🥱2🤔1
Новые сообщения об ошибках в PHP 8.3
Предстоящая версия PHP 8.3 вводит 38 новых сообщений об ошибках, удаляя при этом 11. Количество уникальных сообщений об ошибках составляет 783, что ставит PHP 8.3 на четвёртое место, обогнав PHP 8.2, но всё ещё уступая PHP 7.4. Сообщения об ошибках обычно накапливаются в пределах основной версии PHP до следующей версии с изменениями, где они удаляются.
Некоторые из новых интересных сообщений об ошибках в PHP 8.3 включают:
1️⃣Устаревшее использование get_class() и get_parent_class() без аргументов. Теперь аргументы обязательны, и рекомендуется использовать $this внутри класса.
2️⃣Ошибка при использовании неподходящего значения для типизированной константы класса.
3️⃣Ограничение возможных типов для констант класса, исключая такие типы, как never, void и callable.
4️⃣Запрет некоторых модификаторов для элементов класса, таких как abstract, static, public, final и т. д.
5️⃣Устаревшее увеличение неалфавитных строк с рекомендацией использовать специализированные функции, такие как str_increment().
6️⃣Введение конкретных сообщений об ошибках для операций декремента с пустыми строками, нечисловыми строками, булевыми и null-типами.
7️⃣Предупреждение о попытке операций инкремента или декремента для булевых значений.
8️⃣Ошибка линтинга для дублирования объявлений статических переменных в замыканиях.
Предстоящая версия PHP 8.3 вводит 38 новых сообщений об ошибках, удаляя при этом 11. Количество уникальных сообщений об ошибках составляет 783, что ставит PHP 8.3 на четвёртое место, обогнав PHP 8.2, но всё ещё уступая PHP 7.4. Сообщения об ошибках обычно накапливаются в пределах основной версии PHP до следующей версии с изменениями, где они удаляются.
Некоторые из новых интересных сообщений об ошибках в PHP 8.3 включают:
1️⃣Устаревшее использование get_class() и get_parent_class() без аргументов. Теперь аргументы обязательны, и рекомендуется использовать $this внутри класса.
2️⃣Ошибка при использовании неподходящего значения для типизированной константы класса.
3️⃣Ограничение возможных типов для констант класса, исключая такие типы, как never, void и callable.
4️⃣Запрет некоторых модификаторов для элементов класса, таких как abstract, static, public, final и т. д.
5️⃣Устаревшее увеличение неалфавитных строк с рекомендацией использовать специализированные функции, такие как str_increment().
6️⃣Введение конкретных сообщений об ошибках для операций декремента с пустыми строками, нечисловыми строками, булевыми и null-типами.
7️⃣Предупреждение о попытке операций инкремента или декремента для булевых значений.
8️⃣Ошибка линтинга для дублирования объявлений статических переменных в замыканиях.
Exakat
New PHP error messages in PHP 8.3 - Exakat
👍10❤2
Forwarded from Библиотека программиста | программирование, кодинг, разработка
Подборка лучших статей «Библиотеки программиста» за октябрь: сохраняй в заметки, чтобы не пропустить #самыйсок
📊 Эффективная работа с JSON в Go
🔝 Лучшие практики Go: путь к чистому коду
📚 ТОП-8 книг по DevOps в 2023 году
💪 6 сервисов для подготовки к техническим собеседованиям
🗺️ Карьерная карта: что это, как ее составить и почему она обязательно нужна разработчику
🛡️ 8 способов защиты от манипуляций на работе
👩💻 Женщины в ИТ: проблемы и преимущества сложной профессии
🤖 8 лучших бесплатных курсов по ИИ и глубокому обучению
👨💻 9 трендов в найме айтишников в 2023 году
🤔 9 мифов об IT и найме айтишников
🤖 25 бесплатных AI-инструментов для разработчиков
☁️ ТОП-10 бессерверных фреймворков
🚩 Итог одной валютной удаленки: проработал месяц бесплатно и ушел с долгами
💻 20 лучших ноутбуков для программиста в 2023 году
🧠 Как научиться критически мыслить: 6 эффективных способов
❔ Результаты ежегодного опроса разработчиков StackOverflow: 20+ главных инсайтов 2023 года
📊 Эффективная работа с JSON в Go
🔝 Лучшие практики Go: путь к чистому коду
📚 ТОП-8 книг по DevOps в 2023 году
💪 6 сервисов для подготовки к техническим собеседованиям
🗺️ Карьерная карта: что это, как ее составить и почему она обязательно нужна разработчику
🛡️ 8 способов защиты от манипуляций на работе
👩💻 Женщины в ИТ: проблемы и преимущества сложной профессии
🤖 8 лучших бесплатных курсов по ИИ и глубокому обучению
👨💻 9 трендов в найме айтишников в 2023 году
🤔 9 мифов об IT и найме айтишников
🤖 25 бесплатных AI-инструментов для разработчиков
☁️ ТОП-10 бессерверных фреймворков
🚩 Итог одной валютной удаленки: проработал месяц бесплатно и ушел с долгами
💻 20 лучших ноутбуков для программиста в 2023 году
🧠 Как научиться критически мыслить: 6 эффективных способов
❔ Результаты ежегодного опроса разработчиков StackOverflow: 20+ главных инсайтов 2023 года
❤1🔥1🥱1
🔎Эта статья рассматривает использование Symfony Messenger вместе с Redis для мониторинга и отслеживания событий, происходящих во время обработки сообщений.
🔑Целью является создание ключей в Redis, которые подсчитывают количество событий различных видов мессенджера как для общего мониторинга, так и для конкретных сообщений. Рассматриваются события, связанные с приемом, обработкой, ошибками и повторными попытками обработки сообщений.
⚙️Настройка включает установку Symfony Messenger и Redis, конфигурацию сервера Redis с использованием Docker и настройку бандла Redis. Используются два типа ключей: общие ключи для общего мониторинга и ключи сообщений для конкретного мониторинга. В статье предоставляется пошаговая инструкция по настройке Redis и созданию необходимых ключей.
🔄Затем представлен сервис MessengerHandler, который взаимодействует с Redis с использованием конвейеров для эффективной обработки хитов для различных ключей. Два перечисления, MessengerEvents и MessengerTimeEvents, используются для категоризации событий и временных интервалов.
👂Далее создается класс MessengerSubscriber, который прослушивает различные события мессенджера и использует сервис MessengerHandler для обновления ключей Redis соответственно.
Для демонстрации функционала в статье создается простое сообщение и его обработчик, настраивается Redis-транспорт Symfony Messenger и отправляется сообщение. В конце статьи объясняется, как проверить сгенерированные ключи Redis, чтобы убедиться, что мониторинг работает правильно.
🔑Целью является создание ключей в Redis, которые подсчитывают количество событий различных видов мессенджера как для общего мониторинга, так и для конкретных сообщений. Рассматриваются события, связанные с приемом, обработкой, ошибками и повторными попытками обработки сообщений.
⚙️Настройка включает установку Symfony Messenger и Redis, конфигурацию сервера Redis с использованием Docker и настройку бандла Redis. Используются два типа ключей: общие ключи для общего мониторинга и ключи сообщений для конкретного мониторинга. В статье предоставляется пошаговая инструкция по настройке Redis и созданию необходимых ключей.
🔄Затем представлен сервис MessengerHandler, который взаимодействует с Redis с использованием конвейеров для эффективной обработки хитов для различных ключей. Два перечисления, MessengerEvents и MessengerTimeEvents, используются для категоризации событий и временных интервалов.
👂Далее создается класс MessengerSubscriber, который прослушивает различные события мессенджера и использует сервис MessengerHandler для обновления ключей Redis соответственно.
Для демонстрации функционала в статье создается простое сообщение и его обработчик, настраивается Redis-транспорт Symfony Messenger и отправляется сообщение. В конце статьи объясняется, как проверить сгенерированные ключи Redis, чтобы убедиться, что мониторинг работает правильно.
DEV Community
Monitoring symfony messenger listening to the worker events
Symfony messenger is a great bundle which allows developers to easily send tasks execution to the...
👍8🥱1
PHP и Laravel дайджест новостей за октябрь 2023 года
Краткий обзор новостей из мира PHP и Laravel за октябрь 2023 г.
Краткий обзор новостей из мира PHP и Laravel за октябрь 2023 г.
Хабр
PHP и Laravel дайджест новостей за октябрь 2023 года
Всем привет! Краткий обзор новостей из мира PHP и Laravel за октябрь 2023 г. PHP Дайджест Вышли PHP 8.1.25 и PHP 8.2.12 В этих выпусках несколько исправлений ошибок и улучшений в модулях Core, CLI,...
❤2
Symfony под капотом: Symfony Messenger и механизм повторной обработки сообщений при ошибках
Здесь рассказывается о том, как в Messenger-компоненте Symfony, устроен механизм повторной обработки сообщений при ошибках
Здесь рассказывается о том, как в Messenger-компоненте Symfony, устроен механизм повторной обработки сообщений при ошибках
Хабр
Symfony под капотом: Symfony Messenger и механизм повторной обработки сообщений при ошибках
Привет! Меня зовут Ваня, последние несколько лет я занимаюсь backend-разработкой в Сравни. Моя команда разрабатывает интеграции с сервисами наших партнёров, код пишем на PHP и Symfony Framework. При...
👍10🥱1
Управление сессиями Laravel в кластерах Kubernetes
В то время как Kubernetes предоставляет преимущества, такие как горизонтальное масштабирование без сохранения состояния, фоновая обработка и гибкость хранения, он вводит сложности для управления сессиями.
Проблемы возникают из-за отсутствия состояния в подах Kubernetes, что может привести к несогласованным данным сессии и проблемам с опытом пользователя. Статья предлагает два решения для разработчиков Laravel:
1️⃣Клиентские сессии (Session Affinity): Это включает в себя настройку Kubernetes для обеспечения того, чтобы запросы от конкретного клиента постоянно направлялись к одному и тому же поду. Это можно достичь через сессионную аффинность на основе IP или куки. В то время как это может решить некоторые проблемы, это может привести к неравномерному распределению трафика и потенциальным нарушениям, если под, обрабатывающий клиентскую сессию, сталкивается с проблемами.
2️⃣Распределенное хранилище сессий с Redis: В статье предлагается использовать Redis в качестве распределенного хранилища сессий для обмена данными сессии между несколькими экземплярами приложения Laravel. Redis выбран из-за своей производительности, масштабируемости, устойчивости и поддержки различных структур данных. Предоставлены шаги по настройке Redis в качестве драйвера сессии в Laravel, включая установку необходимого пакета, обновление конфигурационных файлов и развертывание Redis в Kubernetes с использованием Helm.
Реализуя либо клиентские сессии, либо распределенное хранилище сессий с Redis, разработчики Laravel могут преодолеть проблемы, внесенные Kubernetes, обеспечивая согласованное управление сессиями и опыт пользователя в масштабируемых средах.
В то время как Kubernetes предоставляет преимущества, такие как горизонтальное масштабирование без сохранения состояния, фоновая обработка и гибкость хранения, он вводит сложности для управления сессиями.
Проблемы возникают из-за отсутствия состояния в подах Kubernetes, что может привести к несогласованным данным сессии и проблемам с опытом пользователя. Статья предлагает два решения для разработчиков Laravel:
1️⃣Клиентские сессии (Session Affinity): Это включает в себя настройку Kubernetes для обеспечения того, чтобы запросы от конкретного клиента постоянно направлялись к одному и тому же поду. Это можно достичь через сессионную аффинность на основе IP или куки. В то время как это может решить некоторые проблемы, это может привести к неравномерному распределению трафика и потенциальным нарушениям, если под, обрабатывающий клиентскую сессию, сталкивается с проблемами.
2️⃣Распределенное хранилище сессий с Redis: В статье предлагается использовать Redis в качестве распределенного хранилища сессий для обмена данными сессии между несколькими экземплярами приложения Laravel. Redis выбран из-за своей производительности, масштабируемости, устойчивости и поддержки различных структур данных. Предоставлены шаги по настройке Redis в качестве драйвера сессии в Laravel, включая установку необходимого пакета, обновление конфигурационных файлов и развертывание Redis в Kubernetes с использованием Helm.
Реализуя либо клиентские сессии, либо распределенное хранилище сессий с Redis, разработчики Laravel могут преодолеть проблемы, внесенные Kubernetes, обеспечивая согласованное управление сессиями и опыт пользователя в масштабируемых средах.
Laravel News
Stateful Scaling: Laravel Session Management in Kubernetes Clusters - Laravel News
Learn some of the gotchas in Laravel session management you’ll experience as you move to a Kubernetes deployment
❤3👍3
Что означает утверждение о том, что СУБД поддерживает контроль ссылочной целостности связей?
Утверждение о том, что СУБД поддерживает контроль ссылочной целостности связей означает, что СУБД автоматически обеспечивает целостность данных, связанных между таблицами. Она регулирует и проверяет соответствие значений внешнего ключа (foreign key) со значениями первичного ключа (primary key) родительской таблицы.
#вопросы_с_собеседований
Утверждение о том, что СУБД поддерживает контроль ссылочной целостности связей означает, что СУБД автоматически обеспечивает целостность данных, связанных между таблицами. Она регулирует и проверяет соответствие значений внешнего ключа (foreign key) со значениями первичного ключа (primary key) родительской таблицы.
#вопросы_с_собеседований
👍15🥱9
Создание базовой схемы GraphQL, используя атрибуты PHP и Resonance
Статья рассматривает концепцию GraphQL как альтернативы REST и других систем API, которая преобразует приложение в графовую базу данных, с которой можно выполнять запросы.
Основная идея заключается в том, что вместо того чтобы выставлять и создавать специфические конечные точки, можно выставить структуры данных.
Resonance представляет собой асинхронный PHP-фреймворк, способный параллельно разрешать все поля GraphQL.
Статья начинается с базовой схемы GraphQL, предоставляющей объект ping с единственным полем message, всегда возвращающим «pong».
Основной акцент делается на использовании Resonance для обработки запросов GraphQL асинхронно. Приводится пример кода на PHP для создания GraphQL-схемы, Responder для обработки POST-запросов на '/graphql' и пример объекта типа Ping.
Статья рассматривает концепцию GraphQL как альтернативы REST и других систем API, которая преобразует приложение в графовую базу данных, с которой можно выполнять запросы.
Основная идея заключается в том, что вместо того чтобы выставлять и создавать специфические конечные точки, можно выставить структуры данных.
Resonance представляет собой асинхронный PHP-фреймворк, способный параллельно разрешать все поля GraphQL.
Статья начинается с базовой схемы GraphQL, предоставляющей объект ping с единственным полем message, всегда возвращающим «pong».
Основной акцент делается на использовании Resonance для обработки запросов GraphQL асинхронно. Приводится пример кода на PHP для создания GraphQL-схемы, Responder для обработки POST-запросов на '/graphql' и пример объекта типа Ping.
DEV Community
Build a Basic GraphQL Schema Using PHP
What is GraphQL? GraphQL is an alternative to REST and other API systems that, in essence,...
❤7👍6