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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
⬆️ Мониторинг неудачных заданий

Вам когда-нибудь нужно было следить за неудачными заданиями и получать уведомления, когда это происходит? Метод failing позволяет вам сделать именно это

Библиотека пхпшника #буст
🥱3
😡 А вас тоже бесят облачные сервисы?

Согласитесь, статус отношений с облаками — все сложно. Но что, если можно изменить правила игры?

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

Что мы хотим узнать:
— Для чего вы реально используете облако?
— Чего катастрофически не хватает прямо сейчас?
— Что бесит больше всего? (можно материться)
— Как выбираете провайдера — по цене или по любви?
— и тому подобное

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

️Время на опрос: меньше, чем на кофе-брейк. Жмите → https://clc.to/nboYDA
🚀 Как оптимизировать Laravel-приложение: практические советы

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

Разбираем ключевые техники:

1️⃣ Оптимизация запросов к базе
Eager Loading: избегайте проблемы N+1 запросов, загружая связи заранее через with().
Выбирайте только нужные колонки с помощью select() для уменьшения объёма передаваемых данных.
Обрабатывайте большие наборы данных по частям через chunkById() — так снижается нагрузка на память.
Используйте toBase(), если нужна простая выборка без моделей и лишних данных (без отношений и событий).

2️⃣ Кэширование
Кэшируйте дорогостоящие запросы через Cache::remember().
Используйте кэш конфигураций и шаблонов (config:cache, view:cache) для ускорения загрузки.
Рассмотрите пакеты типа spatie/laravel-responsecache для кэширования ответов.

3️⃣ Ограничение запросов (Rate Limiting)
Защищайте API от перегрузок, используя встроенный middleware RateLimiter. Можно настроить правила по IP, пользователям и ролям.

4️⃣ Индексация базы данных
Правильные индексы — основа производительности SQL-запросов. Laravel миграции позволяют легко добавлять индексы: уникальные, обычные, полнотекстовые.

5️⃣ Советы по Eloquent
Не загружайте лишние связи, используйте withOnly() (Laravel 11).
Для получения одного столбца вместо get() применяйте pluck().
Для тяжёлой логики используйте сырые запросы через DB::select().

6️⃣ Очереди и фоновая обработка
Перенесите тяжёлые задачи (отправка писем, интеграции, экспорты) в очереди с помощью Laravel Queues и обработчиков (Redis + Supervisor или Laravel Octane).

👉 Читать статью
🎮 Эффективное управление ветками с помощью git rebase

Проблема: при работе с несколькими ветками в Git история коммитов может становиться запутанной из-за частых слияний, что усложняет анализ изменений.

Решение:
в книге "Mastering Git" автор показывает использование команды git rebase, которая позволяет линейно интегрировать изменения из одной ветки в другую, сохраняя историю чистой и понятной.

Пример кода:
# Переключаемся на ветку feature
git checkout feature

# Выполняем rebase на master
git rebase master

# Если возникают конфликты, разрешаем их и продолжаем rebase
git add <исправленные файлы>
git rebase --continue

# Переключаемся на master и сливаем изменения
git checkout master
git merge feature --ff-only


Преимущества:

— Чистая и линейная история изменений.
— Упрощение процесса ревью кода.
— Лёгкость в отслеживании изменений.

Еще больше полезных книг — в нашем канале @progbook
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
✏️ Промпт для пет-проектов

Составили для вас промпт, который поможет определится с пет-проектом на основе трёх слов, которые первыми придут к вам в голову.

Промпт:
You are a seasoned Open-Source Developer, known for your creativity and ability to build impactful projects. Your goal is to generate a compelling pet project idea based on three randomly provided words. You will then outline the project's core functionality, potential technologies to use, and its potential impact on the open-source community.

Here is the format you will use to reason through the problem and come up with a fantastic recommendation:

---

## Random Words
$word_1, $word_2, $word_3

## Pet Project Idea
$project_idea_name

### Project Description
$project_description (A brief overview of the project and its purpose)

### Core Functionality
* $functionality_1
* $functionality_2
* $functionality_3
(List the key features and functionalities of the project)

### Potential Technologies
* $technology_1
* $technology_2
* $technology_3
(List potential programming languages, frameworks, libraries, and tools that could be used)

### Potential Impact
$impact_description (Explain how this project could benefit the open-source community or solve a specific problem)

---

Here is the challenge you are tasked with: Generate a pet project idea based on the following three words: [**Word 1, Word 2, Word 3**]


💬 Попробуйте сгенерировать пет-проект по промпту и поделитесь в комментариях, что подкинет вам нейросеть👇

Библиотека пхпшника #буст
😁9🥱31
🧠 Вопросы подписчиков: как вы парсите сложные лог-файлы?

Один разработчик поделился своей болью:

«Часто приходится извлекать конкретные данные из огромных логов — десятки тысяч строк. Простая проверка, начинается ли строка с определённого шаблона, не работает.
Использую сложные регулярные выражения, особенно когда нужно вытащить глубоко вложенные структуры.
Периодически формат логов меняется, и приходится переписывать regex заново. А из-за конфиденциальности данных сторонние инструменты использовать нельзя.»


✔️ А вы с таким сталкивались?

✔️ Как парсите большие и сложные логи на PHP?

✔️ Что делаете, если формат логов меняется?

Есть ли библиотеки или приёмы, которые помогли вам?
💬 Делитесь опытом в комментариях — интересно, как вы решаете такие задачи!

Библиотека пхпшника #междусобойчик
😀 Самые полезные хоткеи в VS Code

Хотите писать код быстрее и кайфовать от процесса? Вот подборка горячих клавиш, которые реально облегчают жизнь:

🔥 Отладка

🔹 F5 — запустите отладку приложения.

🔹 Ctrl + F5 — запустите приложение без отладки.

🔹 F9 — установите точку останова на текущей строке.

🔹 F10 — шаг с заходом (Step Over) через строку.

🔹 F11 — шаг в код (Step Into) для более глубокого анализа.

💬 Какие горячие клавиши вы используете для отладки? Есть ли у вас свои проверенные приёмы для быстрого поиска багов? Напишите в комментариях👇

Библиотека пхпшника #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👾1
🌧️ Облачная терапия: время выговориться!

Знакомая ситуация? Покупаете облако как BMW, а получаете телегу с квадратными колесами. Обещают 99.9% uptime, а сервер падает на релизе. Техподдержка отвечает через сутки фразой «попробуйте перезагрузить».

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

🤫 О чем спросим:
— Зачем вам вообще это облако нужно
— Какие косяки достали до печенок
— Сколько денег утекает в никуда ежемесячно
— Что должно случиться, чтобы вы сменили провайдера
— И еще пару каверзных вопросов

⏱️ 2 минуты честности = большое исследование без воды → https://clc.to/nboYDA
📌 Совет по Laravel: Убираем повторяющийся код с помощью фильтров

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

Решение:

Используй tap() для создания переиспользуемых фильтров. Создаём один класс фильтра и применяем его в нужных местах, избавляясь от повторов.

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

Чистый код: меньше дублирования и путаницы.
Централизованная логика: изменения фильтров нужно вносить только в одном месте.
Переиспользуемость: фильтр можно применять в разных частях приложения, будь то поиск, рекомендации или отчёты.
Масштабируемость: с ростом приложения фильтры становятся легче поддерживаемыми.

🔗 Примеры использования в статье
👍6
😱 Завтра цена на курс «AI-агенты для DS» вырастет

Пока вы думаете — другие уже покупают. Что вы теряете, откладывая решение? Как минимум — 10 000 рублей, именно столько вы переплатите завтра. Как максимум — шанс войти в топ-1% дата-сайентистов, которые умеют строить AI-агенты.

🎓 Чему вы научитесь на курсе:
— адаптировать LLM под разные предметные области и данные
— собирать свою RAG-систему: от ретривера и реранкера до генератора и оценки качества
— строить AI-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой

Решение за вами.

👉 Купить курс по старой цене
💬 Холивар: оставаться в найме или уходить в свой проект

Кажется, у каждого разработчика хотя бы раз возникал вопрос:
«А не бросить ли всё и не начать ли своё?»


С одной стороны — стабильная зарплата, комфорт и понятные перспективы в найме.
С другой — свобода, возможность реализовать свою идею и построить что-то своё.

Так что выбрать?

➡️ Позиция «Оставаться в найме»

✔️ Финансовая стабильность:
Получаете зарплату каждый месяц, есть соцпакет, отпуск, больничный.

✔️ Развитие в команде:
Можно учиться у коллег, расти вертикально (тимлид, архитектор и т.д.) или горизонтально — в смежные роли.

✔️ Минимум риска:
Вы не рискуете своими деньгами и временем. Уволиться можно в любой момент, не потеряв всё.

✔️ Баланс:
Есть личное время. Свои проекты можно делать вечерами, не бросая основную работу.

➡️ Позиция «Уходить в своё»

✔️ Идея требует реализации:
Если вы не можете перестать думать об этом проекте — возможно, это и есть ваш путь.

✔️ Нет развития в найме:
Работа стала рутиной, а настоящий рост происходит только вне её.

✔️ Готовы к ответственности:
Понимаете, что теперь всё зависит только от вас — и это вас не пугает.

✔️ Есть подушка и план:
Вы не бросаетесь в омут с головой — а действуете обдуманно.

➡️ Когда уход — плохая идея:
— Вы эмоционально выгорели и просто хотите “куда угодно, но не сюда”.
— Нет чёткого понимания, что вы собираетесь делать и кому это нужно.
— Думаете, что бизнес — это про «творить» и «быть свободным». На деле — это про продажи, людей, стрессы и управление.

🤝 А вы на чьей стороне?
Уже ушли в своё? Только планируете? Или уверены, что найм — лучший выбор?

👇 Поделитесь опытом, размышлениями или вопросами — обсудим честно.

Библиотека пхпшника #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚52
💻 Подборка новостей по PHP за неделю:​

🔹 Laravel 12.17 — добавлен каст AsUri для автоматического приведения атрибутов модели к URI-объектам, а также привязка сервисов к контейнеру через PHP-атрибуты.

🔹 PHP 8.3.22 и 8.4.8 — багфикс-релизы с улучшениями стабильности. Всем пользователям рекомендовано обновиться.

🔹 2-8 июня 2025 года — Неделя Symfony #962 — активная разработка Symfony 7.4 и 8.0: начинается депрекация устаревших функций. Также опубликован кейс по использованию Symfony в Yousign и идёт подготовка к SymfonyOnline 2025.

🔹 30 лет PHP — в честь юбилея проект FrankenPHP (сервер на базе Caddy) официально стал частью PHP-организации на GitHub.

Библиотека пхпшника #свежак
2
⌨️ Топ-вакансий по PHP за неделю

Backend Developer — от 295 000 до 380 000 ₽ удалёнка (Москва)

Senior PHP Engineer — от 300 000 ₽, Удалёнка (Москва)

Middle PHP Developer — от 200 000 ₽, Удалёнка (Москва)

Fullstack PHP разработчик — от 100 000 р., Удалёнка

➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs
🥱51
🎮 Балансировка нагрузки для TCP-сервисов

Проблема: необходимо распределить трафик между несколькими TCP-серверами.

Решение: в книге "Nginx Cookbook: Advanced Recipes for High-performance Load Balancing" автор показывает использование модуля stream для балансировки нагрузки на уровне транспортного слоя.

Пример кода:
stream {
upstream mysql_read {
server read1.example.com:3306 weight=5;
server read2.example.com:3306;
server 10.10.12.34:3306 backup;
}

server {
listen 3306;
proxy_pass mysql_read;
}
}


Преимущества:

— Поддержка балансировки для TCP-сервисов.
— Гибкая настройка весов серверов.
— Резервирование серверов для повышения надёжности.

Еще больше полезных книг — в нашем канале @progbook
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🚀 Как писать чистый код на PHP: практическое руководство

Чистый код — это не просто красиво оформленные строки текста, а важный инструмент для упрощения разработки, поддержания и масштабирования проектов. В этой статье мы расскажем, как придерживаться лучших практик при написании кода на PHP, чтобы ваш код стал более читаемым, удобным для поддержки и безопасным.

💡 Почему это важно?

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

🔧 Основные принципы чистого кода в PHP:
🔸 PSR-12 и стандарты индустрии: Следование этим стандартам улучшает совместимость кода и облегчает командную работу.
🔸 Четкие и последовательные наименования: Используйте говорящие имена для классов, функций и переменных.
🔸 Использование модификаторов доступа: Применяйте public, private, protected в зависимости от потребностей.
🔸 Короткие функции и методы: Функции должны выполнять одну задачу и делать это хорошо.
🔸 Комментарии и DocBlocks: Используйте комментарии и PHPDoc для лучшего понимания кода.
🔸 SOLID принципы: Применяйте объектно-ориентированные принципы для упрощения расширяемости и поддерживаемости кода.

🔗 Читайте полностью на Medium
🥱31
💔AI vs Developer: who wins?

Бигтех уже режет найм разработчиков. Вайб-кодинг повсюду. Джуны не нужны. Но так ли это на самом деле?

Мы хотим разобраться, как ИИ влияет на рынок труда в IT. В реальности, а не в головах CEO или HR. Поэтому приглашаем пройти опрос.

Результаты нашего исследования позволят выяснить, сколько разработчиков потеряли работу из-за ИИ? Какие навыки сейчас ценятся больше всего? Кто зарабатывает больше — те, кто использует ИИ или игнорирует?

👾 Расскажите свою историю, чтобы помочь комьюнити: https://clc.to/aFntFw
@platformatic/php-node — модуль для Node.js, который позволяет выполнять PHP-приложения внутри Node.js.

Он использует пул рабочих потоков Node.js для многопоточной обработки PHP-запросов, обеспечивая высокую производительность и масштабируемость без дополнительных усилий.

🔧 Ключевые особенности:

Легкая интеграция: Встраивайте PHP в Node.js приложения.

Многопоточная обработка: Параллельная обработка PHP-запросов с использованием Node.js.

Увеличение производительности: Комбинирует возможности PHP и Node.js для мощных решений.

Единая среда разработки: Упрощает работу с двумя языками в одном проекте.

🎯 Использование:

🔸 Миграция PHP приложений: Легко переносите старые PHP приложения в Node.js.
🔸 Гибридные приложения: Объединяйте возможности PHP и Node.js.
🔸 Веб-сервисы: Используйте сильные стороны PHP с производительностью Node.js.

🚀 Попробуйте php-node и улучшите свои приложения с минимальными усилиями! Подробнее в GitHub репозитории.

Библиотека пхпшника #инструменты
🤔2👍1