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

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

Знаете ли вы, что диапазоны Eloquent можно использовать при определении других отношений?

👉 @php_lib
👍5
Объекты значений в PHP 8: расширенное использование. Часть 2

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

https://dev.to/cnastasi/advanced-value-objects-in-php-8-1lp0

👉 @php_lib
👍3
Объекты значений в PHP 8: сущности

В предыдущих статьях мы узнали, как создавать фундаментальные объекты ценности, и осознали их роль в повышении стабильности и надежности наших приложений.
В этой статье мы рассмотрим еще один архитектурный паттерн, тесно связанный с объектами ценности: Сущности.

https://dev.to/cnastasi/value-object-in-php-8-entities-1jce

👉 @php_lib
👍4
Создание одностраничного приложения с помощью HTMX и Symfony

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

Это прекрасно для пользователей, поскольку обеспечивает им беспроблемный и интуитивно понятный интерфейс, но это означает, что мы должны каждый день менять наш способ создания веб-сайтов, причем совершенно по-новому. Такие решения, как Symfony UX, начали появляться на свет, чтобы упростить разработку UX-ориентированных компонентов/сайтов. Мы уже рассказывали об этом конкретном инструменте в другой статье блога, и он отлично работает! Однако то, что мы используем Symfony, не делает его единственным вариантом!

Эта статья посвящена библиотеке, которая в последнее время набирает обороты в области библиотек, улучшающих UX, - htmx.

https://jolicode.com/blog/making-a-single-page-application-with-htmx-and-symfony

👉 @php_lib
👍3
PHP Annotated – January 2024

Добро пожаловать в январский выпуск PHP Annotated! Мы расскажем о самых интересных событиях в PHP-сообществе за последний месяц, представив отобранные новости, статьи, инструменты и видео.

https://blog.jetbrains.com/phpstorm/2024/01/php-annotated-january-2024/

👉 @php_lib
👍4
Разработка расширения для PHP на C++. Хуки встроенных функций и методов

PHP - это мощный и широко используемый язык программирования для веб-разработки. Однако иногда требуется расширение функциональности или модификация стандартного поведения PHP с использованием более низкоуровневых языков, таких как C++. В этой статье мы рассмотрим, как создать расширение для PHP на C++ на примере разработки функциональности, позволяющей перехватывать вызовы встроенных функций и методов классов в php.

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

👉 @php_lib
👍3
Genealogy

Бесплатное приложение с открытым исходным кодом (семейное дерево) для записи членов семьи и их взаимоотношений, созданное на PHP (Laravel 10).

https://github.com/MGeurts/genealogy

👉 @php_lib
👍6
Модифицируйте таблицы и записи в режиме реального времени с помощью Laravel Population

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

https://capsules.codes/en/blog/fyi/en-fyi-modify-tables-and-records-with-laravel-population

👉 @php_lib
👍1
🚨 Защитите свой код от Zip Bomb! 💣🚨

Защитите свои приложения от сильно сжатых Zip-файлов, предназначенных для DoS-атак

💡 проверка количества файлов в архиве
💡 проверьте общий размер несжатых данных
💡 проверьте степень сжатия

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

Поддерживайте контроллеры, используя ТОЛЬКО 7 методов:

1️⃣ index
2️⃣ create
3️⃣ store
4️⃣ show
5️⃣ edit
6️⃣ update
7️⃣ destroy

Для любых дополнительных методов создайте другой контроллер и используйте эти методы.

👉 @php_lib
🤔8👎5👍3
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
👍6
Как выполнять команды 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