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

По всем вопросам @evgenycarter
Download Telegram
Как выполнять команды Laravel Artisan с помощью Endpoint API

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

Традиционный способ:

Откройте cPanel или любую другую панель управления, затем перейдите в терминал или зайдите в SSH напрямую, если у вас есть root-доступ,
Затем перейдите в папку с приложениями и запустите нужную команду.

Но эти шаги могут занять много времени.

https://dev.to/yasserelgammal/how-to-execute-laravel-artisan-commands-using-an-api-endpoint-3d49

👉 @php_lib
👍3
Механизмы безопасности в Laravel

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

Мы рассмотрим следующие механизмы безопасности:

Предотвращение N+1
Защита от частично гидрированных моделей
Опечатки атрибутов и переименованные столбцы
Защита от массового присвоения
Строгость модели
Принудительное выполнение полиморфного сопоставления
Мониторинг долгосрочных событий

https://habr.com/ru/articles/794348/

original https://planetscale.com/blog/laravels-safety-mechanisms

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

Знаете ли вы, что... вы можете временно отключить timestamps при сохранении модели?

👉 @php_lib
👍9
Практический пример декомпозиции монолитного PHP приложения

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

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

https://habr.com/ru/articles/796223/

👉 @php_lib
👍4
Ускорение сайта путём выявления проблемных участков кода: xDebug + phpStorm

Статья будет полезна джунам и миддлам кто разрабатывает сайты, кто занимается оптимизацией сайтов и кто хочет посмотреть на работу php кода "с высоты". Для себя из полезного можно узнать как связать вместе OpenServer, PhpStorm и xDebug. Один раз настраиваете и можно потом запросто делать отладку. И так, начнём.

https://habr.com/ru/articles/579434/

👉 @php_lib
👍6
Совет по 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