🚀 Pipe operator в PHP 8.5 — меньше вложенности, больше читаемости
PHP 8.5 завез мощную штуку — оператор пайпа (|>), и это реально меняет стиль кода.
Раньше:
Или ещё хуже — с кучей временных переменных:
Теперь:
Каждая операция читается как шаг рецепта — слева направо. Код становится декларативным, не запутанным и без временных переменных.
🎯 Реальный пример: обработка email'а из формы
🔥 Минимум шума, максимум сути.
Pipe — мелкая синтаксическая штука, но она делает код ближе к тому, как вы мыслите.
С PHP 8.5 пишем как люди.
🐸 Библиотека пхпшника
PHP 8.5 завез мощную штуку — оператор пайпа (|>), и это реально меняет стиль кода.
Раньше:
$result = trim(str_shuffle(strtoupper("Hello World")));
Или ещё хуже — с кучей временных переменных:
$result = "Hello World";
$result = strtoupper($result);
$result = str_shuffle($result);
$result = trim($result);
Теперь:
$result = strtoupper("Hello World")
|> str_shuffle(...)
|> trim(...);
Каждая операция читается как шаг рецепта — слева направо. Код становится декларативным, не запутанным и без временных переменных.
🎯 Реальный пример: обработка email'а из формы
$result = $_REQUEST['email']
|> fn($e) => strtolower($e)
|> fn($e) => filter_var($e, FILTER_VALIDATE_EMAIL)
|> fn($e) => sendEmail($e, "Welcome!");
echo $result ? "Sent!" : "Error";
🔥 Минимум шума, максимум сути.
Pipe — мелкая синтаксическая штука, но она делает код ближе к тому, как вы мыслите.
С PHP 8.5 пишем как люди.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍37🤔10🔥8😢7😍1
💡 Чего мы ждём от обновлений
PHP активно развивается и курс этого развития зависит от сообщества. Давайте поделимся какие фичи ждём в следующем обновлении.
Например:
🐸 Библиотека пхпшника #междусобойчик
PHP активно развивается и курс этого развития зависит от сообщества. Давайте поделимся какие фичи ждём в следующем обновлении.
Например:
Асинхронность на уровне ядра: встроенная поддержка async/await упростит написание многозадачного кода.
Расширенный стандарт утилит: Больше array_*, инструменты инспекции, удобная дебага
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🐕🦺 Пет-проекты в резюме: как превратить фриланс и side-проекты в карьерный козырь
💻 Пилишь бота, калькулятор, парсер…
А потом открываешь резюме — и внезапно показать нечего. На самом деле твой неформальный опыт — это не «поигрался с кодом», а боевая прокачка. Главное — правильно оформить:
🛠 Пет-проекты, в которые ты вложил душу — это не хобби, это MVP
🕵️ Side-проекты — это не «с друзьями запускали что-то», а «работал в кросс-функциональной команде»
💸 Фриланс через брата жены — это тоже фриланс (и почти стартап)
⚡️ В статье:
— как вписать неформальный опыт в резюме без ощущения, что ты его придумываешь на ходу;
— как не испортить впечатление фразой «проект недоделан, но идея крутая»;
— как показать, что ты не просто что-то писал — ты решал задачи.
В общем, если твой гитхаб похож на кладбище хороших идей — пора его оцифровать в карьерный актив🧠
🔗 Читать статью
🐸 Библиотека программиста
💻 Пилишь бота, калькулятор, парсер…
А потом открываешь резюме — и внезапно показать нечего. На самом деле твой неформальный опыт — это не «поигрался с кодом», а боевая прокачка. Главное — правильно оформить:
🛠 Пет-проекты, в которые ты вложил душу — это не хобби, это MVP
🕵️ Side-проекты — это не «с друзьями запускали что-то», а «работал в кросс-функциональной команде»
💸 Фриланс через брата жены — это тоже фриланс (и почти стартап)
⚡️ В статье:
— как вписать неформальный опыт в резюме без ощущения, что ты его придумываешь на ходу;
— как не испортить впечатление фразой «проект недоделан, но идея крутая»;
— как показать, что ты не просто что-то писал — ты решал задачи.
В общем, если твой гитхаб похож на кладбище хороших идей — пора его оцифровать в карьерный актив
Please open Telegram to view this post
VIEW IN TELEGRAM
«Что дал переход на zsh мне, как разработчику?»
Когда-то многие из нас просто писали команды в bash и не задумывались. Но однажды в команде сказали: «Ставь zsh — будет лучше». Почему? Аргументов не дали. Сегодня восполняем этот пробел — и особенно это будет полезно PHP-разработчикам.
🖥️Что такое Zsh?
Это оболочка, как и bash, только... мощнее. Благодаря плагинам, темам и расширениям zsh превращает ваш терминал в полноценный dev-инструмент. А если установить
— автокомплит команд по истории (как в IDE)
— подсветка синтаксиса прямо в консоли
— алиасы:
— темы вроде powerlevel10k: кастомизация отображения веток, путей, статуса команд
А главное — вся эта магия работает из коробки, стоит лишь включить нужные плагины и чуть поднастроить
👉 Хабр
Когда-то многие из нас просто писали команды в bash и не задумывались. Но однажды в команде сказали: «Ставь zsh — будет лучше». Почему? Аргументов не дали. Сегодня восполняем этот пробел — и особенно это будет полезно PHP-разработчикам.
🖥️Что такое Zsh?
Это оболочка, как и bash, только... мощнее. Благодаря плагинам, темам и расширениям zsh превращает ваш терминал в полноценный dev-инструмент. А если установить
Oh My Zsh
, становится еще проще:— автокомплит команд по истории (как в IDE)
— подсветка синтаксиса прямо в консоли
— алиасы:
gl
вместо git pull
, ci
вместо composer install
, и так далее— темы вроде powerlevel10k: кастомизация отображения веток, путей, статуса команд
А главное — вся эта магия работает из коробки, стоит лишь включить нужные плагины и чуть поднастроить
.zshrc
.👉 Хабр
❤1
🌗 Айтишный культ темной темы в IDE
Темная тема давно стала визуальной нормой для нас — кто-то включил один раз и больше не возвращался. А кто-то сидит на светлой и не видит смысла менять.
➖ За темную:
— Не слепит в темноте
— Глаза устают меньше
— Просто красиво
➖ За светлую:
— Лучше читается при дневном свете
— Меньше проблем с контрастом
— Привычнее для документации и веба
❓ А какой темой пользуетесь вы? Делитесь в коммментариях!
🐸 Библиотека пхпшника #междусобойчик
Темная тема давно стала визуальной нормой для нас — кто-то включил один раз и больше не возвращался. А кто-то сидит на светлой и не видит смысла менять.
— Не слепит в темноте
— Глаза устают меньше
— Просто красиво
— Лучше читается при дневном свете
— Меньше проблем с контрастом
— Привычнее для документации и веба
Please open Telegram to view this post
VIEW IN TELEGRAM
1🌚28❤2🤩2
💻 Подборка новостей по PHP за неделю:
🔹 Laravel 12.21 — появились атрибуты
🔹 Symfony 21–27 июля — активная подготовка к релизам Symfony 7.4 и 8.0: добавлен
🔹 PHP 8.5.0 Alpha 2 — вышла вторая альфа-версия, приглашают к тестированию.
🔹 Livewire уязвимость (CVE-2025-54068) — версии до 3.6.3 уязвимы к удалённому выполнению команд через обновление свойств компонента. Обновитесь немедленно.
🔹 Symfony AI — новые компоненты для интеграции AI в PHP-приложения, от низкоуровневых библиотек до бандлов.
Библиотека пхпшника #свежак
🔹 Laravel 12.21 — появились атрибуты
Singleton
и Scoped
для контейнера, метод query builder для проверки значений между двумя колонками, строгая валидация чисел и булевых значений.🔹 Symfony 21–27 июля — активная подготовка к релизам Symfony 7.4 и 8.0: добавлен
ObjectMapperAwareInterface
, улучшены JsonStreamer
и AssetMapper
, удалены устаревшие фичи, включая автоматическое отображение Doctrine entity.🔹 PHP 8.5.0 Alpha 2 — вышла вторая альфа-версия, приглашают к тестированию.
🔹 Livewire уязвимость (CVE-2025-54068) — версии до 3.6.3 уязвимы к удалённому выполнению команд через обновление свойств компонента. Обновитесь немедленно.
🔹 Symfony AI — новые компоненты для интеграции AI в PHP-приложения, от низкоуровневых библиотек до бандлов.
Библиотека пхпшника #свежак
🔥3🥰1
Forwarded from Библиотека задач по PHP | тесты, код, задания
Какие из реализаций метода getName() не валидны в классе Child?
Forwarded from Библиотека задач по PHP | тесты, код, задания
Какие из реализаций метода getName() не валидны в классе Child?
Anonymous Quiz
10%
protected function getName(){}
21%
function getName(){}
38%
private function getName(){}
31%
public function getName(){}
❤5
⌨️ Топ-вакансий по PHP за неделю
Backend-разработчик — от 1 800 до 3 100 $ удалёнка (Москва)
Backend Developer (PHP) Middle — 180 000 — 300 000 ₽, удалёнка (Москва)
PHP-разработчик — от 2 500 до 3 000 $, Удалёнка (Москва)
PHP Developer (Symfony) — от 250 000 ₽, Удалёнка (Москва)
➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs
Backend-разработчик — от 1 800 до 3 100 $ удалёнка (Москва)
Backend Developer (PHP) Middle — 180 000 — 300 000 ₽, удалёнка (Москва)
PHP-разработчик — от 2 500 до 3 000 $, Удалёнка (Москва)
PHP Developer (Symfony) — от 250 000 ₽, Удалёнка (Москва)
➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs
👏1
💬В Laravel есть хелпер Number для простого и удобного форматирования цифровых значений.
Библиотека пхпшника #буст
Библиотека пхпшника #буст
🔥10👍4
Паттерн Спецификация: реальный опыт применения
Когда репозиторий начинает разрастаться от десятков методов вроде
Но помогает ли он на практике?
🧱 Что такое «Спецификация»?
Идея проста: вынести логику критериев выборки в отдельные классы, чтобы не засорять бизнес-логику и модель.
Пример из оригинала (Фаулер): решаем, в какой контейнер положить груз — не через ифы, а через метод
📦 Варианты спецификаций:
Hardcoded — простые классы с жёсткими условиями.
Параметрируемые — с конфигурацией через свойства.
Композитные — объединяют другие спецификации и поддерживают AND/OR/NOT.
💡 Как это выглядит в реальной системе?
Пример из продакшена: программа лояльности, раздача карт клиентам по гибким правилам.
Каждая стратегия начислений генерирует свою спецификацию, которая используется при выборке клиентов для выдачи карт.
Пример кода:
При этом, за фасадом — сложная и кастомная реализация, где каждая спецификация превращается в SQL-запрос, в том числе с поддержкой bulk insert и пагинации.
⚠️ Где ловушка?
Когда спецификации усложняются, репозитории превращаются в мешанину
🧩 Выводы:
✔️ Использовать, если нужно чётко отделить бизнес-логику от инфраструктуры.
❌ Не использовать как «универсальный антидот» от методов
🧼 Иногда проще честно написать
🔁 Ключевая идея — спецификация — это не про репозиторий, а про знание. Описание того, что значит «подходит». И оно может жить в домене, даже если не содержит SQL.
А вы используете этот паттерн у себя? Или предпочитаете оставаться на стороне простых методов?
🔗 Хабр
Библиотека пхпшника
Когда репозиторий начинает разрастаться от десятков методов вроде
getByThisAndThat()
, код становится тяжёлым и неудобным. В таких случаях часто вспоминают паттерн Specification — особенно после хвалебных отзывов на собеседованиях.Но помогает ли он на практике?
🧱 Что такое «Спецификация»?
Идея проста: вынести логику критериев выборки в отдельные классы, чтобы не засорять бизнес-логику и модель.
Пример из оригинала (Фаулер): решаем, в какой контейнер положить груз — не через ифы, а через метод
isSatisfiedBy()
.📦 Варианты спецификаций:
Hardcoded — простые классы с жёсткими условиями.
Параметрируемые — с конфигурацией через свойства.
Композитные — объединяют другие спецификации и поддерживают AND/OR/NOT.
💡 Как это выглядит в реальной системе?
Пример из продакшена: программа лояльности, раздача карт клиентам по гибким правилам.
Каждая стратегия начислений генерирует свою спецификацию, которая используется при выборке клиентов для выдачи карт.
Пример кода:
$specification = $loyaltyProgram->createInitialCardIssuingSpecification();
$cards = $cardRepository->findAllBySpecification($specification);
При этом, за фасадом — сложная и кастомная реализация, где каждая спецификация превращается в SQL-запрос, в том числе с поддержкой bulk insert и пагинации.
⚠️ Где ловушка?
Когда спецификации усложняются, репозитории превращаются в мешанину
match
, if
, IS NULL
, кастомных условий и бэкфлипов.🧩 Выводы:
✔️ Использовать, если нужно чётко отделить бизнес-логику от инфраструктуры.
❌ Не использовать как «универсальный антидот» от методов
getByXAndY()
в репозиториях.🧼 Иногда проще честно написать
findByDateAndStatus()
.🔁 Ключевая идея — спецификация — это не про репозиторий, а про знание. Описание того, что значит «подходит». И оно может жить в домене, даже если не содержит SQL.
А вы используете этот паттерн у себя? Или предпочитаете оставаться на стороне простых методов?
🔗 Хабр
Библиотека пхпшника
❤5🔥3🤔1
Развертывание приложений Laravel на Laravel Cloud с помощью MongoDB Atlas
Разворачивать приложение раньше было больно. Потом появился Forge. А теперь — Laravel Cloud: полноценная платформа как сервис, где развертывание Laravel-приложения занимает меньше минуты и не требует возни с серверами, настройками и uptime-танцами.
🧰 В свежем туториале показали, как:
— задеплоить Laravel на Laravel Cloud
— подключить MongoDB Atlas, даже несмотря на отсутствие нативной поддержки (расширение
🔥 Фишка: можно подключить MongoDB Atlas в пару шагов — просто скопируйте строку подключения, добавьте переменную окружения, и всё взлетит после redeploy.
⏱️ Пример из статьи: первое успешное развёртывание — за 49 секунд.
🔗 Полный гайд: от подключения репозитория до настройки секрета
📍 Идеально подойдёт тем, кто:
— хочет быстрый прод для pet-проекта
— устал руками разворачивать сервера
Разворачивать приложение раньше было больно. Потом появился Forge. А теперь — Laravel Cloud: полноценная платформа как сервис, где развертывание Laravel-приложения занимает меньше минуты и не требует возни с серверами, настройками и uptime-танцами.
🧰 В свежем туториале показали, как:
— задеплоить Laravel на Laravel Cloud
— подключить MongoDB Atlas, даже несмотря на отсутствие нативной поддержки (расширение
mongodb
уже встроено)🔥 Фишка: можно подключить MongoDB Atlas в пару шагов — просто скопируйте строку подключения, добавьте переменную окружения, и всё взлетит после redeploy.
⏱️ Пример из статьи: первое успешное развёртывание — за 49 секунд.
🔗 Полный гайд: от подключения репозитория до настройки секрета
MONGODB_URL
. Скриншоты, логи, возможные ошибки и как их обойти — всё на месте.📍 Идеально подойдёт тем, кто:
— хочет быстрый прод для pet-проекта
— устал руками разворачивать сервера
🔄 Перекладывать JSON теперь проще
Составили промпт, который поможет в ежедневной рутине перемещения жсонов. Достаточно вставить структуру объекта и необходимый формат.
Промпт:
👇 JSONо-укладчики «+» в чат
🐸 Библиотека пхпшника #буст
Составили промпт, который поможет в ежедневной рутине перемещения жсонов. Достаточно вставить структуру объекта и необходимый формат.
Промпт:
Напиши функцию на PHP, которая преобразует JSON-объект с полями [Ваш JSON] в [Ваш формат]. Функция должна корректно обрабатывать ошибки парсинга JSON, возвращая либо строку, где произошла ошибка, либо ошибку.
👇 JSONо-укладчики «+» в чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱8😢2😁1
Git Notes
В статье рассказано о том, как можно использовать малозаметную, но полезную функцию Git — Git Notes — для добавления дополнительной информации к коммитам после их создания. В отличие от стандартных коммитов, которые создают новые объекты при изменении данных (например, при изменении сообщения коммита), Git Notes позволяют прикрепить к существующему коммиту дополнительную информацию, не меняя его.
Git Notes позволяют добавить различные заметки к коммиту с помощью команды
Функционал Git Notes особенно полезен в таких случаях, как хранение обсуждений и комментариев к pull request'ам (PR). В проекте Symfony используют специальный инструмент для объединения веток, который автоматически сохраняет комментарии из GitHub в виде заметок Git Notes. Эти комментарии прикрепляются к коммитам, что позволяет отслеживать обсуждения даже после смены платформы или удаления исходного PR. Таким образом, при необходимости можно получить доступ к обсуждению, сохранив его вместе с кодом.
Для того чтобы просмотреть или извлечь эти заметки, можно использовать команду
👉 Читать статью
Библиотека пхпшника
В статье рассказано о том, как можно использовать малозаметную, но полезную функцию Git — Git Notes — для добавления дополнительной информации к коммитам после их создания. В отличие от стандартных коммитов, которые создают новые объекты при изменении данных (например, при изменении сообщения коммита), Git Notes позволяют прикрепить к существующему коммиту дополнительную информацию, не меняя его.
Git Notes позволяют добавить различные заметки к коммиту с помощью команды
git notes add
. Эти заметки хранятся в отдельной ветке notes/commits и могут быть сгруппированы по категориям через флаг --ref
. Например, можно создать разные типы заметок для одного и того же коммита — заметки, связанные с проверкой качества или тестированием кода.Функционал Git Notes особенно полезен в таких случаях, как хранение обсуждений и комментариев к pull request'ам (PR). В проекте Symfony используют специальный инструмент для объединения веток, который автоматически сохраняет комментарии из GitHub в виде заметок Git Notes. Эти комментарии прикрепляются к коммитам, что позволяет отслеживать обсуждения даже после смены платформы или удаления исходного PR. Таким образом, при необходимости можно получить доступ к обсуждению, сохранив его вместе с кодом.
Для того чтобы просмотреть или извлечь эти заметки, можно использовать команду
git log --notes
или настраивать git fetch, чтобы автоматически загружать заметки с сервера.👉 Читать статью
Библиотека пхпшника
👍5
Какое ревью в вашем PHP-коде было самым спорным?
🤬 Кто-то не принимает
А может, у вас спор был из-за
Поделитесь:
• Из-за чего начался спор?
• Кто в итоге «победил»?
• Как теперь пишете код?
💬 Интересно собрать реальные кейсы — и заодно понять, где граница между чистым кодом и субъективщиной.
Библиотека пхпшника #междусобойчик
🤬 Кто-то не принимает
match
в проде, кто-то на дух не переносит Service
-суффиксы в названиях.А может, у вас спор был из-за
static
методов, facade
-ов или неправильного DI?Поделитесь:
• Из-за чего начался спор?
• Кто в итоге «победил»?
• Как теперь пишете код?
💬 Интересно собрать реальные кейсы — и заодно понять, где граница между чистым кодом и субъективщиной.
Библиотека пхпшника #междусобойчик
Proglib Academy — это место, где вы превращаете теорию в практику. Здесь ваши знания становятся проектами для портфолио, а вы — более уверенным специалистом.
Выберите курс, который поможет сделать следующий шаг ⬇️
🚀 Для тех, кто начинает путь в IT:
— Основы IT для непрограммистов
— Программирование на Python (обновлённый)
— Frontend-разработчик с нуля: HTML, CSS, JavaScript
🧠 Для будущих и настоящих Data Scientist'ов:
— ML для старта в Data Science (начинается в сентябре)
— Базовые модели ML и приложения
— Математика для Data Science
— AI-агенты для DS-специалистов (скоро второй поток)
🛠️ Для опытных разработчиков, готовых к росту:
— Алгоритмы и структуры данных
— Архитектуры и шаблоны проектирования
Независимо от вашей цели, у нас есть курс, который поможет её достичь. Переходите в Proglib Academy, выбирайте свой путь и инвестируйте в навыки, которые всегда будут в цене!
Выберите курс, который поможет сделать следующий шаг ⬇️
🚀 Для тех, кто начинает путь в IT:
— Основы IT для непрограммистов
— Программирование на Python (обновлённый)
— Frontend-разработчик с нуля: HTML, CSS, JavaScript
🧠 Для будущих и настоящих Data Scientist'ов:
— ML для старта в Data Science (начинается в сентябре)
— Базовые модели ML и приложения
— Математика для Data Science
— AI-агенты для DS-специалистов (скоро второй поток)
🛠️ Для опытных разработчиков, готовых к росту:
— Алгоритмы и структуры данных
— Архитектуры и шаблоны проектирования
Независимо от вашей цели, у нас есть курс, который поможет её достичь. Переходите в Proglib Academy, выбирайте свой путь и инвестируйте в навыки, которые всегда будут в цене!
Когда в проекте много зависимостей (
vendor/
, node_modules/
и т.п.), PhpStorm может тормозить из-за длительной индексации.✅ Простое решение: кликните папку → Mark Directory as → Excluded.
🚀 После этого IDE быстрее работает, особенно при автокомплите и поиске по проекту.
Попробуйте — в крупных проектах сразу почувствуете разницу!
Библиотека пхпшника #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱11👍3😁1😢1🌚1