Библиотека PHP программиста 👨🏼‍💻👩‍💻
2.18K subscribers
326 photos
169 videos
7 files
335 links
Полезные материалы по PHP, Laravel, Symfony, CodeIgniter, CakePHP, Phalcon

По всем вопросам @evgenycarter
Download Telegram
Демо Symfony конвертер валют

Недавно довелось делать тестовое задание на Symfony - конвертер валют с прямой и кросс-конвертацией. Получилось весьма неплохо, поэтому хочу поделиться с сообществом примером простого консольного приложения по всем канонам Symfony: DI, autowiring, тегирование сервисов, гибкая конфигурация, вот это вот всё. Надеюсь, это будет полезно начинающим "симфонистам".

Код приложения https://github.com/vladimirmartsul/symfony-exchange-demo

Описание https://habr.com/ru/post/671956/

👉 @php_lib
👍4
Руководство по OpenAI для PHP & Laravel: добавьте искусственный интеллект в свой проект

https://benjamincrozat.com/php-ai#d2420f214e97b9dd7b20a03d57849051

👉 @php_lib
Eloquent-eager-limit

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

Это расширение Laravel Eloquent позволяет ограничить количество результатов при жадной загрузке для каждого пользователя

https://github.com/staudenmeir/eloquent-eager-limit

👉 @php_lib
👍2
Использование Hashid в Laravel (вместо UUID)

Недавно я увидел в Twitter дискуссию о том, какой первичный ключ должен использоваться в ваших таблицах. В ходе дискуссии, как правило, обсуждались автоинкрементные целочисленные идентификаторы по умолчанию и UUID. Я всегда склонялся к инкрементным целочисленным идентификаторам, потому что считаю их очень простыми.

https://julienbourdeau.com/laravel-hashid

👉 @php_lib
👍2
Laravel Pint - это система исправления стиля PHP-кода для минималистов.

Laravel Pint - это исправление стиля PHP-кода для минималистов. Pint построен на базе PHP-CS-Fixer и позволяет легко убедиться, что стиль вашего кода остается чистым и последовательным.

https://github.com/laravel/pint

👉 @php_lib
👍1
Media is too big
VIEW IN TELEGRAM
PHP Enums с практическими примерами

00:00 - Intro
00:26 - Constant approach & the problem with constants
04:57 - Enums approach & the solution
09:36 - Pure & backed enums
12:48 - Get enum object from the raw value
15:04 - Methods in enums
19:28 - Static methods in enums
20:24 - Refactoring hardcoded values with enums in attributes
23:33 - Interfaces & traits in enums
24:57 - Enum rules
25:51 - Access list of all cases
26:59 - New function & reflection classes

👉 @php_lib
👍2
Если у вас есть коллекция Eloquent и вам нужно обновить каждую запись, то вы можете воспользоваться методом toQuery() и выполнить обновление всей коллекции одним запросом, вместо того, чтобы перебирать каждую запись в цикле. Это позволит уменьшить количество запросов к базе данных и сделать код более эффективным.

👉 @php_lib
👍8👎1
Асинхронность, конкурентность, параллельность, многопоточность — разбираемся «по понятиям»

Эта статья представляет собой краткий (шутка!) конспект одноименного (почти) вебинара, недавно проведенного автором.

Цель и вебинара и статьи - дать начинающим представление о тех понятиях, которые вынесены в заголовок, чтобы помочь избежать повсеместной путаницы, сопровождающей эти темы.

Ну и немного раскрыть глаза на то, что, оказывается в PHP есть и асинхронность, и многопоточность, и в общем-то не нужно ждать мифической версии PHP 10, чтобы начать их использовать уже прямо сейчас!

https://habr.com/ru/post/667590/

👉 @php_lib
👍4
KPHP спустя 2 года

Сегодня рассказываю, куда мы продвинулись за эти два года: про язык, рантайм, использование KPHP вне ВКонтакте, другие open-source проекты и февраль 2022-го.

https://habr.com/ru/company/vk/blog/698294/

👉 @php_lib
👏1
Laravel Octane для ускорения работы приложения // Сергей Сахаров

В этом видео Сергей расскажет о плюсах и минусах пакета Laravel Octane, особенностях работы, нюансах, которые стоит учитывать при переводе существующего приложения на Laravel Octane с примерами из практики

https://youtu.be/RRj6C8Y61AA

👉 @php_lib
👍2
История разработки фасетного поиска средствами PHP

Как экспериментальный Pet Project дошел до production и на что способны современные версии языка PHP. Немного о проблематике фасетного поиска в части построения агрегатов.

Если ваша первая реакция: «Почему не на Sphinx/ElasticSearch/etc?», не торопитесь с выводами. Воспринимайте изложенное как интересный исследовательский опыт в области возможностей языка и его оптимизаций.

Спойлер: пришлось даже написать порт на GoLang, чтобы лучше понять пути оптимизации кода.

https://habr.com/ru/post/595765/

👉 @php_lib
👍2
От 204 запросов в секунду до 480 с помощью одного изменения конфигурации

В настоящее время я разрабатываю бесплатный SaaS-чат без cookieless - Blether.chat, и в процессе разработки я решил провести стресс-тестирование приложения и посмотреть, как предварительная загрузка PHP OP Cache влияет на количество запросов в секунду в реальном приложении. Это привело меня по пути, в результате которого я внес изменения в конфигурацию, не связанные с OP Cache, что привело к почти 100% увеличению пропускной способности и добавило 200+ запросов в секунду к возможностям моего сервера.

https://getparthenon.com/blog/php-performance-tunning-from-204-to-480-with-a-single-config-change/

👉 @php_lib
👍3
Настройка PHP-FPM: Использование 'pm static' для максимальной производительности

Давайте вкратце рассмотрим, как лучше настроить PHP-FPM для высокой пропускной способности, низкой задержки и более стабильного использования процессора и памяти. По умолчанию в большинстве настроек PM (менеджер процессов) PHP-FPM установлена на dynamic, также есть распространенный совет использовать ondemand, если вы страдаете от проблем с доступной памятью.

https://haydenjames.io/php-fpm-tuning-using-pm-static-max-performance/

👉 @php_lib
🔥4👍2
Вы знали, что метод latest() может быть применен для упорядочивания результатов? По умолчанию, этот метод сортирует данные по полю created_at, но возможно указать другое поле для сортировки, например, по идентификатору: latest('id').

👉 @php_lib
👍1