Clockwork — отладочная панель для PHP

Clockwork – это библиотека и расширение для браузера предоставляющие удобный интерфейс отладки производительности PHP кода.

Расскажу про свой опыт использования и сделаю небольшое сравнение с альтернативами.

Читать далее Clockwork — отладочная панель для PHP

Объекты передаются по ссылке или нет?

Часто можно услышать фразу, что в PHP «объекты всегда передаются по ссылке». На самом деле всё немного сложнее.

https://www.php.net/manual/ru/language.oop5.references.php

Читать далее Объекты передаются по ссылке или нет?

declare(strict_types=1)

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

Но на этом я не остановился. Следующий шаг – проставить declare(strict_types=1)! Весь новый код, который я пишу по умолчанию идёт с declare(strict_types=1) в начале файла, это легко настроить в шаблонах PhpStorm. Но так ли просто взять и обновить старые исходники?

Читать далее declare(strict_types=1)

PhpStorm на macOS Metal

Расскажу про тикет JBR-745 о поддержке Metal в JetBrains Runtime, он же проект Lanai или JEP-382. Станут ли IDE от JetBrains отрисовываться со скоростью 300К FPS?

Видео, как я запускаю PhpStorm на Metal: https://youtu.be/T0CShIFwyRw

Ссылки по теме:

Laravel Livewire — сетевая игра (часть 5)

В этом выпуске обдумаем стратегию аутентификации и поработаем над ссетевой игрой между двумя реальными игроками (раньше играть можно было только против компьютера), добавим режим наблюдателя, потренируемся в отладке с помощью Xdebug и используем функциональность lazy и poll в Livewire.

Исходный код проекта: https://github.com/pqr/laravel-livewire-rock-paper-scissors

Плейлист со всеми сериями: https://www.youtube.com/playlist?list=PLvP6XNj3GUhB4idkTp1KPBki3-070Ymcq

Laravel Livewire — SPA & Turbolinks (часть 4)

Продолжаем работу над игрой «Камень, ножницы, бумага».

В этом эпизоде добавим игровое лобби, таким образом приложение будет состоять из двух экранов: лобби и непосредсвенно игра. Обработку роутов приложения сделаем с помощью Livewire, такм образом переходы между экранами будут осуществляться в без перезагрузки страницы в стиле Signle Page Application.

Также научимся сохранять состояние игры в базу данных и загружать из базы при переходе на игру по прямой сслылке.

Исходный код проекта: https://github.com/pqr/laravel-livewire-rock-paper-scissors

Плейлист со всеми сериями: https://www.youtube.com/playlist?list=PLvP6XNj3GUhB4idkTp1KPBki3-070Ymcq

Laravel Schematics — проектируем базу данных (часть 3)

Продолжаем работу над игрой «Камень, ножницы, бумага».

В этом эпизоде займёмся проектированием структуры базы данных и мделаем это с помощью утилиты Laravel Schematics.

Исходный код проекта: https://github.com/pqr/laravel-livewire-rock-paper-scissors

Плейлист со всеми сериями: https://www.youtube.com/playlist?list=PLvP6XNj3GUhB4idkTp1KPBki3-070Ymcq

Laravel Livewire — Исправляем уязвимости (часть 2)

Продолжаем работу над игрой «Камень, ножницы, бумага» с использованием Laravel Livewire.

В этом эпизоде исправим дыру в безопасности и обсудим, на что стоит обращать внимание при работе с Livewire, чтобы не отдать лишние данные на клиент?

Исходный код проекта: https://github.com/pqr/laravel-livewire-rock-paper-scissors

Плейлист со всеми сериями: https://www.youtube.com/playlist?list=PLvP6XNj3GUhB4idkTp1KPBki3-070Ymcq