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

Laravel Livewire — Камень, ножницы, бумага (часть 1)

Напишем игру «Камень, ножницы, бумага» с помощью Laravel Livewire.

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

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

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

Архитектура сложных веб-приложений. С примерами на Laravel

Недавно я прочитал книгу «Архитектура сложных веб-приложений. С примерами на Laravel», автор Adel Faizrakhmanov.

Эта книга не пособие. Много шаблонов описаны поверхностно, с целью просто познакомить читателя с ними. Более подробное описание можно найти по ссылкам в конце.

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

Читать далее Архитектура сложных веб-приложений. С примерами на Laravel