Generics via Attributes in PHP — Can We Have Them?
https://pronskiy.com/blog/generics-via-attributes-in-php/
👉 @php_lib
https://pronskiy.com/blog/generics-via-attributes-in-php/
👉 @php_lib
👍3
Демо Symfony конвертер валют
Недавно довелось делать тестовое задание на Symfony - конвертер валют с прямой и кросс-конвертацией. Получилось весьма неплохо, поэтому хочу поделиться с сообществом примером простого консольного приложения по всем канонам Symfony: DI, autowiring, тегирование сервисов, гибкая конфигурация, вот это вот всё. Надеюсь, это будет полезно начинающим "симфонистам".
Код приложения https://github.com/vladimirmartsul/symfony-exchange-demo
Описание https://habr.com/ru/post/671956/
👉 @php_lib
Недавно довелось делать тестовое задание на Symfony - конвертер валют с прямой и кросс-конвертацией. Получилось весьма неплохо, поэтому хочу поделиться с сообществом примером простого консольного приложения по всем канонам Symfony: DI, autowiring, тегирование сервисов, гибкая конфигурация, вот это вот всё. Надеюсь, это будет полезно начинающим "симфонистам".
Код приложения https://github.com/vladimirmartsul/symfony-exchange-demo
Описание https://habr.com/ru/post/671956/
👉 @php_lib
GitHub
GitHub - vladimirmartsul/symfony-exchange-demo: Simple Symfony currency exchange demo application (CLI)
Simple Symfony currency exchange demo application (CLI) - vladimirmartsul/symfony-exchange-demo
👍4
Руководство по OpenAI для PHP & Laravel: добавьте искусственный интеллект в свой проект
https://benjamincrozat.com/php-ai#d2420f214e97b9dd7b20a03d57849051
👉 @php_lib
https://benjamincrozat.com/php-ai#d2420f214e97b9dd7b20a03d57849051
👉 @php_lib
Eloquent-eager-limit
Например, если вам нужно получить только по десять последних сообщений для каждого пользователя.
Это расширение Laravel Eloquent позволяет ограничить количество результатов при жадной загрузке для каждого пользователя
https://github.com/staudenmeir/eloquent-eager-limit
👉 @php_lib
Например, если вам нужно получить только по десять последних сообщений для каждого пользователя.
Это расширение Laravel Eloquent позволяет ограничить количество результатов при жадной загрузке для каждого пользователя
https://github.com/staudenmeir/eloquent-eager-limit
👉 @php_lib
GitHub
GitHub - staudenmeir/eloquent-eager-limit: Laravel Eloquent eager loading with limit
Laravel Eloquent eager loading with limit. Contribute to staudenmeir/eloquent-eager-limit development by creating an account on GitHub.
👍2
Использование Hashid в Laravel (вместо UUID)
Недавно я увидел в Twitter дискуссию о том, какой первичный ключ должен использоваться в ваших таблицах. В ходе дискуссии, как правило, обсуждались автоинкрементные целочисленные идентификаторы по умолчанию и UUID. Я всегда склонялся к инкрементным целочисленным идентификаторам, потому что считаю их очень простыми.
https://julienbourdeau.com/laravel-hashid
👉 @php_lib
Недавно я увидел в 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
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
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
Если у вас есть коллекция
👉 @php_lib
Eloquent
и вам нужно обновить каждую запись, то вы можете воспользоваться методом toQuery()
и выполнить обновление всей коллекции одним запросом, вместо того, чтобы перебирать каждую запись в цикле. Это позволит уменьшить количество запросов к базе данных и сделать код более эффективным.👉 @php_lib
👍8👎1
Асинхронность, конкурентность, параллельность, многопоточность — разбираемся «по понятиям»
Эта статья представляет собой краткий (шутка!) конспект одноименного (почти) вебинара, недавно проведенного автором.
Цель и вебинара и статьи - дать начинающим представление о тех понятиях, которые вынесены в заголовок, чтобы помочь избежать повсеместной путаницы, сопровождающей эти темы.
Ну и немного раскрыть глаза на то, что, оказывается в PHP есть и асинхронность, и многопоточность, и в общем-то не нужно ждать мифической версии PHP 10, чтобы начать их использовать уже прямо сейчас!
https://habr.com/ru/post/667590/
👉 @php_lib
Эта статья представляет собой краткий (шутка!) конспект одноименного (почти) вебинара, недавно проведенного автором.
Цель и вебинара и статьи - дать начинающим представление о тех понятиях, которые вынесены в заголовок, чтобы помочь избежать повсеместной путаницы, сопровождающей эти темы.
Ну и немного раскрыть глаза на то, что, оказывается в 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
Сегодня рассказываю, куда мы продвинулись за эти два года: про язык, рантайм, использование 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
В этом видео Сергей расскажет о плюсах и минусах пакета Laravel Octane, особенностях работы, нюансах, которые стоит учитывать при переводе существующего приложения на Laravel Octane с примерами из практики
https://youtu.be/RRj6C8Y61AA
👉 @php_lib
YouTube
Laravel Octane для ускорения работы приложения // Сергей Сахаров
В этом видео Сергей расскажет о плюсах и минусах пакета Laravel Octane, особенностях работы, нюансах, которые стоит учитывать при переводе существующего приложения на Laravel Octane с примерами из практики
Изучайте Git на практике: https://gogit.ru/
Подписывайтесь…
Изучайте Git на практике: https://gogit.ru/
Подписывайтесь…
👍2
История разработки фасетного поиска средствами PHP
Как экспериментальный Pet Project дошел до production и на что способны современные версии языка PHP. Немного о проблематике фасетного поиска в части построения агрегатов.
Если ваша первая реакция: «Почему не на Sphinx/ElasticSearch/etc?», не торопитесь с выводами. Воспринимайте изложенное как интересный исследовательский опыт в области возможностей языка и его оптимизаций.
Спойлер: пришлось даже написать порт на GoLang, чтобы лучше понять пути оптимизации кода.
https://habr.com/ru/post/595765/
👉 @php_lib
Как экспериментальный 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
В настоящее время я разрабатываю бесплатный 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
Standard API Responses With Laravel Responsables
https://wendelladriel.com/blog/standard-api-responses-with-laravel-responsables/
👉 @php_lib
https://wendelladriel.com/blog/standard-api-responses-with-laravel-responsables/
👉 @php_lib
👍1
Настройка PHP-FPM: Использование 'pm static' для максимальной производительности
Давайте вкратце рассмотрим, как лучше настроить PHP-FPM для высокой пропускной способности, низкой задержки и более стабильного использования процессора и памяти. По умолчанию в большинстве настроек PM (менеджер процессов) PHP-FPM установлена на dynamic, также есть распространенный совет использовать ondemand, если вы страдаете от проблем с доступной памятью.
https://haydenjames.io/php-fpm-tuning-using-pm-static-max-performance/
👉 @php_lib
Давайте вкратце рассмотрим, как лучше настроить PHP-FPM для высокой пропускной способности, низкой задержки и более стабильного использования процессора и памяти. По умолчанию в большинстве настроек PM (менеджер процессов) PHP-FPM установлена на dynamic, также есть распространенный совет использовать ondemand, если вы страдаете от проблем с доступной памятью.
https://haydenjames.io/php-fpm-tuning-using-pm-static-max-performance/
👉 @php_lib
🔥4👍2
Вы знали, что метод
👉 @php_lib
latest()
может быть применен для упорядочивания результатов? По умолчанию, этот метод сортирует данные по полю created_at
, но возможно указать другое поле для сортировки, например, по идентификатору: latest('id')
.👉 @php_lib
👍1
Media is too big
VIEW IN TELEGRAM
Развертывание PHP-приложения с помощью docker compose в продакшн
https://www.pascallandau.com/blog/deploy-docker-compose-php-gcp-poc/
👉 @php_lib
https://www.pascallandau.com/blog/deploy-docker-compose-php-gcp-poc/
👉 @php_lib
👍6