Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
11.2K subscribers
1.4K photos
23 videos
26 files
4.1K links
Все самое полезное для пхпшника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/bca892d6

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
🤖 Курс «ИИ-агенты для DS-специалистов»

Последняя возможность в этом году освоить ИИ-агентов — курс стартует уже 3 октября! Первый вебинар пройдёт в день старта, а подробности вебинара можно найти на сайте.

📚 Бонус: при оплате до 30 сентября вы получите дополнительный лонгрид для подготовки к курсу. Это отличный способ подойти к занятиям уже с базой.

🔥 А ещё после прохождения курса у вас будет достаточно знаний, чтобы участвовать в хакатоне с призовым фондом 1 125 000 ₽.

🔗 Записаться на курс и узнать подробности
🧠 DSL vs паттерны: что выбрать в проекте

В разработке часто встаёт вопрос: использовать ли DSL (Domain Specific Language) или опираться на дизайн-паттерны. Оба подхода помогают структурировать работу с данными и бизнес-логикой, но дают разный результат.

🔍 В чём разница

Паттерны делают код более гибким и слабо связанным, позволяют легко подменять компоненты. Но вместе с этим усложняют ментальную модель — приходится держать в голове фабрики, адаптеры и репозитории, а сама бизнес-логика может «растворяться» в слоях абстракций.

DSL описывает действия напрямую. Язык ближе к предметной области и проще для восприятия, особенно когда задачи сложные или действия цепочкой. Он позволяет выразить логику в явном виде и сократить количество лишних запросов и пост-обработки.

⚠️ Ограничения DSL

🔸 Создание DSL требует серьёзной подготовки: язык должен быть достаточно гибким, чтобы покрывать текущие и будущие сценарии.
🔸 Поддержка DSL может быть трудозатратной, особенно если доменные действия часто меняются.
🔸 Строковые DSL работают как «фронтенд кода» — за ними скрывается движок, который тоже нужно развивать.

Когда что выбрать
Если предметная область хорошо понятна и устойчива — стоит строить DSL.
Если действия ещё уточняются, а изменения происходят часто — лучше опираться на паттерны.
В сложных проектах возможен гибрид: паттерны для структуры и расширяемости, DSL для выражения бизнес-логики.

💬 А как у вас в проектах? Чаще используете паттерны или внедряете DSL?

👉 Читать статью

Библиотека пхпшника

#элементарный_выбор
CPX

Это как npx но для PHP. Этот инструмент позволяет выполнить любую команду из любого пакета Composer, даже если он не установлен в вашем проекте.

🔗 Github

Библиотека пхпшника

#инструменты
🤖 Курс «ИИ-агенты для DS-специалистов»

Последняя возможность в этом году освоить ИИ-агентов с Proglib— старт живых вебинаров на курсе уже 3 октября!

Уже 24 студента изучают 5 лонгридов подготовительного модуля, чтобы сформировать базу к старту живых вебинаров с Никитой Зелинским.

📚 Бонус: при оплате до 30 сентября вы получите дополнительный лонгрид для подготовки к курсу. Это отличный способ подойти к занятиям уже с базой.

🔥 А ещё после прохождения курса у вас будет достаточно знаний, чтобы участвовать в хакатоне с призовым фондом 1 125 000 ₽.

🔗 Записаться на курс и узнать подробности
🚀 How to: защититься от гонок данных в Laravel с помощью Cache::lock()

Когда несколько процессов одновременно пытаются изменить один и тот же ресурс, появляется риск race condition — непредсказуемых ошибок и потери данных.
В Laravel есть элегантное решение — Cache::lock(), которое помогает реализовать атомарные блокировки даже в распределённых системах.

🔒 Как это работает

Вы создаёте именованный лок (Cache::lock("key", $seconds)), который «занимает» ресурс.

Пока лок удерживается, другие процессы не смогут выполнить код внутри него.

По окончании работы лок освобождается (или снимается автоматически по таймауту, если процесс «упал»).

🛠 Где применять

🔄 Обновление стока в интернет-магазине: гарантировать, что количество товара не «улетит» в минус при одновременных заказах.

💳 Финансовые транзакции: исключить двойное списание при параллельных платежах.

⚡️ Почему это удобно


Работает с Redis, Memcached и другими драйверами.

Таймаут защищает от «вечных» блокировок.

Минимальная нагрузка, но максимум безопасности для критичных операций.

👉 Если у вас распределённые воркеры или несколько серверов, используйте Cache::lock() для критичных секций кода. Это простой способ сохранить целостность данных и избавиться от коварных багов конкурентности.

🔗 Ссылка на статью
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🛠 Git-лайфхак в PhpStorm

Если часто работаешь с Git прямо из PhpStorm, есть один суперполезный трюк, который экономит кучу времени: интерактивный rebase через IDE.

🔍 Что это?

Вместо того чтобы открывать терминал и писать git rebase -i, можно делать интерактивное редактирование коммитов прямо в PhpStorm: объединять, редактировать сообщения или менять порядок коммитов.

⚡️ Как использовать?

1. Открой меню VCS → Git → Rebase → Interactive…

2. Выбери ветку, относительно которой хочешь сделать rebase.

3. В открывшемся списке коммитов можно:

• Edit — изменить сообщение или содержимое коммита

• Squash — объединить коммиты

• Reword — только изменить сообщение

• Drop — удалить коммит

Все изменения применяются прямо из интерфейса — никаких терминальных ошибок и лишних команд.

💡 Почему это круто?

Меньше ошибок при редактировании истории

Не нужно помнить синтаксис git rebase -i

Быстро объединяешь коммиты перед пушем

Полная визуализация истории прямо в IDE
Please open Telegram to view this post
VIEW IN TELEGRAM
5
PHP: Общая память

Хочется быстрый кеш или общение между процессами? Хочется использовать фишки long-running PHP, но без long-running?

Давайте разберёмся, как работать прямо с оперативной памятью: от System V до MapViewOfFile; От shmop до FFI.

🔗 Хабр

Библиотека пхпшника
2👍1🤔1
🔥 PHP-разработчики, готовы прокачать Laravel до уровня, на который другие тратят годы?

Онлайн курс «Framework Laravel» - ваш шанс за 3 месяца освоить фреймворк, который делает разработку проще, быстрее и интереснее.
Какие преимущества обучения по Laravel:

• Laravel ускоряет разработку за счет элегантного синтаксиса, богатой экосистемы и инструментов Artisan.
• Интуитивный ORM Eloquent упрощает работу с данными и повышает читаемость кода.
• Фреймворк масштабируется от MVP до высоконагруженных систем, имеет встроенные средства оптимизации, легко интегрируется с Vue/React/Angular, поддерживается активным сообществом и подтвержден практикой крупных компаний.


Также приглашаем вас на бесплатный вебинар «Advanced Eloquent Relations в Laravel»
🗓 7 октября, 20:00

На вебинаре:

• Кастомные отношения в Laravel Eloquent — от Post до Comment и Author
• Использование отношений за пределами реляционных БД
• Практика на реальных примерах

Кто придёт первым - освоит секреты продвинутого Laravel и научится создавать отношения там, где другие даже не думают их строить.

Записаться на вебинар: https://otus.ru/lessons/laravel/?utm_source=telegram&utm_medium=cpm&utm_campaign=laravel&utm_term=phpdevjob&utm_content=mql_lesson_07-10-2025_usp-universal_php_aitext_no-headline_aida_short_photogram_self_white_standart&erid=2Vtzqw5YhsB#event-6312


Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru