uk
Feedback
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter

Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter

Відкрити в Telegram

Все самое полезное для пхпшника в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/bca892d6 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b

Показати більше

📈 Аналітичний огляд Telegram-каналу Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter

Канал Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter (@phpproglib) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 10 688 підписників, посідаючи 11 620 місце в категорії Технології та додатки та 61 277 місце у регіоні Росія.

📊 Показники аудиторії та динаміка

З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 10 688 підписників.

За останніми даними від 15 червня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -61, а за останні 24 години на -5, загальне охоплення залишається високим.

  • Статус верифікації: Не верифікований
  • Рівень залученості (ER): Середній показник залученості аудиторії становить 15.63%. Протягом перших 24 годин після публікації контент зазвичай збирає 9.22% реакцій від загальної кількості підписників.
  • Охоплення публікацій: В середньому кожен допис отримує 1 670 переглядів. Протягом першої доби публікація в середньому набирає 985 переглядів.
  • Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 13.
  • Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як php, laravel, пхпшника, artisan, api.

📝 Опис та контентна політика

Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
Все самое полезное для пхпшника в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/bca892d6 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b

Завдяки високій частоті оновлень (останні дані отримано 16 червня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.

10 688
Підписники
-524 години
-117 днів
-6130 день
Архів дописів
Построитель SQL запросов на основе мета-информации миграций БД Статья представляет библиотеку Sql Query Builder, которая использует пакет версионирования shasoft/db-schema для работы с запросами к базе данных. Эта библиотека обеспечивает прямую работу с драйвером PDO и поддерживает различные команды SQL, такие как SELECT, INSERT, UPDATE, DELETE, а также операции JOIN, фильтрацию, удаление дубликатов, сортировку, группировку, агрегатные функции и ограничение выборки. Приводятся примеры использования библиотеки для создания объекта Query Builder, указания условий фильтрации и соединения, а также выполнения запросов с учетом кэширования. Особое внимание уделяется использованию контекста таблицы для определения связей и работы с данными различных таблиц. Также обсуждаются некоторые ограничения и особенности работы библиотеки.

Планирование задач с помощью Symfony Scheduler На SymfonyLive Paris 2023 был представлен Scheduler в Symfony, предназначенный для управления периодическими задачами, и стал стабильным с выпуском Symfony 6.4. Он заменяет crontab и интегрируется непосредственно в приложение. Объясняется установка компонента через Composer и его основные функции, включая создание задач, управление расписанием, обработку коллизий и ошибок, а также использование консольных команд в качестве задач Scheduler. Рассматриваются возможности настройки расписания, управления коллизиями, множественными воркерами и отладкой расписаний. Также обсуждаются инструменты для обработки ошибок и использование консольных команд в качестве задач Scheduler.

Каково назначение транзакций? Расскажите о принципе работы. Назначение транзакций в базах данных состоит в обеспечении атомарности, целостности, согласованности и изолированности операций, которые изменяют данные. Принцип работы транзакций обычно основан на следующих концепциях: Атомарность (Atomicity): Транзакция должна считаться атомарной, то есть либо все ее операции должны быть успешно выполнены, либо ни одна из них не должна быть выполнена. Не должно быть промежуточных состояний, где часть операций выполнена, а часть нет. Согласованность (Consistency): Транзакция должна обеспечивать соблюдение всех ограничений целостности данных. Если данные нарушают целостность, транзакция должна быть отменена, чтобы не допустить записи некорректных данных. Изолированность (Isolation): Транзакции должны выполняться так, будто они являются единственными операциями, выполняемыми в базе данных. Это означает, что результаты одной транзакции не должны быть видны другим транзакциям до того момента, пока первая транзакция не будет завершена. Устойчивость (Durability): После успешного завершения транзакции изменения данных должны быть надежно сохранены и доступны в случае сбоя системы или перезагрузки. Принцип работы транзакций обычно включает в себя следующие этапы: 1️⃣Начало транзакции (BEGIN): Объявляется начало последовательности операций, которые должны быть выполнены атомарно. 2️⃣Выполнение операций: В этом этапе выполняются операции чтения и записи, которые являются частью транзакции. 3️⃣Фиксация (COMMIT): Если все операции выполнились успешно, транзакция завершается путем фиксации, и все изменения применяются к базе данных. 4️⃣Откат (ROLLBACK): Если в процессе выполнения транзакции произошла ошибка или нарушение условий целостности, транзакция отменяется путем отката, и все изменения, сделанные до этого момента, отменяются. #вопросы_с_собеседований

Легко управляйте временными файлами в Laravel Пакет spatie/temporary-directory создан для управления временными файлами и каталогами в PHP. Вместо использования стандартных функций для работы с временными файлами, автор предлагает использовать этот пакет, который предоставляет удобный объектно-ориентированный интерфейс для создания и управления временными файлами и каталогами. Пакет позволяет легко создавать временные директории, загружать файлы в них, обрабатывать файлы и автоматически удалять временные директории при завершении работы с ними. Он также предоставляет другие удобные методы, такие как изменение имени и местоположения директории и очистка директории от всех файлов.

#хочу_спросить Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укаж
#хочу_спросить Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.

Как убрать лишний код из контроллеров в PHP? Расскажет Михаил Каморин — Dev Tech Lead в Skyeng. Встречаемся на бесплатном пра
Как убрать лишний код из контроллеров в PHP? Расскажет Михаил Каморин — Dev Tech Lead в Skyeng. Встречаемся на бесплатном практическом уроке от OTUS, где вы узнаете, как: ▫️убрать сериализацию, десериализацию и валидацию с помощью DTO и компонента Validator; ▫️убрать обработку ошибок с помощью компонента EventDispatcher; ▫️убрать бизнес-логику с помощью подхода CQRS. Встречаемся 8 февраля в 20:00 мск в рамках курса «Symfony Framework». После урока у вас будет возможность стать студентом программы по специальной цене и даже в рассрочку! 👉 Для бесплатного участия и получения записи регистрируйтесь прямо сейчас: регистрация Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 Erid 2Vtzqw6wgWK

#дайджест #phpdevjob Вакансии недели для Москвы 👨🏻‍🏫 PHP-разработчик в ABCP Москва. Разработка облачного решения для предпринимателей в сфере торговли. Подробнее PHP Developer в Market Team Москва. Розничная торговля, маркетинг, реклама. Подробнее PHP-разработчик в netPrint.ru Москва. Онлайн-сервис цифровой фотопечати. Подробнее PHP разработчик в Брискли Москва. Создание IT-продуктов для ритейла. Подробнее PHP разработчик в Tilda Publishing Москва. Платформа для создания сайтов. Подробнее Понравились вакансии? ❤️ — да 🤔 — нет

9 сред выполнения PHP: тест производительности Условия испытаний: Каждый runtime работает в 1 или 2 контейнерах Docker. Кажды
+5
9 сред выполнения PHP: тест производительности Условия испытаний: Каждый runtime работает в 1 или 2 контейнерах Docker. Каждый контейнер имеет 1 ЦП и 1 ГБ ОЗУ. Инструмент нагрузочного тестирования находится в той же сети Docker. Тестируемое приложение: Symfony 7 с 1 контроллером и 1 представлением, без базы данных или других внешних сервисов. Symfony разрабатывался с учетом возможности использования различных рантаймов, таких как Swoole, AMPHP и ReactPHP, хотя последние два были исключены из конкурса. Инструмент нагрузочного тестирования: Используется K6 для выполнения тестов нагрузки. Тесты запускались 3 раза для каждого runtime с 10, 100 и 1000 одновременными подключениями в течение 30 секунд. Настройки PHP и Symfony: Используется php.ini-production (поставляется с официальными контейнерами Docker). Включен Opcache и JIT. Настроен предварительный загрузчик. Symfony работает в режиме production. Кэш Symfony прогрет во время сборки контейнера. Результаты испытаний: 🟠Apache + mod_php и Apache + PHP-FPM показали практически одинаковые результаты. 🟠Nginx + PHP-FPM очень близок к Apache + mod_php и Apache + PHP-FPM при низкой нагрузке (10 и 100 одновременных подключений). 🟠Nginx + PHP-FPM смог обслужить около вдвое больше запросов, чем стеки, основанные на Apache, при нагрузке 1000 одновременных подключений. 🟠Nginx Unit был примерно в 3 раза быстрее, чем традиционный и наиболее популярный Nginx + PHP-FPM. 🟠Не было большой разницы между Roadrunner и Nginx + Roadrunner. 🟠Roadrunner на основе стеков работал в более чем в 2 раза быстрее, чем Nginx + PHP-FPM. 🟠FrankenPHP (не в режиме worker) был довольно близок к Nginx + PHP-FPM с точки зрения производительности. 🟠В режиме worker FrankenPHP был более чем в 10 раз быстрее, чем Nginx + PHP-FPM. 🟠Swoole практически так же быстр, как и FrankenPHP в режиме worker. Полную версию можно увидеть здесь. Заходить с VPN

🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи Напоминаем, что у нас есть бесплатный курс для всех, кто хо
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом. Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций. Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах. 👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.

По локоть в легаси: пошагово перезапускаем устаревший портал на PHP Статья описывает проблемы, с которыми столкнулся владелец сайта Fishingsib.ru, старого ресурса о рыбной ловле, написанного на устаревшем PHP и фреймворке CakePHP 2. Сайт страдал от долгих сроков разработки и трудностей с наймом новых специалистов из-за устаревшего стека технологий. Предлагается два пути решения проблемы: полное переписывание сайта с нуля или постепенную модернизацию существующего кода. Команда выбрала второй вариант и приступила к постепенной модернизации кодовой базы. Они начали с написания тестов для старого приложения на CakePHP 2, а затем постепенно обновляли PHP, внедряли Symfony компоненты и создавали новое приложение на базе Symfony параллельно с существующим. Чтобы обеспечить совместимость и плавный переход, были разработаны общие точки входа и функционал Middleware. Каждый этап модернизации включал подробный план действий и использование инструментов, таких как Codeception для тестирования и Rector для автоматической замены устаревшего кода. Как результат, сайт был успешно обновлен, внедрены новые функции, и команда разработчиков теперь может работать с актуальными технологиями, такими как Symfony 6.

💻Бесплатный практический урок по работе с Apache Kafka «Пишем продьюсер и консьюмер на Alpakka» от Валентина Шилина – старше
💻Бесплатный практический урок по работе с Apache Kafka «Пишем продьюсер и консьюмер на Alpakka» от Валентина Шилина – старшего программиста и аналитика данных в Deutsche Telekom IT GmbH. На занятии: - продемонстрируем интересную связку Scala Alpakka (Kafka); - напишем продьюсер и будем ловить его сообщения в консьюмере; - покажем, насколько легко и элегантно можно реализовать трудоемкую задачу распределенных вычислений. Встречаемся 6 февраля в 20:00 мск в рамках подготовки к курсу «Apache Kafka». Обучение доступно в рассрочку! 👉Регистрируйтесь прямо сейчас, чтобы не пропустить урок и получить запись: https://clck.ru/38NwG7 Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

💰⬆️ 10 факторов, влияющих на зарплату программиста Узнайте 10 факторов, как превратиться из рядового программиста в высокооп
💰⬆️ 10 факторов, влияющих на зарплату программиста Узнайте 10 факторов, как превратиться из рядового программиста в высокооплачиваемого специалиста и научиться аргументированно запрашивать зарплату выше рынка. Читать статью #новость

Typhoon Overloading Реализация отсутствующей функции перегрузки метода для PHP.

Как в общих чертах работает opcache? OPcache (Opcode Cache) — это расширение для интерпретатора PHP, предназначенное для улучшения производительности выполнения PHP-скриптов. Его основная задача — кешировать промежуточный байт-код PHP (опкоды), чтобы уменьшить время компиляции и повторно использовать уже скомпилированный код при последующих запросах. В общих чертах работа OPcache выглядит следующим образом: Компиляция кода: Когда PHP-скрипт выполняется, он сначала компилируется в промежуточный байт-код (опкоды). Этот этап требуется при каждом запросе, если код не был изменен. Кеширование: После компиляции кода OPcache сохраняет скомпилированный байт-код в памяти. Это позволяет избежать повторной компиляции при следующих запросах к тому же скрипту. Повторное использование: В следующих запросах, если код скрипта не изменился, OPcache использует закешированный байт-код, обеспечивая более быстрое выполнение скрипта. Инвалидация кеша: OPcache отслеживает изменения в PHP-файлах. Если файл изменяется, OPcache инвалидирует свой кеш для этого файла, чтобы обеспечить актуальность данных. Преимущества использования OPcache включают улучшение производительности PHP-приложений за счет уменьшения времени компиляции и ускорения выполнения кода. Однако, следует отметить, что OPcache не является инструментом для улучшения самого кода; он просто устраняет необходимость повторной компиляции кода при каждом запросе.

Vertical Slice в PHP Архитектура Vertical Slice организует код вокруг отдельных функций, улучшая модульность, гибкость, тестируемость и поддерживаемость. В Yii2 это можно реализовать с использованием встроенных действий Yii для более детального контроля. Yii3 дополнительно облегчает этот подход, обеспечивая более тонкий уровень управления действиями. Структурирование по use case с помощью Vertical Slices улучшает архитектуру приложений на PHP, обеспечивая модульность, гибкость и поддерживаемость.

Как защититься от «бестелесных» веб-шеллов Здесь рассматривается развивающаяся природа кибератак, с акцентом на «бестелесные» веб-оболочки в качестве ключевого инструмента для удаленного управления веб-серверами. Эти веб-оболочки отличаются от традиционных тем, что не оставляют следов на сервере, что делает их обнаружение и анализ более сложными. Рассматриваются различные типы веб-оболочек, включая те, которые создаются через заранее созданные файлы, эксплуатируя ошибки в веб-приложениях, внесение изменений в исходный код, скрытие в базах данных или модулях сервера, и, в частности, фокус на скрытии в памяти процесса веб-сервера. Различные методы внедрения PHP-кода в процесс, эксплуатации ошибок и обхода отключенных функций. Приведен кейс-стади по PHP-багу (#80663), иллюстрирующий развитие от ошибки использования после освобождения до потенциальной записи в произвольные адреса памяти. Рассказывается о жизненном цикле PHP в сочетании с веб-сервером, подробно описывая функцию инициализации (RINIT) и потенциал ее эксплуатации для создания «оторванной» веб-оболочки. В статье рассматриваются конфигурации PHP в Apache и PHP-FPM, обсуждаются проблемы и преимущества каждой из них. Обсуждается разработка кода оболочки, включая необходимость безопасного выполнения в потоках и использование функции управления ресурсами PHP. Представлены этапы эксплуатации для создания «оторванной» веб-оболочки, включая загрузку PHP-скрипта, поиск по памяти, цепочки ROP и внедрение обратных дверей в процессы веб-сервера. Статья завершается акцентом на обнаружении «бестелесных» веб-оболочек с использованием инструментария EDR/SELinux. Методы обнаружения включают мониторинг внедрения кода в процессы, сканирование внедренного кода с использованием правил YARA и обнаружение после эксплуатации через аудит новых процессов, файловой активности и сетевой активности.

Laravel под капотом — Фасады Статья предоставляет подробное руководство по системе фасадов в Laravel, фокусируясь на ее работе под капотом. Начинается с изучения базового примера в приложении Laravel, анализируя код в файле web.php и обнаружив, что у класса Route нет метода get(), возникает вопрос о том, как работает маршрутизатор Laravel. Исследование приводит к классу Facade, который выступает в роли родительского класса для фасадов в Laravel. Ключевым методом здесь является __callStatic(), магическим методом, вызываемым при вызове неопределенного статического метода на фасаде. Этот метод динамически разрешает экземпляр фасада, вызывая resolveFacadeInstance(), который, в свою очередь, использует метод getFacadeRoot() для получения фактического экземпляра класса. Метод getFacadeRoot() полагается на метод getFacadeAccessor() в дочернем классе фасада (в данном случае Route), который возвращает строку, представляющую ключ для разрешения экземпляра класса из контейнера приложения. Контейнер приложения устанавливается во время процесса старта, где ключевую роль играет класс Kernel Laravel. Затем объясняется, как создать пользовательский фасад, привязав класс к контейнеру приложения и создавая класс фасада, указывающий соответствующую строку в getFacadeAccessor(). Процесс иллюстрируется с использованием класса HelloWorld. Кроме того, представляется концепция фасадов в реальном времени, позволяющая использовать фасады без явного их создания. Это достигается добавлением префикса Facades к пространству имен контроллеров, что вызывает динамическое создание фасада в процессе старта приложения.