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

По всем вопросам @evgenycarter
Download Telegram
Совет по Laravel 💡

Группировка контроллеров ресурсов с помощью метода "resources()" в Laravel - отличный способ сохранить ваши маршруты аккуратными и организованными, делая ваш код более чистым и поддерживаемым.

👉 @php_lib
👍4👎2
This media is not supported in your browser
VIEW IN TELEGRAM
Добавлены новые методы whereAny и whereAll в Laravel 10.47.

👉 @php_lib
👍62
Как реализовать простую очередь в Symfony

Symfony - это популярный PHP-фреймворк, который предоставляет множество функций и компонентов для создания веб-приложений. Одним из таких компонентов является компонент Messenger, который позволяет отправлять и получать сообщения между различными частями вашего приложения или между различными приложениями. В этой статье мы рассмотрим, как использовать компонент Messenger для реализации простой системы очередей, используя Redis в качестве транспортного уровня.

1️⃣Установка необходимых пакетов: Используйте Composer для установки компонента Symfony Messenger и адаптера Redis.

2️⃣Настройка транспорта: Настройте подключение к серверу Redis в файле .env, указав расположение сервера и желаемое имя очереди.

3️⃣Создание сообщения и обработчика: Используйте команды Symfony console для создания классов сообщения и соответствующего обработчика. Эти классы представляют данные для отправки и логику, которая будет выполнена при получении сообщения.

4️⃣Маршрутизация сообщения к транспорту: Настройте компонент Messenger для связывания класса сообщения с желаемым транспортом в файле messenger.yaml.

5️⃣Отправка сообщения: Используйте службу MessageBusInterface для отправки сообщений из различных частей приложения, таких как контроллеры или службы.

6️⃣Получение сообщения: Используйте команду messenger:consume, чтобы запустить рабочий процесс, прослушивающий указанный транспорт и выполняющий соответствующий обработчик. Можно запускать несколько рабочих процессов параллельно для увеличения пропускной способности.


https://dev.to/daniyaljavani/how-to-implement-a-simple-queue-in-symfony-530a

👉 @php_lib
👍3
JSON to PHP

Конвертируйте значения JSON в PHP-код.
Если вы предоставите объект или массив JSON, этот инструмент сгенерирует для вас эквивалентный PHP-код.

https://ryangjchandler.co.uk/tools/json-to-php

👉 @php_lib
👍5🤨3🙈2👎1
Media is too big
VIEW IN TELEGRAM
Middlewares безопасности в проектах на Laravel

Сегодня мы с Вами рассмотрим два пакета, улучшающих безопасность нашего приложения. Безопасность в приоритете поэтому и тему стоит поднимать почаще. В целом я вдохновился на этот ролик после статьи от Стива Кинга на Laravel News. Будем рассматривать Middlewars и заголовки ответов.

источник

👉 @php_lib
👍3
Совет по Laravel 💡

Данные загружаются быстрее, если целевое значение является целым числом.

Используйте 𝘄𝗵𝗲𝗿𝗲𝗜𝗻𝘁𝗲𝗴𝗲𝗿𝗜𝗻𝗥𝗮𝘄() вместо метода 𝘄𝗵𝗲𝗿𝗲𝗜𝗻(), чтобы быстрее загружать данные, когда целевое значение является целым числом.

👉 @php_lib
👍10
💡Знаете ли вы, что в PHP вы можете использовать логические операторы с реальными словами! Вместо того чтобы ломать голову над "&&" или "||", почему бы не использовать настоящие слова?

👉 @php_lib
🥱17💩12😁1
Перед вами — книга-метод, книга-наставник, способная перевернуть мышление и помочь выработать осознанный подход к работе и жизни в целом путём высокоуровневого планирования.

В своей второй книге IT-архитектор, методолог, педагог Александр Бындю раскрывает наиболее эффективный на сегодняшний день метод стратегического планирования, получивший название «Карта гипотез». Карта учит, как достигать намеченной цели через гипотезы, и служит навигатором на этом пути. В основу книги легли годы практики, и с уверенностью можно сказать, что Карта гипотез позволяет создать стратегию достижения для самых амбициозных целей.

У Карты гипотез нет ограничений по области применения или роли пользователя — она будет полезна в самых разных ситуациях, от личного планирования до планирования работы огромной компании. Автор надеется, что его метод, которому посвящена эта книга, послужит вашему благополучию во всех сферах жизни.

Ознакомиться с книгой
Media is too big
VIEW IN TELEGRAM
5 cоветов junior PHP Backend Developer

Специальность PHP-разработчика очень разноплановая. Но мы поможем разобраться что к чему!
Иван Орищенко, Backend Tech Lead Boosta, с шестилетним опытом в разработке, рассказал, что поможет junior специалисту сократить время на разработку, какие инструменты необходимо знать и как делать правильно и красиво.

PHP-разработка бросает тебе вызов - если ты готов принять его, удачи в изучении!

источник

👉 @php_lib
👍2
Предотвращение повторной отправки форм с помощью атомарной блокировки

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

https://daryllegion.com/preventing-duplicate-form-submissions-using-atomic-locks

👉 @php_lib
👍7👎1
Media is too big
VIEW IN TELEGRAM
Pest-плагин для стресс-тестирования

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

https://pestphp.com/docs/stress-testing

👉 @php_lib
👍3
Альтернатива Nova: почему решили перейти с самописного решения на Orchid

Привет. Меня зовут Артем, я backend-разработчик в Пиробайте. Когда я только пришел в компанию, то узнал, что команда разрабатывает административные панели на основе самописного решения, созданного внутри студии. Когда-то за основу был взят шаблон Inspinia, и для него написана переиспользуемая логика на PHP, чтобы оперативно решать задачи. На прошлом же месте я работал с Orchid, и, как мне кажется, он показывал себя с наилучшей стороны, а главное — был прост и удобен как при разработке, так и при масштабировании.

Поэтому я решил привнести немного комфорта и практичности, внедрив новую панель администратора в работу студии. Расскажу, почему Orchid — хорошая альтернатива двум другим решениям.

https://habr.com/ru/companies/pyrobyte/articles/774304/

👉 @php_lib
👍5
Совет по Laravel 💡

Знаете ли вы... Во время итерации в цикле foreach внутри цикла будет доступна переменная $loop. Эта переменная предоставляет доступ к некоторым полезным битам информации.

👉 @php_lib
👍5
Совет по Laravel💡

Если вы находитесь во вложенном цикле, вы можете получить доступ к переменной $loop родительского цикла через свойство parent:

👉 @php_lib
👍1
Совет по Laravel 💡

Переменная $loop также содержит множество других полезных свойств:

👉 @php_lib
👍4
Сниппет кода Laravel/MySQL

Запрос предстоящих дней рождения по датам рождения - более сложная задача, чем вы думаете.

Взгляните на этот пример из проекта с открытым исходным кодом Genealogy.

👉 @php_lib
👍5👎3
Лучшие практики использования перечислений в PHP

Хотя перечисления в PHP призваны обеспечить простое и элегантное решение для работы с предопределенным набором значений, эти классы часто используются неправильно, что приводит к отсутствию согласованности из-за внедрения всевозможных методов, которые увеличивают их сложность. В этой статье мы рассмотрим некоторые методы (как хорошие, так и плохие) с целью прояснить понимание этих типов объектов, чтобы помочь вам построить более устойчивую и последовательную кодовую базу.

https://jeffochoa.me/php-enums-best-practices

👉 @php_lib
👍4
Совет по Laravel 💡

Eloquent метод orderByRaw() позволяет нам просто передать необработанный запрос для упорядочивания результатов.
Например, сортировка по разнице между двумя столбцами.

👉 @php_lib
👍8😁2