Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
11K subscribers
1.57K photos
26 videos
26 files
4.31K links
Все самое полезное для пхпшника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/bca892d6

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
Небольшой совет по PHP, который сэкономит время (и строки кода)

Недавно при ревью PHP-проекта всё работало идеально: тесты зелёные, багов нет.
Но в глаза бросилось другое — один и тот же шаблон в каждом конструкторе(фото 1)

Технически всё корректно.
Практически — это рутина.

Когда в проекте:
— десятки классов
— по 5–10 свойств в каждом
вы постоянно пишете один и тот же бойлерплейт. Это шум, а не логика.

Что изменилось с PHP 8.0

В PHP 8.0 появился Constructor Property Promotion.
Он позволяет объявлять и инициализировать свойства прямо в конструкторе(фото 2)

Результат:
— нет отдельных свойств
— нет $this->name = $name
— поведение то же
— кода меньше
— читать быстрее

Мозг фокусируется на зависимостях класса, а не на механике.
Видимость — любая
class Post
{
public function __construct(
public string $title,
public string $content,
private int $authorId
) {}
}


Работает ровно так, как ожидается.

Реальный эффект на проекте

В одном Laravel-сервисе было 12 свойств.
Конструктор — ~30 строк.
После рефакторинга:
— 6 строк
— логика не изменилась
— код стало проще ревьюить

Времени: ~2 минуты (multi-cursor в VS Code).

Когда стоит использовать
Используйте promotion, если:
— свойства задаются только в конструкторе
— нет дополнительной логики при присваивании
— хотите чистый, современный PHP

Когда не стоит
Не используйте, если:
— нужна валидация
— вы трансформируете значение
— важно явно показать логику инициализации

Здесь старый способ — осознанно лучше.

🔗Ссылка на статью

Библиотека пхпшника
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
6🥱4
This media is not supported in your browser
VIEW IN TELEGRAM
🧑‍💻 Пишете на PHP, но всё чаще появляются задачи, где стандартного стека не хватает? Интенсивные вычисления, интеграции с нативным кодом, необходимость выжать максимум из железа — здесь в игру входят FFI и WASM.

📖 На открытом уроке поговорим о сценариях применения, типичных задачах, для которых подключают FFI или WebAssembly, и разберём реальные примеры.

❗️ Вы увидите, какие преимущества дают FFI и WASM с точки зрения производительности и гибкости и архитектуры, а также с какими рисками и ограничениями придётся считаться. Это полезно тем, кто хочет выходить за рамки классического PHP и понимать, какие инструменты есть над фреймворками.

▶️ Встречаемся 26 января в 20:00 МСК в преддверие старта курса «PHP Developer. Professional». Регистрация открыта: https://clc.to/u0ASNg

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM