#advanced
В статье автор рассказывает про один из самых часто используемых им паттернов проектирования — декоратор.
https://backendtea.com/post/every-day-design-pattern-decorator/
В статье автор рассказывает про один из самых часто используемых им паттернов проектирования — декоратор.
https://backendtea.com/post/every-day-design-pattern-decorator/
BackEndTea
Every day design pattern: Decorator | BackEndTea
This is the first post in a series of design patterns i use (almost) daily. You will find the other posts at the bottom of this article.
The Decorator pattern On wikipedia, the decorator pattern is described like so:
In object-oriented programming, the decorator…
The Decorator pattern On wikipedia, the decorator pattern is described like so:
In object-oriented programming, the decorator…
#library #middle
Ocramius не только талантливый разработчик (автор Doctrine и ProxyManager), но и веселый парень, он вместе с roave, где сейчас работает, сделали пакет Dont: это простая библиотека с набором трейтов, которая запрещает использовать магические методы. Пожалуй, это лучшее применение трейтов из всех, что можно найти.
https://github.com/Roave/Dont
Ocramius не только талантливый разработчик (автор Doctrine и ProxyManager), но и веселый парень, он вместе с roave, где сейчас работает, сделали пакет Dont: это простая библиотека с набором трейтов, которая запрещает использовать магические методы. Пожалуй, это лучшее применение трейтов из всех, что можно найти.
https://github.com/Roave/Dont
GitHub
GitHub - Roave/Dont: :no_entry_sign: Small set of defensive programming utilities/traits for PHP
:no_entry_sign: Small set of defensive programming utilities/traits for PHP - GitHub - Roave/Dont: :no_entry_sign: Small set of defensive programming utilities/traits for PHP
#advanced #hollywar
В Symfony есть замечательный компонент Request, который предоставляет правильный доступ к данным запроса. В Laravel же тоже есть такой компонент, который расширяет компонент Symfony, добавляя пару удачных методов и ворох ненужных возможностей (например, макросы). Наиболее полный обзор компонента можно увидеть в статье:
https://laravel-news.com/the-mighty-illuminate-request
В Symfony есть замечательный компонент Request, который предоставляет правильный доступ к данным запроса. В Laravel же тоже есть такой компонент, который расширяет компонент Symfony, добавляя пару удачных методов и ворох ненужных возможностей (например, макросы). Наиболее полный обзор компонента можно увидеть в статье:
https://laravel-news.com/the-mighty-illuminate-request
Laravel News
The Mighty Illuminate Request Object
Explore some of the sugar and useful methods that Laravel provides via the Illuminate Request object.
#video
PHPp дайджест в формате видео. Примечателен он тем, что в нем Антон Титов, автор Road Runner, рассказывает про temporal.io, сервис для написания сложных воркфлоу, и их php sdk.
https://youtu.be/3xhOWG8RzEY
PHPp дайджест в формате видео. Примечателен он тем, что в нем Антон Титов, автор Road Runner, рассказывает про temporal.io, сервис для написания сложных воркфлоу, и их php sdk.
https://youtu.be/3xhOWG8RzEY
YouTube
PHP Digest Live #197. Обзор новостей PHP 8.1, Антон Титов про temporal.io — инструмент Uber в PHP
Обзор последних новостей и инструментов из мира PHP. В гостях Антон Титов с рассказом про temporal.io, инструмент, на котором построена архитектура Uber. А также результаты розыгрыша и новый конкурс со слониками.
PHP Дайджест № 197 https://habr.com/ru/post/539034/…
PHP Дайджест № 197 https://habr.com/ru/post/539034/…
#laravel
Продвинутые возможности роутинга в Laravel.
https://quickadminpanel.com/blog/laravel-routing-8-advanced-tips-languages-apis-groups-validation/
Продвинутые возможности роутинга в Laravel.
https://quickadminpanel.com/blog/laravel-routing-8-advanced-tips-languages-apis-groups-validation/
#beginner
Сборник алгоритмов, написанных на PHP. Хоть пхпшнику очень редко приходится иметь дело с алгоритмами и сложными вычислениями, знать и уметь работать с алгоритмами важно для развития и поддержания кругозора, а ещё потому, что это основы CS.
https://github.com/doganoo/PHPAlgorithms
Сборник алгоритмов, написанных на PHP. Хоть пхпшнику очень редко приходится иметь дело с алгоритмами и сложными вычислениями, знать и уметь работать с алгоритмами важно для развития и поддержания кругозора, а ещё потому, что это основы CS.
https://github.com/doganoo/PHPAlgorithms
GitHub
GitHub - doganoo/PHPAlgorithms: A collection of common algorithms implemented in PHP. The collection is based on "Cracking the…
A collection of common algorithms implemented in PHP. The collection is based on "Cracking the Coding Interview" by Gayle Laakmann McDowell - doganoo/PHPAlgorithms
#advanced #laravel
Настраиваем CI процесс для Laravel приложений с помощью GitHub Actions.
https://dudi.dev/laravel-continuous-integration-github-actions/
Настраиваем CI процесс для Laravel приложений с помощью GitHub Actions.
https://dudi.dev/laravel-continuous-integration-github-actions/
dudi.dev
Continuous integration(CI) for laravel using github actions | dudi.dev
Learn how to create continuous integration(CI) build pipeline for your laravel applications using github actions.
#advanced #laravel
Обзор компонента FormRequest от Laravel. Плюсы, минусы, минусы, минусы, ой, и устройство компонента изнутри.
https://proglib.io/w/bf832d65
Обзор компонента FormRequest от Laravel. Плюсы, минусы, минусы, минусы, ой, и устройство компонента изнутри.
https://proglib.io/w/bf832d65
php.zone
Laravel: FormRequest
В этом обзоре мы рассмотрим один из самых, на мой взгляд, ужасно реализованных и в то же время один из самых, по мнению разработчиков на Laravel, полезных компонентов фреймворка — FormRequest.
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
Роадмап для начинающих Laravel разработчиков от 2020-го года, но актуален также и для нынешнего.
https://raw.githubusercontent.com/Hasnayeen/laravel-developer-roadmap/master/images/roadmap.png
#advanced #laravel
Советы по оптимизации запросов к бд, если вы используете Laravel.
https://dudi.dev/optimize-laravel-database-queries/
Советы по оптимизации запросов к бд, если вы используете Laravel.
https://dudi.dev/optimize-laravel-database-queries/
dudi.dev
18 Tips to optimize laravel database queries | dudi.dev
These 18 laravel performance optimization tips for optimizing database queries will help you sky rocket your laravel application performance.
#advanced #composer
Надоело ждать PR в ваш любимый фреймворк или библиотеку? Особенно, если это PR в Laravel? Используйте плагин cweagans/composer-patches, который позволяет скачать патч из PR и начать его использовать как часть кода. Статья в поддержку идеи:
https://www.rias.be/blog/using-composer-patches
Надоело ждать PR в ваш любимый фреймворк или библиотеку? Особенно, если это PR в Laravel? Используйте плагин cweagans/composer-patches, который позволяет скачать патч из PR и начать его использовать как часть кода. Статья в поддержку идеи:
https://www.rias.be/blog/using-composer-patches
rias.be
Using composer patches | Rias.be
When you use software that is open source, you'll sometimes run into issues or small bugs that have already been fixed by the community in a PR or an issue, but have yet to be merged and/or released. If you're impatient and need that fix now, composer patches…
#laravel #middle
Интеграция MeiliSearch с Laravel Scout для реализации полнотекстового поиска.
https://tighten.co/blog/full-text-search-with-meilisearch-and-scout/
Интеграция MeiliSearch с Laravel Scout для реализации полнотекстового поиска.
https://tighten.co/blog/full-text-search-with-meilisearch-and-scout/
Tighten
Full-Text Search with MeiliSearch and Laravel Scout
Learn how to add full-text search to your Eloquent models using the free, self-hosted search engine MeiliSearch and Laravel Scout.
#advanced
Если ваш проект чуть больше, чем простой круд, то вы могли задуматься о правильном разделении зависимостей. Deptrac может помочь вам следить за тем, чтобы вы и разработчики из вашей команды не нарушали границ модулей вашего приложения.
https://github.com/sensiolabs-de/deptrac
Если ваш проект чуть больше, чем простой круд, то вы могли задуматься о правильном разделении зависимостей. Deptrac может помочь вам следить за тем, чтобы вы и разработчики из вашей команды не нарушали границ модулей вашего приложения.
https://github.com/sensiolabs-de/deptrac
GitHub
GitHub - deptrac/deptrac: Keep your architecture clean.
Keep your architecture clean. Contribute to deptrac/deptrac development by creating an account on GitHub.
#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
Черновик от Никиты Попова по добавлению аксессоров к свойствам объектов. Например, так может быть реализован доступ для получения свойства, но нельзя будет установить значение вне класса:
User {
public string $name { get; private set; }
public function __construct(string $name) {
$this->name = $name;
}
}
Больше примеров в rfc:
https://wiki.php.net/rfc/property_accessors
#advanced #video
Интересный доклад про будущее сетевого стека.
https://www.youtube.com/watch?v=aXYJlizk3CQ
Интересный доклад про будущее сетевого стека.
https://www.youtube.com/watch?v=aXYJlizk3CQ
YouTube
UDP против TCP, или Будущее сетевого стека / Александр Тоболь (Одноклассники)
Приглашаем на конференцию Saint HighLoad++ 2025, которая пройдет 23 и 24 июня в Санкт-Петербурге!
Программа, подробности и билеты по ссылке: https://highload.ru/spb/2025
________
Saint HighLoad++ 2019
Тезисы и презентация:
https://www.highload.ru/spb…
Программа, подробности и билеты по ссылке: https://highload.ru/spb/2025
________
Saint HighLoad++ 2019
Тезисы и презентация:
https://www.highload.ru/spb…
#advanced #library
Если вы переживаете за типы и следите за их соответствие ожидаемым, можете воспользоваться библиотекой php-matcher. PhpMatcher позволяет вам описать, какие типы вы ожидаете, описать объединенные типы и проверить различные паттерны.
https://github.com/coduo/php-matcher
Если вы переживаете за типы и следите за их соответствие ожидаемым, можете воспользоваться библиотекой php-matcher. PhpMatcher позволяет вам описать, какие типы вы ожидаете, описать объединенные типы и проверить различные паттерны.
https://github.com/coduo/php-matcher
GitHub
GitHub - coduo/php-matcher: The easiest way to match data structures like JSON/PlainText/XML against readable patterns. Sandbox:
The easiest way to match data structures like JSON/PlainText/XML against readable patterns. Sandbox: - coduo/php-matcher
#advanced #security
Как Psalm помогает находить ошибки безопасности в коде.
https://psalm.dev/articles/detect-security-vulnerabilities-with-psalm
Как Psalm помогает находить ошибки безопасности в коде.
https://psalm.dev/articles/detect-security-vulnerabilities-with-psalm
psalm.dev
Detect PHP security vulnerabilities with Psalm
Security vulnerabilities are often pretty hard to spot manually. While a null-pointer error can make itself known very quickly, you can execute code…
#library
Если у вас легаси и вам очень хочется перейти на новую версию php, но нет времени, используйте Rector. Если разработчики из вашей команды не могут договориться об общем code-style, а тратить время на ревью не хочется, используйте Rector.
https://github.com/rectorphp/rector
Если у вас легаси и вам очень хочется перейти на новую версию php, но нет времени, используйте Rector. Если разработчики из вашей команды не могут договориться об общем code-style, а тратить время на ревью не хочется, используйте Rector.
https://github.com/rectorphp/rector
GitHub
GitHub - rectorphp/rector: Instant Upgrades and Automated Refactoring of any PHP 5.3+ code
Instant Upgrades and Automated Refactoring of any PHP 5.3+ code - rectorphp/rector