Библиотека PHP программиста 👨🏼💻👩💻
Open in Telegram
Полезные материалы по PHP, Laravel, Symfony, CodeIgniter, CakePHP, Phalcon По всем вопросам @evgenycarter
Show more2 040
Subscribers
+124 hours
-87 days
-1630 days
Posts Archive
💡Знаете ли вы, что в PHP вы можете использовать логические операторы с реальными словами! Вместо того чтобы ломать голову над "
&&" или "||", почему бы не использовать настоящие слова?
👉 @php_libСовет по Laravel 💡
Данные загружаются быстрее, если целевое значение является целым числом.
Используйте
𝘄𝗵𝗲𝗿𝗲𝗜𝗻𝘁𝗲𝗴𝗲𝗿𝗜𝗻𝗥𝗮𝘄() вместо метода 𝘄𝗵𝗲𝗿𝗲𝗜𝗻(), чтобы быстрее загружать данные, когда целевое значение является целым числом.
👉 @php_libMiddlewares безопасности в проектах на Laravel
Сегодня мы с Вами рассмотрим два пакета, улучшающих безопасность нашего приложения. Безопасность в приоритете поэтому и тему стоит поднимать почаще. В целом я вдохновился на этот ролик после статьи от Стива Кинга на Laravel News. Будем рассматривать Middlewars и заголовки ответов.
источник
👉 @php_lib
⚡PHP-разработчик? Изучи Битрикс24 и увеличь свою ценность в команде
Прокачай необходимые навыки всего за 5 месяцев на онлайн-курсе от OTUS.
Вы научитесь:
✅ устанавливать и настраивать виртуальную машину BitrixVM с последующей быстрой установкой системы Bitrix24;
✅ кастомизировать интерфейс, компоненты системы и модули;
✅ разрабатывать свои компоненты, обработчики событий, модели данных, агенты;
✅ работать с дизайнером бизнес-процессов и др.
Все это позволит претендовать на вакантные позиции в крупных российских компаниях.
Стартуем уже 27 марта!
➡ Не упускайте возможность расширить карьерные горизонты в IT, оставьте заявку прямо сейчас: Оставить заявку
💥Бонусом получишь:
- спец. цену на курс
- доступ к открытым урокам курса
JSON to PHP
Конвертируйте значения JSON в PHP-код.
Если вы предоставите объект или массив JSON, этот инструмент сгенерирует для вас эквивалентный PHP-код.
https://ryangjchandler.co.uk/tools/json-to-php
👉 @php_lib
Как реализовать простую очередь в 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
⛔До сих пор используешь модели и сущности в Битрикс24 неправильно?
Хватит работать на среднем уровне, прокачай квалификацию на бесплатном практическом уроке от OTUS, где ты научишься:
✔ создавать новую модель списка (информационного блока);
✔ добавлять новое поле в модель;
✔ выводить данные с использованием registerRuntimeField и ReferenceField.
⏰Встречаемся 25 марта в 17:00 мск в рамках курса «Разработчик Битрикс24». Доступна рассрочка на обучение!
👉Регистрируйся прямо сейчас, чтобы посетить бесплатный урок и получить запись.
Совет по Laravel 💡
Группировка контроллеров ресурсов с помощью метода "resources()" в Laravel - отличный способ сохранить ваши маршруты аккуратными и организованными, делая ваш код более чистым и поддерживаемым.
👉 @php_lib
Ускорение сайта путём выявления проблемных участков кода: xDebug + phpStorm
Статья будет полезна джунам и миддлам кто разрабатывает сайты, кто занимается оптимизацией сайтов и кто хочет посмотреть на работу php кода "с высоты". Для себя из полезного можно узнать как связать вместе OpenServer, PhpStorm и xDebug. Один раз настраиваете и можно потом запросто делать отладку. И так, начнём.
https://habr.com/ru/articles/579434/
👉 @php_lib
Практический пример декомпозиции монолитного PHP приложения
Стоит отметить, что сам по себе монолит не является антипаттерном и может отлично работать (и часто работает) при определенных условиях, обычно - когда он выбран осознанно. Но чаще всего монолитная архитектура в проекте не потому, что люди её выбрали, а потому что проект в неё естественно эволюционировал.
Прежде всего, давайте проясним, что мы имеем в виду под "декомпозицией монолита". Какая наша конечная цель? Какие могут быть бизнес-цели, побуждающие инженеров решать эту проблему?
https://habr.com/ru/articles/796223/
👉 @php_lib
Совет по Laravel 💡
Знаете ли вы, что... вы можете временно отключить
timestamps при сохранении модели?
👉 @php_libМой процесс написания пакетов для Laravel
https://dcblog.dev/my-process-for-writing-laravel-packages
👉 @php_lib
Механизмы безопасности в Laravel
Laravel - это веб-фреймворк на PHP с встроенной поддержкой практически всего, что нужно современным приложениям. Но мы не будем рассматривать все эти функции здесь. Вместо этого мы рассмотрим безопасные функции Laravel, которые могут помочь вам предотвратить болезненные ошибки.
Мы рассмотрим следующие механизмы безопасности:
Предотвращение N+1
Защита от частично гидрированных моделей
Опечатки атрибутов и переименованные столбцы
Защита от массового присвоения
Строгость модели
Принудительное выполнение полиморфного сопоставления
Мониторинг долгосрочных событий
https://habr.com/ru/articles/794348/
original https://planetscale.com/blog/laravels-safety-mechanisms
👉 @php_lib
Как выполнять команды 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
Автономный взлом веб-приложений PHP на уровне байткода
https://finixbit.github.io/posts/autonomous-Hacking-of-PHP-Web-Applications-at-the-Bytecode-Level/
👉 @php_lib
Serde
Это быстрая, гибкая, мощная и простая в использовании библиотека сериализации и десериализации для PHP, которая поддерживает ряд стандартных форматов. Она черпает вдохновение как в Rust's Serde crate, так и в Symfony Serializer, хотя напрямую не основана ни на одном из них.
На данный момент Serde поддерживает сериализацию PHP-объектов в массивы PHP, JSON, YAML и CSV-файлы и обратно. Он также поддерживает сериализацию в JSON или CSV через поток. Планируется дальнейшая поддержка, но по задумке она может быть расширена любым пользователем.
Установка
$ composer require crell/serde
Использование
use Crell\Serde\SerdeCommon;
$serde = new SerdeCommon();
$object = new SomeClass();
// Populate $object somehow;
$jsonString = $serde->serialize($object, format: 'json');
$deserializedObject = $serde->deserialize($jsonString, from: 'json', to: SomeClass::class);
https://github.com/Crell/Serde
👉 @php_libСовет по Laravel💡
Поддерживайте контроллеры, используя ТОЛЬКО 7 методов:
1️⃣ index
2️⃣ create
3️⃣ store
4️⃣ show
5️⃣ edit
6️⃣ update
7️⃣ destroy
Для любых дополнительных методов создайте другой контроллер и используйте эти методы.
👉 @php_lib
Разберитесь в RESTful API и усильте свое резюме
На открытом практическом уроке от OTUS, где вы вместе с опытным экспертом:
- рассмотрите уровни зрелости REST;
- обсудите концепцию HATEOAS;
- изучите различные паттерны REST, включая их реализацию в форматах json-api и odata;
- научитесь генерировать клиент к сервису по openapi idl.
Встречаемся 6 февраля в 20:00 мск в рамках курса «Microservice Architecture». Доступна рассрочка на обучение!
Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок: https://vk.cc/cui8IY
🚨 Защитите свой код от Zip Bomb! 💣🚨
Защитите свои приложения от сильно сжатых Zip-файлов, предназначенных для DoS-атак
💡 проверка количества файлов в архиве
💡 проверьте общий размер несжатых данных
💡 проверьте степень сжатия
👉 @php_lib
