PHP-BE1
311 subscribers
338 photos
11 videos
19 files
620 links
Канал по PHP, полезный и интересный контент для всех уровней.
По вопросам сотрудничества @cyberJohnny
Download Telegram
#library #middle

Ocramius не только талантливый разработчик (автор Doctrine и ProxyManager), но и веселый парень, он вместе с roave, где сейчас работает, сделали пакет Dont: это простая библиотека с набором трейтов, которая запрещает использовать магические методы. Пожалуй, это лучшее применение трейтов из всех, что можно найти.

https://github.com/Roave/Dont
#advanced #hollywar


В Symfony есть замечательный компонент Request, который предоставляет правильный доступ к данным запроса. В Laravel же тоже есть такой компонент, который расширяет компонент Symfony, добавляя пару удачных методов и ворох ненужных возможностей (например, макросы). Наиболее полный обзор компонента можно увидеть в статье:

https://laravel-news.com/the-mighty-illuminate-request
#laravel

Продвинутые возможности роутинга в Laravel.

https://quickadminpanel.com/blog/laravel-routing-8-advanced-tips-languages-apis-groups-validation/
#beginner

Сборник алгоритмов, написанных на PHP. Хоть пхпшнику очень редко приходится иметь дело с алгоритмами и сложными вычислениями, знать и уметь работать с алгоритмами важно для развития и поддержания кругозора, а ещё потому, что это основы CS.

https://github.com/doganoo/PHPAlgorithms
Philosophy of Software Design.epub
703.9 KB
#advanced #book

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

Роадмап для начинающих Laravel разработчиков от 2020-го года, но актуален также и для нынешнего.

https://raw.githubusercontent.com/Hasnayeen/laravel-developer-roadmap/master/images/roadmap.png
#advanced #composer

Надоело ждать PR в ваш любимый фреймворк или библиотеку? Особенно, если это PR в Laravel? Используйте плагин cweagans/composer-patches, который позволяет скачать патч из PR и начать его использовать как часть кода. Статья в поддержку идеи:

https://www.rias.be/blog/using-composer-patches
#advanced

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

https://github.com/sensiolabs-de/deptrac
#advanced #rfc

Черновик от Никиты Попова по добавлению аксессоров к свойствам объектов. Например, так может быть реализован доступ для получения свойства, но нельзя будет установить значение вне класса:

User {
public string $name { get; private set; }

public function __construct(string $name) {
$this->name = $name;
}
}

Больше примеров в rfc:

https://wiki.php.net/rfc/property_accessors
#advanced #library

Если вы переживаете за типы и следите за их соответствие ожидаемым, можете воспользоваться библиотекой php-matcher. PhpMatcher позволяет вам описать, какие типы вы ожидаете, описать объединенные типы и проверить различные паттерны.

https://github.com/coduo/php-matcher
#library

Если у вас легаси и вам очень хочется перейти на новую версию php, но нет времени, используйте Rector. Если разработчики из вашей команды не могут договориться об общем code-style, а тратить время на ревью не хочется, используйте Rector.

https://github.com/rectorphp/rector
#advanced

В последнее время тема статического анализа очень популярна среди php разработчиков. Есть популярные инструменты вроде psalm, phpstan, phan и другие, которые помогают следить за выводом типов, за наличием безопасных проверок и многим другим. Но зачем это нужно разработчикам на языке с динамической типизацией? Об этом и многом другом вы узнаете из доклада.

https://www.youtube.com/watch?v=sf39f2q15cU