Демо 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
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Laravel 9 и Vue 3 SPA интернет магазин
0. Обзор html шаблона магазина и приоритеты задач
1. План действий для создания интернет магазина
2. Предварительная архитектура бд для интернет магазина
3. Разворачиваем проект интернет магазин в docker
4. Установка AdminLTE для laravel через composer и вручную
5. Оформляем adminlte, иконки. Создаем layout и имена
6. CRUD по категориям, тегам и цветам с интерфейсом
7. CRUD по пользователям
8. Миграция для продуктов и начальная форма для добавлнения
9. Доделываем добавление продуктов в админке
10. Создаем проект на vue3, клиентская часть интернет магазин
11. Переносим html шаблон магазина в App vue
12. Добавляем главную страницу во vue router
13. Прокидываем шаблон продуктов и получаем продукты с бекенд
14. Создаем Resource для продуктов и отображаем данные
15. Корректируем работу popup и добавляем вывод атрибутов
16. Выводим варианты цветов в быстром просмотре
17. Выбор продукта внутри попап, улучшаем отдачу продуктов
18. Галерея в быстром просмотре продукта
19. Фильтр продуктов, заготовка бека и фронт енда
20. Фильтрация продуктов фронт + бекенд.
21. Пагинация vue на странице с продуктами
22. Страница товара
23. Добавление товара в корзину с использованием vue
25. Объединяем фронт с беком для деплоя
26. Оформление заказа
Полный плейлист доступен на youtube
👉 @php_lib
0. Обзор html шаблона магазина и приоритеты задач
1. План действий для создания интернет магазина
2. Предварительная архитектура бд для интернет магазина
3. Разворачиваем проект интернет магазин в docker
4. Установка AdminLTE для laravel через composer и вручную
5. Оформляем adminlte, иконки. Создаем layout и имена
6. CRUD по категориям, тегам и цветам с интерфейсом
7. CRUD по пользователям
8. Миграция для продуктов и начальная форма для добавлнения
9. Доделываем добавление продуктов в админке
10. Создаем проект на vue3, клиентская часть интернет магазин
11. Переносим html шаблон магазина в App vue
12. Добавляем главную страницу во vue router
13. Прокидываем шаблон продуктов и получаем продукты с бекенд
14. Создаем Resource для продуктов и отображаем данные
15. Корректируем работу popup и добавляем вывод атрибутов
16. Выводим варианты цветов в быстром просмотре
17. Выбор продукта внутри попап, улучшаем отдачу продуктов
18. Галерея в быстром просмотре продукта
19. Фильтр продуктов, заготовка бека и фронт енда
20. Фильтрация продуктов фронт + бекенд.
21. Пагинация vue на странице с продуктами
22. Страница товара
23. Добавление товара в корзину с использованием vue
25. Объединяем фронт с беком для деплоя
26. Оформление заказа
Полный плейлист доступен на youtube
👉 @php_lib
👍6