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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
💬 Фриланс vs найм: что лучше

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

➡️ Фриланс:

— Гибкий график, проекты на вкус
— Быстро прокачиваешь навыки
— Доход выше при умелом подходе
— Каждый день новые вызовы

📎 Нет соцпакета, нестабильный доход, всё на вас

➡️ Корпоратив:

— Стабильная зарплата и соцпакет
— Менторство и карьерный рост
— Процессы уже налажены
— Работа в команде

📎 Менее гибко, проекты выбираете компания, бюрократия

Фриланс и офис не конкурируют, а показывают разные пути развития. Главное — понять, что важнее именно вам.

А вы что выбрали бы: свободу фриланса или стабильность в найме

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

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

🔹 Laravel 12.27 — добавлена поддержка SQS FIFO queue message group IDs, что открывает доступ к новой возможности Amazon — Fair Queue. Также в релизе несколько дополнительных улучшений.

🔹 Xdebug (август 2025) — опубликован ежемесячный отчёт о развитии инструмента.

🔹 PHP 8.5.0 Beta 3 — вышла третья бета PHP 8.5. Релизный цикл движется по плану, тестирование продолжается.

🔹 Symfony 8–14 сентября 2025 — основное внимание уделено слиянию новых фич для будущих релизов Symfony 7.4 и 8.0.

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

#свежак
👍51
💡 Совет по Laravel: предотвращение случайных запросов

Знаете ли вы, что Laravel поставляется с методом preventStrayRequests(), который позволяет избежать реальных запросов во время тестирования?
Это удобно не только для сторонних API, но и для локальных API.

Хотя ваши тесты могут пройти локально, потому что вся среда работает, они могут провалиться в CI-конвейере. Это происходит потому, что в CI-конвейере обычно активен только тестируемый сервис, поэтому реальные запросы к недоступным API приведут к сбою вашего набора тестов.
👍5
Стратегии кэширования и лучшие практики

🔧 Что такое кэширование и зачем оно нужно?

Кэширование — это процесс хранения часто запрашиваемых данных в быстродоступном месте, чтобы снизить нагрузку на более медленные источники данных, такие как базы данных или внешние API. Это позволяет значительно ускорить работу приложения.
Существует несколько уровней кэширования:

Кэширование вывода: хранение окончательного HTML-вывода страницы для последующих запросов.
Кэширование объектов: хранение результатов запросов к базе данных или API в виде PHP-объектов.
Кэширование опкода: хранение скомпилированного байт-кода PHP-скриптов, чтобы избежать повторного парсинга.

💡 Популярные технологии кэширования в PHP

Redis: это хранилище данных в памяти, поддерживающее различные структуры данных, такие как строки, хэши, списки, множества и отсортированные множества. Redis идеально подходит для кэширования структурированных данных и выполнения сложных операций над ними.
Примеры использования Redis:
Ленты новостей и активность пользователей: использование отсортированных множеств Redis для эффективного хранения и извлечения упорядоченных постов или действий.
Таблицы лидеров и рейтинги: использование отсортированных множеств Redis для поддержания актуальных рейтингов в реальном времени.
Счётчики и ограничение частоты запросов: использование атомарных операций Redis для поддержания счётчиков и реализации ограничения частоты запросов.

Memcached: это высокопроизводительная распределённая система кэширования объектов в памяти. Она предназначена для снижения нагрузки на базу данных путём кэширования данных и объектов в ОЗУ.
Примеры использования Memcached:
Результаты запросов к базе данных: кэширование результатов дорогих запросов к базе данных для значительного снижения нагрузки на сервер базы данных.
Рендеринг HTML-фрагментов: кэширование отрендеренных частей страниц (например, заголовков, футеров или содержимого боковой панели) для ускорения генерации страниц.
Ответы API: кэширование ответов от внешних API для снижения задержки и повышения надёжности.

APCu: это расширение PHP, предоставляющее кэширование данных в памяти для переменных PHP. В отличие от Redis и Memcached, APCu является локальным для сервера, на котором работает PHP, что делает его очень быстрым, но менее масштабируемым.
Примеры использования APCu:
Конфигурация приложения: кэширование настроек конфигурации, которые часто читаются, но редко изменяются, для снижения I/O на диск и повышения производительности.
Мемоизация: использование APCu для хранения результатов дорогих вычислений, что позволяет избежать повторных вычислений.

📌 Рекомендации по использованию
Redis: рекомендуется использовать для кэширования структурированных данных, реализации очередей сообщений и управления сессиями в многосерверных конфигурациях.
Memcached: подходит для кэширования простых данных и объектов, особенно в односерверных или маломасштабных приложениях.
APCu: идеален для кэширования данных, специфичных для одного сервера, таких как конфигурационные параметры или результаты вычислений.

⚙️ Другие стратегии оптимизации производительности PHP
Оптимизация кода: написание эффективного кода путём минимизации циклов, использования соответствующих структур данных и избегания ненужных вычислений.
Асинхронная обработка: перемещение ресурсоёмких задач (например, отправка электронной почты или генерация отчётов) в фоновую очередь для поддержания отзывчивости основного приложения.
Оптимизация базы данных: обеспечение правильной индексации базы данных, оптимизация запросов и извлечение только необходимых данных.
Расширения PHP: использование расширений PHP, написанных на более низкоуровневых языках (например, C), для производительных частей приложения.
Кэширование опкода: использование кэширования опкода, такого как OPcache, для хранения скомпилированных PHP-скриптов в памяти, что снижает накладные расходы на парсинг и компиляцию кода.

🔗 Пример из реальной практики на Medium
🧠 Приукрашивали ли вы опыт на собеседовании? Ловили ли вас на слове?
Собеседования — это не только проверка профессиональных навыков, но и искусство самопрезентации. Многие соискатели задаются вопросом: можно ли немного приукрасить свой опыт, чтобы выделиться среди других кандидатов? И если да, то как избежать последствий, если «приукрашивание» будет раскрыто?

🎭 Приукрашивание: где грань?
По данным hh.ru, около 70% работодателей сталкивались с ложью в резюме соискателей. Наиболее распространённые случаи включают:

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

Однако важно понимать, что даже небольшие искажения могут быть выявлены во время собеседования, особенно если интервьюер задаёт уточняющие вопросы. Например, кандидат, утверждавший, что лично увеличил выручку компании на 40%, может быть пойман на слове, если его попросят предоставить конкретные данные или примеры из работы.

💬 Ваш опыт
А как вы относитесь к приукрашиванию опыта на собеседованиях? Приходилось ли вам немного «добавить» в резюме? Были ли случаи, когда вас «поймали» на слове? Поделитесь своими историями и мнениями в комментариях!

#междусобойчик
🔥 Не пропустите событие осени для AI-комьюнити

24 сентября, 19:00 Мск — бесплатный вебинар с Максимом Шаланкиным «ИИ-агенты: новая фаза развития искусственного интеллекта»

😤 Пока все спорят, «боты это или нет», мы покажем, как работают настоящие агенты: с планированием, инструментами и памятью. За час Максим разберёт:
— почему ИИ-агенты сейчас на пике инвестиций
— чем они отличаются от ChatGPT и обычных моделей
— цикл агента: восприятие → планирование → действие → обучение
— живое демо простого агента
— как бизнес уже получает ROI до 80%

⚡️ Хотите спросить у Максима всё, что обычно остаётся «за кадром»? Ловите шанс — только в прямом эфире.

Мест мало, регистрация закроется, как только забьём комнату
1
🔒 Symfony: Lock vs Semaphore — когда и что выбрать?

В разработке многозадачных PHP-приложений часто возникает необходимость контролировать доступ к общим ресурсам. Symfony предоставляет два мощных инструмента для этой цели: Lock и Semaphore. Хотя оба компонента служат для синхронизации процессов, их подходы и области применения существенно различаются.

🔐 Lock — эксклюзивный доступ
Lock обеспечивает исключительный доступ к ресурсу:
🔸Один процесс — один доступ: только один процесс может получить «ключ» к ресурсу в любой момент времени.
🔸Идеально для критических секций: обновление файлов, обработка платежей, изменение данных в базе данных.
🔸Простая модель: либо у вас есть доступ, либо вы ждёте.

🚦 Semaphore — ограниченный параллелизм
Semaphore позволяет контролировать количество одновременно работающих процессов:
🔸Ограниченное количество разрешений: каждый процесс «потребляет» одно разрешение.
🔸Идеально для ограничения параллелизма: обработка изображений, API-запросы, очереди задач.
🔸Модель «ограниченного доступа»: несколько процессов могут работать одновременно, но не более заданного лимита.

🧠 Когда использовать что?

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

Semaphore: используйте, когда нужно ограничить количество одновременно выполняющихся процессов, например, для предотвращения перегрузки системы.

📚 Документация:


Symfony Lock

Symfony Semaphore


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

#элементарный_выбор
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🚀 composer/xdebug-handler — отключение Xdebug для повышения производительности

Библиотека composer/xdebug-handler предназначена для временного отключения расширения Xdebug в процессе выполнения PHP-скриптов, что позволяет значительно ускорить операции, такие как установка зависимостей с помощью Composer.

Зачем это нужно?
Xdebug предоставляет мощные возможности для отладки и профилирования PHP-кода, однако его включение может существенно замедлить выполнение скриптов. Например, Composer может работать в 3–4 раза медленнее при активном Xdebug, даже если не используются функции профилирования.

composer/xdebug-handler автоматически перезапускает процесс PHP без загрузки Xdebug, сохраняя при этом все необходимые настройки и переменные окружения. После завершения работы Xdebug восстанавливается.

Когда стоит использовать?
В CLI-скриптах, например, при запуске Composer.
В CI/CD пайплайнах, где важна скорость выполнения.
В разработке, когда необходимо временно ускорить выполнение скриптов без отключения Xdebug.

Установка

composer require composer/xdebug-handler

📦 GitHub

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

#инструменты
4👍3
🔍 How to: добавить автозаполнение в Laravel с MongoDB Atlas Search

Хотите улучшить поиск в вашем Laravel-приложении? Воспользуйтесь MongoDB Atlas Search для реализации автозаполнения. В статье на Laravel News подробно описан процесс создания приложения для поиска фильмов с автозаполнением.

Что вас ждёт:
🔹 Настройка MongoDB Atlas и подключение к Laravel.
🔹 Создание модели Eloquent для коллекции фильмов.
🔹 Реализация поиска и автозаполнения с использованием индексов Atlas Search.
🔹 Создание API-эндпоинтов для поиска и автозаполнения.
🔹 Интеграция автозаполнения в интерфейс с использованием JavaScript.

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

👉Читать статью
Сегодня премьера

В 19:00 МСК стартует бесплатный вебинар с Максимом Шаланкиным«ИИ-агенты: новая фаза развития искусственного интеллекта».

В программе:
— почему агенты ≠ чат-боты;
— живое демо простого агента;
— и как эта тема встроена в курс, который разработан под руководством Никиты Зелинского.

Это прямой эфир: подключиться можно через лендинг курса.
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Кстати, в маке есть датчик, который определяет точный угол поворота экрана

Он не представлен в виде общедоступного API, но когда это кого-то останавливало? Есть способ считать датчик и сделать так, чтобы он звучал как звук старой двери.

🚪Коллеги, держитесь

🐸 Библиотека пхпшника
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱5🤔1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🧹 Vibe code cleanup specialist — профессия будущего, которая сводится к уборке за вайбкодерами

Джуны, освоившие вайбкодинг, могут рассчитывать на высокую зарплату уже через пару лет. Сеньоры, понимающие как возможности, так и ограничения ИИ, становятся бесценными сотрудниками.

Gergely Orosz утверждает, что инструменты на основе ИИ похожи на «очень старательных джунов — они быстро пишут код, но нуждаются в постоянном контроле. Разница в том, что ИИ-джуны никогда не становятся старшими. Им всегда будут нужны специалисты по очистке кода.

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

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

👉 Команда Donado Labs предлагает очистку кода как услугу — и, похоже, движется в правильном направлении

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
😁81🔥1
🛠 PhpStorm-лайфхак: Productivity Guide

Если хочешь работать быстрее и умнее в PhpStorm, открой Productivity Guide: меню HelpProductivity Guide или Ctrl+Shift+A → «Productivity Guide».

🔍 Что это?

Это встроенный инструмент, который показывает, какие функции PhpStorm ты используешь, а какие — нет. Он помогает выявить недоиспользуемые возможности IDE и предлагает способы улучшения твоей продуктивности.

⚡️ Как это работает?

🔸Использованные функции: видишь, какие инструменты ты применяешь часто.

🔸Неиспользованные функции: узнаёшь, какие возможности ты ещё не освоил.

🔸Рекомендации: IDE предлагает способы улучшения твоего рабочего процесса.

💡 Пример: Live Templates

Если ты часто пишешь конструкции вроде foreach, if, while, то можешь использовать Live Templates. Просто набери сокращение, например, forek, и нажми Enter — PhpStorm автоматически развернёт его в полный код.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2
🐘 PHP для начинающих: JSON CRUD API

Современные веб-приложения не обходятся без JSON API: они позволяют создавать, читать, обновлять и удалять данные (CRUD) с помощью лёгкого и универсального формата JSON.

Что полезного можно вынести из этой статьи:

CRUD операции: POST — добавить, GET — получить, PUT/PATCH — изменить, DELETE — удалить.
JSON vs БД: JSON файлы подходят для маленьких проектов, для масштабных приложений лучше базы данных.
Среда PHP: PHP 8.0+ с расширениями ext-json и ext-pdo, Composer, Docker, PHPUnit.
Фреймворк или нативный PHP: Laravel и Slim ускоряют разработку сложных API, нативный PHP — для простых или кастомных решений.
Безопасность: проверка и очистка входных данных, CSRF-токены, подготовленные SQL-запросы, корректные права доступа к файлам.
Масштабирование: кэширование, пагинация, профилирование производительности, переход на базу данных при росте проекта.

Статья также показывает, как структурировать проект, готовить API к переходу с JSON на БД и использовать инструменты для управления API, например Zuplo.

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

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

#php_азбука
🌚1
🙂 В Laravel при создании записей с помощью Factories вы можете использовать класс Sequence, чтобы заменить некоторые значения и применить к ним специальную логику.

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

#vardump
2👾1
🚫 Хватит бороться с монолитом!
Узнайте, как создавать масштабируемые и гибкие приложения на PHP и Symfony.

🎯 На открытом уроке разберем современную event-driven архитектуру:
— Symfony Messenger: обработка событий синхронно и асинхронно.
— CQRS: разделение команд и запросов для производительности.
— Event Sourcing: как хранить историю всех изменений состояния.

Поймем, в каких проектах эти подходы действительно необходимы, и посмотрим на живой код.

💡 Вебинар будет полезен:
— PHP и Symfony-разработчикам, растущим до уровня мидл+ и сеньоров.
— Тимлидам и архитекторам, планирующим устойчивые к нагрузкам системы.
— Начинающим специалистам, чтобы увидеть перспективы развития.

📅 Регистрируйтесь на бесплатный вебинар «Event-driven архитектура в PHP и Symfony» 1 октября в 20:00!:

https://clc.to/i9no6Q


Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
🛠️ Опишите свой рабочий день одним PHP-массивом

Представьте, что ваш день — это ассоциативный массив.
Какие ключи и значения там будут?

#байтовый_юмор
2