Как стать автором
Обновить
78.96

PHP *

Скриптовый язык общего назначения

Сначала показывать
Порог рейтинга
Уровень сложности

Создание сервера для онлайн ММО игр на PHP ч.14 — Сетевая карта и задержка кадра (Latency frame) по RFC 2544 (1242)

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 2.3K
PHP *Проектирование и рефакторинг *Разработка игр *Сетевые технологии *Параллельное программирование *
Роадмэп

В этой части серии статей про разработку сервера для реалтайм игр я расскажу вам о показателе сетевого устройства которое значительно влияет на количество запросов, которое способен обработать ваш игровой сервер.

В статье я расскажу как разработчиков вводят в заблуждение рассказывая что необходимо учесть в первую очередь при разработке серверов (и не только для игр), но умалчивая о реальных "узких местах" (проблемах).

В конце статьи будет приложена видео версия.

Читать далее
Всего голосов 8: ↑7 и ↓1 +6
Комментарии 20

Новости

Создание плагина кнопки редактора в Joomla 4

Уровень сложности Сложный
Время на прочтение 23 мин
Количество просмотров 483
Разработка веб-сайтов *Open source *PHP *JavaScript *Joomla *
Туториал

Статья о том, как удобно расширить пользовательские возможности при редактировании или создании контента в Joomla. Если Вы, например, захотите сделать подсчет СЕО-характеристик текста или внедрить ИИ помощник прямо в интерфейс Joomla, то эта статья расскажет как Вашему разработчику это сделать.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 5

PHP. Рецепты программирования (2023) — обзор книги и рекомендации

Время на прочтение 3 мин
Количество просмотров 2.8K
PHP *Читальный зал
Обзор

В настоящий момент выходит не так много книг по PHP, поэтому я решил прочитать свежее переиздание книги PHP Cookbook от 2023 года, которую в России переводят, как "PHP. Рецепты программирования". Хотелось бы «УЗНАТЬ», что можно написать не про какую-то сферу, где применяется PHP, а именно про сам язык.

Об авторе

Эрик Манн - инженер-программист с опытом почти в два десятилетия. Он создавал масштабируемые проекты для стартапов на ранней стадии и для компаний из списка Fortune 500. Эрик часто рассказывает о архитектуре программного обеспечения, технике безопасности и передовом опыте разработки. Он регулярно уже более пяти лет пишет статьи в журнале php[architect], и больше всего ему нравится помогать новым разработчикам избегать многих ошибок, которые он совершил в своей карьере программиста.

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 14

Создание сервера для онлайн ММО игр на PHP ч.13 — Event-driven паттерн, JSON-RPC и почему не сервисная (SOA) архитектура

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 2.6K
PHP *Программирование *Проектирование и рефакторинг *Разработка игр *Алгоритмы *
Роадмэп

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

В этой статье я без привязки к коду объясню простым языком и в картинках как можно применять в разработке архитектуры авторитарного сервера для онлайн игр шаблон проектирования Event-driven.

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 6

Истории

Наследование Entity в Doctrine

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 1.3K
PHP *Совершенный код *Проектирование и рефакторинг *
Из песочницы

В практике разработки веб-приложений иногда возникает необходимость расширения сущностей, которые представляют таблицы базы данных в коде. Для примера рассмотрим следующую ситуацию: в нашем проекте была реализация класса автотранспортного средства Car, но спустя некоторое время появилась возможность ввести еще один класс автотранспортного средства под названием Buggy. Новый класс, имел одинаковые поля и представлял схожую концепцию. Нам важно было иметь возможность работать с ним как с объединенным типом Auto, а также как с отдельным типом.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 10

Создание сервера для онлайн ММО игр на PHP ч. 12 — Очереди и параллельное программирование на CPU

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 2K
PHP *Анализ и проектирование систем *Разработка игр *Сетевые технологии *Параллельное программирование *
Роадмэп

В данной статье речь пойдет о взаимодействии WebSocket сервера и сервера рассчитывающего события в мультиплеерных играх (команды пользователей, игровую физику, алгоритмический искусственный интеллект и т.п.).

Будет затронута тема очередей, асинхронного логирования, параллельного программирования на CPU и использования каналов (сhannel) для взаимодействия между процессами (thread - ветками) на языке программирования PHP (аналогичный функционал есть в языке GO).

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 8

Дизассемблер 6502 (nes/famicom/dendy) на php

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 2.5K
PHP *Assembler *

Я продолжаю изучать ассемблер 6502, но для экспериментов мне понадобился дизассемблер, Я пробовал использовать da65 собственно тот что идет вместе с ассемблером и линкером ca65 и ld65 соответственно. Но заметив в документации коды команд в hex представление. И вдруг понял что если прочитать файл nes то можно просто взять код инструкции, взять ее длину и спарсить аргумент. И мы получим дизассемблированный код в его простом представление.

Под катом небольшой рассказ о том как я написал скрипт дизассемблера на PHP.

Читать далее
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 9

Использование ICU Message Format в PHP

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 2K
PHP *Symfony *Yii *
Туториал
Из песочницы

Недавно я узнал про довольно интересный инструмент, встроенный в РНР. Оказывается, в языке нативно поддерживается универсальный формат шаблонов для сообщений, ICU Message Format. В частности, он используется в Symfony Translation Component и в системе интернационализации фреймворка Yii 2. Однако этот функционал доступен и сам по себе, в чистом РНР. И может использоваться не только для создания многоязычных сайтов, но и в качестве простенького шаблонизатора, например для email-рассылок.

Я решил разобраться с ним поподробнее
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 2

Пишем Telegram бота для распознавания голосовых сообщений и их обработки с помощью AI

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 3.7K
PHP *
Из песочницы

Всем привет. Меня зовут Игорь Филиппов и я веб-разработчик. Вы, вероятнее всего, знаете, как прочно ChatGPT закрепился в медийном пространстве. Ежедневно выходит сотни статей и видео на эту тему, предлагая разнообразные варианты применения.

Мне в голову пришла идея создать бота, который автоматически под каждым голосовым сообщением оставляет свой реплай с полной расшифровкой аудио. Но в процессе разработки я подумал, что можно дополнительно проинтегрировать бота с ChatGPT - для получения краткого пересказа самого сообщения. Тем более, к тому моменту, когда я делал бота, Open AI только выпустила доступ к API.

С какими сложностями столкнулся, как решил и что получилось в итоге описал в этой статье.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 12

Создание сервера для онлайн ММО игр на PHP ч. 10 — Открытый бесшовный мир в 2D игре и причем тут беспилотники

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 3.4K
PHP *Разработка игр *Алгоритмы *Unity *
Роадмэп

В этот раз я расскажу как удалось реализовать открытый бесшовный мир в горизонтально масштабируемой 2D онлайн игре, а так же поделюсь идеей управления разведывательными беспилотными летательными аппаратами на огромных территориях.

Читать далее
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 13

Делюсь опытом участия в хакатоне от Совкомбанка

Время на прочтение 12 мин
Количество просмотров 2.9K
Разработка веб-сайтов *PHP *Программирование *Symfony *VueJS *
Обзор

Сегодня, я хочу поделиться опытом и рассказать про участие в хакатоне от совкомбанка. Подробнее про хакатон можно почитать тут. Для лл я вкратце опишу задачу — командой до 5 человек сделать внутренний сервис для подбора персонала и ведения HR деятельности.

Читать далее
Всего голосов 20: ↑15 и ↓5 +10
Комментарии 9

Создание сервера для онлайн ММО игр на PHP ч. 9 — Игровые серверные механики

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 3.9K
PHP *.NET *Разработка игр *Lua *Unity *
Роадмэп

После успешной оптимизации клиентской части и серверной архитектуры пришла пора писать механики самой игры для взаимодействия по API — я называю их событиями (они вешаются на какой либо игровой объект на сервере, помещаются в очередь и срабатывают когда придет их время).

Суть работы взаимодействия сервера и клиентской части следующая:

Читать далее
Всего голосов 10: ↑7 и ↓3 +4
Комментарии 31

Кто до сих пор использует PHP?

Уровень сложности Простой
Время на прочтение 11 мин
Количество просмотров 14K
Блог компании RUVDS.com Разработка веб-сайтов *PHP *JavaScript *Программирование *
Мнение
Перевод

Свой путь в сфере разработки я начала с языка PHP, но позднее в индустрии программирования акцент сместился в сторону JavaScript. Отчасти причина в том, что фронтенд-составляющая веб-среды так или иначе работает именно на JS. В этой сфере я провела последние десять лет.

Недавно мне подвернулась кое-какая работа, связанная с PHP. Поначалу я была удивлена, ведь за этим языком закрепилась дурная слава – преимущественно из-за его ассоциирования с устаревшими проектами WordPress (и всеми вытекающими из этого уязвимостями). Но WordPress – это всё же не PHP.

В общем мне стало любопытно. Кто они – те люди, которые до сих пор используют PHP? Почему они это делают? И как этот опыт можно сравнить с моим скромным миром серверных проектов на JS?
Читать дальше →
Всего голосов 111: ↑61 и ↓50 +11
Комментарии 73

Создание сервера для онлайн ММО игр на PHP ч. 8 — Клиентская часть на Unity

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 1.8K
PHP *JavaScript *Lua *Unity *Игры и игровые консоли
Роадмэп

Разобравшись в архитектуре сервера, реализовав механизм простого расширения его функционала путем добавления пользовательского кода через WEB админ панель и игровых локаций захотелось наконец посмотреть как бы это все работало и выглядело в игре.

Т. к. сервер для игры является авторитарным, то клиентская часть должна была содержать.

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 0

Создание сервера для онлайн ММО игр на PHP ч. 7 — Игровые локации (тайловые карты)

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 2K
PHP *Разработка игр *Unity *Игры и игровые консоли
Роадмэп

Продолжая рассказывать о своем пути создания ПО для догружаемого контента в играх в этой статье хотел бы остановится на игровых картах (локациях).

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 2

Хождение по граблям PDO: что скрывают за собой современные PHP ORM

Уровень сложности Простой
Время на прочтение 21 мин
Количество просмотров 5.9K
Блог компании Конференции Олега Бунина (Онтико) Open source *PHP *Yii *

Привет, Хабр! В статье расскажу о том, с какими трудностями можно столкнуться при разработке ORM на PHP и поделюсь опытом по их преодолению.

Рассказывать буду только о том, о чём знаю сам. У вас может быть абсолютно другое мнение. Поэтому если вы нашли ошибку или хотите обсудить — свяжитесь со мной.

Читать далее
Всего голосов 41: ↑41 и ↓0 +41
Комментарии 24

Новости Yii 2023, выпуск 2

Время на прочтение 4 мин
Количество просмотров 4.2K
PHP *Yii *

Всем привет! Это Александр Макаров и второй выпуск Yii новостей в этом году.

С момента последнего выпуска в феврале прошло 3 месяца. Мы стремились ускорить разработку Yii3, но также продолжали поддерживать Yii1 и Yii2. Несмотря на ограниченные средства для разработки, за последние несколько месяцев удалось достичь определённого прогресса. Давайте разберём более детально, что было сделано.

Читать далее
Всего голосов 29: ↑28 и ↓1 +27
Комментарии 7

Попрощайтесь с проверками на null и исключениями: использование монады Maybe в Symfony

Время на прочтение 3 мин
Количество просмотров 6.4K
Блог компании OTUS PHP *Symfony *
Перевод

Функциональное программирование появилось не вчера. Но оно так и не приобрело какой-либо дикой популярности, и, вероятно, не просто так. Иногда оно может быть довольно сложным с точки зрения понимания и использования. Но у него есть много преимуществ. Одним из них является возможность избежать проверок на null и исключений.

В этой статье мы рассмотрим монаду Maybe и то, как ее можно использовать в Symfony.

Читать далее
Всего голосов 13: ↑9 и ↓4 +5
Комментарии 19

Анализ и приоритизация задач в тикетной системе: реализуем красиво на PHP

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 2.2K
Блог компании Конференции Олега Бунина (Онтико) Блог компании Skyeng PHP *
Кейс

Привет! Меня зовут Олег Мифле. Одной из команд, где удалось поработать за 7 лет с PHP, стала Customer Support. Мы автоматизировали анализ тысяч задач в день и оператору больше не нужно думать и включать голову для того, чтобы понять, какая задача прямо сейчас важна. О том, как работает приоритизация и что такое дерево игры, расскажу в статье.

На старте погружу в предметную область. Она непростая, но постараюсь быстро. Эта статья по моему докладу с PHP Russia 2022. Вот запись.

Читать далее
Всего голосов 20: ↑20 и ↓0 +20
Комментарии 0

Создание плагинов с учётом новой структуры Joomla 4

Уровень сложности Средний
Время на прочтение 15 мин
Количество просмотров 946
CMS *Разработка веб-сайтов *Open source *PHP *Joomla *
Туториал

С момента выхода Joomla 4 прошло уже почти 2 года, поэтому слово "новой" будем понимать в контексте сравнения с Joomla 3. В Joomla 4 "под капотом" произошло немало изменений. Кодовая база движка постепенно отбрасывает legacy (старый код), встретившись с которым мы могли бы как на машине времени вернуться в середину 2000-х или начало 2010-х 😀

В данной статье собран необходимый минимум для того, чтобы обновить старый плагин до структуры Joomla 4. Ну, или написать с нуля новый.

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 10

Вклад авторов

Работа

PHP программист
175 вакансий