Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
Все самое полезное для пхпшника в одном канале. По рекламе: @proglib_adv Учиться у нас: clc.to/M561SQ Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Ko'proq ko'rsatish📈 Telegram kanali Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter analitikasi
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter (@phpproglib) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 10 511 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 11 307-o'rinni va Rossiya mintaqasida 60 528-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 10 511 obunachiga ega bo‘ldi.
29 Avgust, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -72 ga, so‘nggi 24 soatda esa -7 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 19.83% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 9.56% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 2 084 marta ko‘riladi; birinchi sutkada odatda 1 005 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 15 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent php, laravel, пхпшника, artisan, api kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Все самое полезное для пхпшника в одном канале.
По рекламе: @proglib_adv
Учиться у нас: clc.to/M561SQ
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 30 Avgust, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
grep -R «functionName(» ./src
Зачем это нужно? Если вы работаете с большими проектами и хотите быстро найти все места, где используется определённая функция, командаgrep— это утилита командной строки для поиска по тексту в файлах. Ключ-Rпозволяет искать рекурсивно по всем файлам в директории, а«functionName(»— это строка, которую мы ищем (в данном случае — вызовы функции).
grep может быть настоящим спасением.
Простой пример: у вас есть функция sendEmail, и вам нужно узнать, где она вызывается в коде — эта команда делает всё быстро и эффективно, без лишних кликов в IDE.
Пример использования:
grep -R «sendEmail(» ./src
Результат:
Если функция sendEmail вызывается в нескольких местах, результат будет выглядеть так:
./src/Controllers/NotificationController.php:42: sendEmail($user->email, $subject, $body);./src/Services/EmailService.php:56: sendEmail($user->email, $subject, $body);
Разные варианты:
Поиск по всем PHP-файлам:
Если вы хотите искать только по PHP-файлам, можно уточнить расширение:
grep -R --include=»*.php» «sendEmail(» ./src
Игнорирование регистра:
Если не важно, как написана функция (например, sendemail или sendEmail), добавьте флаг -i:
grep -Ri «sendemail(» ./src
Показать только имена файлов:
Если вам нужно только увидеть, где эта функция вызывается (без строк с кодом):
grep -Rl «sendEmail(» ./src
Почему это полезно?
🔹 Быстро находите все места использования функции. Например, перед изменениями или удалением функции важно удостовериться, что вы не затронете другие части кода.
🔹 Удобно для рефакторинга. Когда вы хотите заменить одну функцию на другую, эта команда покажет, где необходимо провести изменения.
🔹 Не требует IDE. Для поиска не нужно открывать IDE, достаточно консоли и нескольких команд.
🧠 Дополнительно: Сложные запросы
Если необходимо искать более сложные структуры или несколько функций сразу, вы можете использовать регулярные выражения с grep. Например, для поиска всех вызовов функций, начинающихся с get:
grep -R -E «get[A-Za-z0-9_]*\(» ./src
Библиотека пхпшника #бустif($x) и while($y) — это всегда одно правило, независимо от того, является ли конструкция управляющей или функцией.
Открывающие фигурные скобки всегда на той же строке, что и управляющая структура: Например, function foo() { или if($x) {.
Закрывающие фигурные скобки на новой строке, выровненные с началом блока.
🚫 Почему стоит отказаться от исторических конвенций?
Ранее использованные в таких стандартах, как PSR-2 и PSR-12, подходы взяли за основу стиль, присущий языкам, подобным C, что ведет к путанице и необходимости запоминать исключения. Например, скобки в функциях и управляющих конструкциях должны располагаться по-разному, хотя структура этих конструкций схожа. Эти отличия не улучшали читаемость кода, а наоборот, только увеличивали когнитивную нагрузку.
🔥 Преимущества нового подхода:
Упрощённое восприятие кода.
Совместимость с инструментами автоматического форматирования, такими как PHP-CS-Fixer или линтеры.
Чистый и вертикально структурированный код, который легче воспринимать.
📈 Специальные случаи: if/elseif/else и try/catch/finally
Предлагается установить правило, что все блоки (например, if, elseif, else, try, catch, finally) должны начинаться с новой строки после закрывающей фигурной скобки предыдущего блока. Это улучшает структуру и читабельность кода, делая его более понятным и логичным.
💡 Советы для новых конструкций:
Стрелочные функции (fn): не ставить пробел между fn и открывающей скобкой.
Тернарные выражения (? :): использовать скобки для сложных вложенных выражений и ставить пробелы вокруг ? и :.
👉 Читать статью-- Пример модели dbt для расчета среднего чека по категориям товаров
WITH base AS (
SELECT
category_id,
SUM(order_amount) AS total_sales,
COUNT(DISTINCT order_id) AS total_orders
FROM raw.orders
GROUP BY category_id
)
SELECT
category_id,
total_sales / total_orders AS avg_order_value
FROM base
Преимущества:
— Dbt позволяет быстро разрабатывать и тестировать модели данных, сокращая время от идеи до реализации.
— Подходы, описанные в книге, позволяют строить модели, которые легко масштабируются по мере роста данных.
— Акцент на совместной работе между аналитиками и инженерами способствует более эффективному решению задач.
Еще больше полезных книг — в нашем канале @progbookUseEloquentBuilder, каст AsFluent, middleware FailOnException для очередей, улучшенные тестовые ассерты и другие нововведения.
🔹 Filament v4 Beta — переработанный интерфейс, повышенная производительность, больше контроля при создании интерфейсов. Бета-версия уже доступна для тестирования.
🔹 Symfony 16–22 июня — активная разработка Symfony 7.4 и 8.0: добавлена интеграция с FrankenPHP, удаляются устаревшие функции, улучшена гибкость контроллеров.
Библиотека пхпшника #свежак1. Socially-Conscious Code (Социально-осознанный код) Главная ценность командной работы — кооперация. Чтобы кодовая база была дружелюбной, важно не только знать язык программирования, но и придерживаться его стиля, писать чисто и использовать идиоматичные решения. Это облегчает вхождение новых участников в проект и ускоряет совместную работу. 2. Open by Default (Открытость по умолчанию) Код должен быть открыт, если нет веских причин для обратного. Комментируйте так, будто ваш код читает новичок. Если решение не очевидно или требует времени на понимание, обязательно оставьте комментарий. 3. Simple Scalability (Сбалансированная масштабируемость) Пишите код, который легко масштабировать, но избегайте преждевременных оптимизаций. Простота не означает примитивность, а сложность — не признак качества. «Преждевременная оптимизация — корень всех зол.» 4. Agile Adaptivity (Адаптивность выше догм) Код должен быть готов к изменениям, даже если они кажутся маловероятными. Используйте гибкие решения, например, готовые библиотеки для конфигурации, чтобы облегчить будущие доработки. Балансируйте между принципом YAGNI и возможностью эволюции кода. 5. Learning-Driven Logic (Логика, основанная на обучении) Пишите код так, чтобы он учил вас и других. Рефакторинг — это не наказание, а возможность применить новые знания. Экспериментируйте, но всегда оставляйте после себя чистый и понятный код.😐 Если постик зашёл, то поддержите бустом канала. Будете ли вы использовать подход в своих проектах? 🐸 Библиотека пхпшника #междусобойчик
[GETTER_VISIBILITY] [SETTER_VISIBILITY(set)] [TYPE] $propertyName;
Пример:
protected private(set) string $title;
Это означает, что свойство $title можно читать публично (через геттер), но изменять только внутри класса.
⚙️ Как это работает?
В PHP 8.4 вы можете установить видимость для получения (геттера) и изменения (сеттер) свойств отдельно. Например, можно настроить так, чтобы свойство было доступно для чтения всеми, но изменять его могли только методы класса или его наследники. Это улучшает инкапсуляцию, позволяя скрывать внутренние изменения данных, но предоставлять доступ к их чтению.
🔍 Когда это полезно?
Такая возможность особенно полезна в ситуациях, когда необходимо скрыть детали реализации объекта, но при этом предоставить доступ к его состоянию. Например, если нужно разрешить чтение информации, но не позволять её изменять извне, или наоборот — запретить доступ к данным, но предоставить возможность их обновления через методы класса.
⚠️ Ограничения и нюансы:
🔸 Только для типизированных свойств: Ассиметричная видимость работает только с типизированными свойствами.
🔸 Более строгая видимость для сеттеров: Видимость сеттера должна быть такой же или более строгой, чем у геттера.
🔸 Финальные свойства: Если свойство имеет приватный сеттер, оно считается финальным и не может быть переопределено в подклассе.
💡 Почему это важно?
Asymmetric Visibility — это полезный инструмент для повышения гибкости и безопасности данных в приложениях. Он позволяет ограничить возможность изменения состояния объекта, сохраняя при этом доступность данных для чтения. Это помогает минимизировать риски и улучшить архитектуру вашего кода.
👉 Читать статьюCtrl+Shift+F PhpStorm затирает текущие результаты?
Хитрый трюк: нажмите Open Results in New Window, потом правым кликом на таб → View Options → Open Results in New Tab.
🔁 После этого при каждом поиске будут появляться отдельные новые вкладки с результатами.
✅ Так гораздо проще: переключаться между запросами, сравнивать, не терять текущий контекст. Особенно при сложных рефакторингах или поиске across project.
Библиотека пхпшника #бустПромпт:You are a seasoned «PHP Cool Developer,» renowned for your ability to identify and eliminate anti-patterns in PHP code. Your expertise lies in spotting duplication, unnecessary nesting, inefficient allocations, and dependency cycles. Your goal is to analyze a given PHP code snippet and provide a detailed report highlighting these anti-patterns, along with concrete suggestions for improvement.
Here is the format you will use to analyze the code and provide your recommendations:---
Code Snippet
$code_snippet
#
Anti-Pattern Analysis
1. Duplication
Description: (Explain if duplication exists, where it is located, and why it's problematic)
Recommendation: (Provide specific code changes or refactoring steps to eliminate the duplication)
### 2. Unnecessary Nesting
Description: (Explain if unnecessary nesting exists, where it is located, and why it's problematic)
Recommendation: (Provide specific code changes or refactoring steps to reduce nesting)
### 3. Inefficient Allocations
Description: (Explain if inefficient allocations exist, where they are located, and why they are problematic)
Recommendation: (Provide specific code changes or alternative approaches to improve allocation efficiency)
### 4. Dependency Cycles
Description: (Explain if dependency cycles exist, which packages are involved, and why they are problematic)
Recommendation: (Provide specific refactoring steps to break the dependency cycle, potentially involving interface extraction or dependency inversion)
## Summary of Improvements
(A concise summary of all the identified anti-patterns and the proposed solutions)
---
Here is the PHP code you are tasked with analyzing: [ВСТАВЬТЕ ВАШ КОД СЮДА]Промпт не просто ругается — он объясняет, где именно в коде проблема, почему она опасна или неудобна, и как её устранить с помощью конкретных шагов или рефакторинга. Библиотека пхпшника #буст
upstream backend {
least_conn;
server backend1.example.com;
server backend2.example.com;
}
server {
location / {
proxy_pass http://backend;
}
}
Преимущества:
— Распределение нагрузки на серверы с учётом их текущей загрузки.
— Улучшение производительности за счёт оптимального использования ресурсов.
— Снижение времени отклика для пользователей.
Еще больше полезных книг — в нашем канале @progbookcomposer require nativephp/electron
и пример:
Notification::title('Привет!') ->message('Задача выполнена.') ->show();
👉 Подробнее читайте в статье.