⌨️ Топ-вакансий по PHP за неделю
Backend Team Lead (PHP) — 350 000 — 400 000 ₽ удалёнка (Москва)
Senior PHP Developer (Yii2) — от 4000 $, удалёнка (Калифорния)
Senior PHP разработчик — от 250 000 до 320 000 ₽, Удалёнка (Москва)
➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs
Backend Team Lead (PHP) — 350 000 — 400 000 ₽ удалёнка (Москва)
Senior PHP Developer (Yii2) — от 4000 $, удалёнка (Калифорния)
Senior PHP разработчик — от 250 000 до 320 000 ₽, Удалёнка (Москва)
➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs
Проблема: необходимо распределить трафик между несколькими UDP-серверами.
Решение: в книге "Nginx Cookbook: Advanced Recipes for High-performance Load Balancing" автор показывает использование модуля stream с параметром udp для балансировки нагрузки на уровне транспортного слоя.
Пример кода:
stream {
upstream ntp {
server ntp1.example.com:123 weight=2;
server ntp2.example.com:123;
}
server {
listen 123 udp;
proxy_pass ntp;
}
}
Преимущества:
— Поддержка балансировки для UDP-сервисов.
— Гибкая настройка весов серверов.
— Резервирование серверов для повышения надёжности.
Еще больше полезных книг — в нашем канале @progbook
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Внедрение зависимостей в PHP: от основ до фреймворков
Если в коде появляются
📌 Что в статье:
🧱 Часть 1: от жёстких связей к своему DI-контейнеру
🔸 Почему
🔸 Как перейти от конкретных реализаций к интерфейсам и внедрению зависимостей через конструктор
🔸 Что такое инверсия зависимостей (DIP) и как DI помогает её реализовать
🔸 Пошаговая реализация собственного DI-контейнера с autowiring: внедрение зависимостей через рефлексию, поддержка singleton/prototype, регистрация скалярных параметров, реализация PSR-11
⚙️ Часть 2: как это делают фреймворки
💡 Symfony
Ручная регистрация, YAML-конфигурации, autowire/autoconfigure — полный контроль.
💡 Laravel
Контейнер
💡 Yii3
Контейнер через массив конфигураций, работа с
🔍 В итоге:
Пошагово разобрано, как перейти от жёстких зависимостей к гибкому DI.
Создан мини-контейнер с поддержкой автосборки зависимостей
📚 Отличный материал для начинающих и тех, кто хочет разобраться в архитектуре фреймворков на более глубоком уровне.
👉 Хабр
Если в коде появляются
new
, которые плодят жёсткие зависимости — пора разобраться с внедрением зависимостей (Dependency Injection) и понять, как работает DI-контейнер.📌 Что в статье:
🧱 Часть 1: от жёстких связей к своему DI-контейнеру
🔸 Почему
Cart
не должен сам создавать SimpleCalculator
и SimpleStorage
🔸 Как перейти от конкретных реализаций к интерфейсам и внедрению зависимостей через конструктор
🔸 Что такое инверсия зависимостей (DIP) и как DI помогает её реализовать
🔸 Пошаговая реализация собственного DI-контейнера с autowiring: внедрение зависимостей через рефлексию, поддержка singleton/prototype, регистрация скалярных параметров, реализация PSR-11
⚙️ Часть 2: как это делают фреймворки
💡 Symfony
Ручная регистрация, YAML-конфигурации, autowire/autoconfigure — полный контроль.
💡 Laravel
Контейнер
Illuminate\Container
, удобные bind()
и singleton()
, быстрая интеграция.💡 Yii3
Контейнер через массив конфигураций, работа с
Reference
, интеграция с yiisoft/injector
.🔍 В итоге:
Пошагово разобрано, как перейти от жёстких зависимостей к гибкому DI.
Создан мини-контейнер с поддержкой автосборки зависимостей
📚 Отличный материал для начинающих и тех, кто хочет разобраться в архитектуре фреймворков на более глубоком уровне.
👉 Хабр
👍4🔥2
php-internal/dload
Библиотека предназначена для упрощения процесса загрузки бинарных файлов из релизных активов на GitHub. Это особенно полезно для PHP-проектов, которым необходимо интегрировать сторонние инструменты или зависимости в виде бинарных файлов, таких как компиляторы, утилиты или другие исполнимые файлы.
Основные возможности
🔸 Автоматическая загрузка: DLoad позволяет автоматически скачивать необходимые бинарные файлы из релизных активов GitHub, что упрощает процесс интеграции внешних инструментов в проект.
🔸 Управление версиями: Библиотека помогает управлять версиями загружаемых бинарных файлов, обеспечивая соответствие между версией инструмента и версией вашего проекта.
🔸 Интеграция с Composer: DLoad может быть интегрирована с Composer, что позволяет автоматически загружать и обновлять бинарные зависимости при установке или обновлении пакетов.
Применение
DLoad полезна в сценариях, когда проект зависит от внешних бинарных инструментов, которые необходимо интегрировать в процесс сборки или разработки. Это может включать в себя такие задачи, как компиляция, обработка изображений, генерация PDF-файлов и другие операции, требующие использования сторонних исполнимых файлов.
🔗 Github
Библиотека пхпшника #инструменты
Библиотека предназначена для упрощения процесса загрузки бинарных файлов из релизных активов на GitHub. Это особенно полезно для PHP-проектов, которым необходимо интегрировать сторонние инструменты или зависимости в виде бинарных файлов, таких как компиляторы, утилиты или другие исполнимые файлы.
Основные возможности
🔸 Автоматическая загрузка: DLoad позволяет автоматически скачивать необходимые бинарные файлы из релизных активов GitHub, что упрощает процесс интеграции внешних инструментов в проект.
🔸 Управление версиями: Библиотека помогает управлять версиями загружаемых бинарных файлов, обеспечивая соответствие между версией инструмента и версией вашего проекта.
🔸 Интеграция с Composer: DLoad может быть интегрирована с Composer, что позволяет автоматически загружать и обновлять бинарные зависимости при установке или обновлении пакетов.
Применение
DLoad полезна в сценариях, когда проект зависит от внешних бинарных инструментов, которые необходимо интегрировать в процесс сборки или разработки. Это может включать в себя такие задачи, как компиляция, обработка изображений, генерация PDF-файлов и другие операции, требующие использования сторонних исполнимых файлов.
🔗 Github
Библиотека пхпшника #инструменты
🤔3🔥2👍1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🚀 Давно хотите вкатиться в pet-проект, но все никак не решитесь?
Залетайте на roadmap.sh — там теперь есть раздел с проектами — по фронту, бэку и DevOps.
Идеи подойдут и джунам, и тем, кто уже видел
Выбираем проект, дописываем «..., но с AI» — и смело продаем как стартап. Даже если это TODO-лист.
🐸 Библиотека программиста
Залетайте на roadmap.sh — там теперь есть раздел с проектами — по фронту, бэку и DevOps.
Идеи подойдут и джунам, и тем, кто уже видел
docker-compose.override.yml
и не моргнул.Выбираем проект, дописываем «..., но с AI» — и смело продаем как стартап. Даже если это TODO-лист.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7👍5🔥1🥰1
Если вы часто устаете, меняете позу и вам болит спина — эти три секрета для вас:
1. Кресло наше всё
Первым делом нужно сменить кресло. Не офисное, не широкое — берём кресло с анатомической поддержкой, поддержкой головы и поясницы.
2. Power nap — короткий дневной сон
Говорят, Леонардо да Винчи тоже так делал: спал по 20 минут каждые четыре часа, чтобы быстро восстанавливаться. Научитесь засыпать за секунды: включаю фоновую музыку, режим «не беспокоить» на 15-20 минут, откидываете кресло — и спите.
3. Не пропускаем важное
После пробуждения первым делом проверяем уведомления — это помогает не упустить важное. Смотрим чаты задач, потом уже личные.
Такой 15–20 минут сна даёт заряд бодрости работать максимально продуктивно, не отвлекаясь.
А что помогает быть продуктивным вам?
Библиотека пхпшника #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
🧹 Команда дня: Удаление папки
📌 Зачем это нужно?
Иногда при работе с Composer могут возникать проблемы, такие как:
🔸 Ошибки при установке или обновлении зависимостей.
🔸 Конфликты версий пакетов.
🔸 Необходимость сбросить текущее состояние зависимостей и начать с чистого листа.
В таких случаях полезно полностью удалить папку
🛠️ Шаги для пересборки зависимостей:
Удалите папку
Очистите кеш Composer (необязательно, но рекомендуется):
Установите зависимости заново:
Эти шаги помогут вам начать с чистого состояния и устранить возможные проблемы с зависимостями.
⚠️ Важные замечания:
Не коммитьте папку
Проблемы с правами доступа: Если после удаления и повторной установки зависимостей возникают ошибки, связанные с правами доступа, убедитесь, что у вас есть необходимые разрешения на запись в директорию проекта.
✅ Когда использовать эту процедуру?
При возникновении ошибок при установке или обновлении зависимостей.
Если вы хотите сбросить текущее состояние зависимостей и начать с чистого листа.
При переключении между ветками в системе контроля версий, чтобы избежать конфликтов зависимостей.
Библиотека пхпшника #буст
vendor
и пересборка зависимостей📌 Зачем это нужно?
Иногда при работе с Composer могут возникать проблемы, такие как:
🔸 Ошибки при установке или обновлении зависимостей.
🔸 Конфликты версий пакетов.
🔸 Необходимость сбросить текущее состояние зависимостей и начать с чистого листа.
В таких случаях полезно полностью удалить папку
vendor
и файл composer.lock
, а затем заново установить все зависимости.🛠️ Шаги для пересборки зависимостей:
Удалите папку
vendor
и файл composer.lock
:rm -rf vendor composer.lock
Очистите кеш Composer (необязательно, но рекомендуется):
composer clear-cache
Установите зависимости заново:
composer install
Эти шаги помогут вам начать с чистого состояния и устранить возможные проблемы с зависимостями.
⚠️ Важные замечания:
Не коммитьте папку
vendor
в систему контроля версий: Рекомендуется добавлять её в .gitignore
, чтобы избежать излишнего увеличения размера репозитория. getcomposer.orgПроблемы с правами доступа: Если после удаления и повторной установки зависимостей возникают ошибки, связанные с правами доступа, убедитесь, что у вас есть необходимые разрешения на запись в директорию проекта.
✅ Когда использовать эту процедуру?
При возникновении ошибок при установке или обновлении зависимостей.
Если вы хотите сбросить текущее состояние зависимостей и начать с чистого листа.
При переключении между ветками в системе контроля версий, чтобы избежать конфликтов зависимостей.
Библиотека пхпшника #буст
👍3😁2❤1🤩1
«Как я делала читалку форматов EPUB, FB2, DOCX для онлайн-библиотеки»
Интересная статья про проект для чтения книг в различных форматах
🔗 Хабр
Интересная статья про проект для чтения книг в различных форматах
🔗 Хабр
❤2
Не все аспекты программирования идут на пользу при реальной работе. Часто избыточные знания только мешают трезво оценить и написать фичу.
Вот что думает наш подписчик, пишущий на стеке PHP/Go:
Когда я начинал, мне рассказали, что многозадачность — это ключ к быстродействующим приложениям, и я потратил кучу времени, изучая все тонкости асинхронности. В итоге понял, что в реальных проектах асинхронность скорее игрушка, чем нужный инструмент.
💬 Есть ли у вас знания, которые так и не пригодились в работе? Делитесь в комментариях 👇
P.S. Если хотите задать вопрос сообществу или поделиться историей, заполните нашу гугл-форму.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Знакомьтесь, преподаватель нашего нового курса по ML — Мария Жарова.
В карточках рассказали, чем Мария занимается и какие советы даёт тем, кто хочет расти в IT и Data Science ☝️
А если вы уже поняли, что тянуть нечего, начните свой путь в ML правильно: с реальной практикой, поддержкой ментора и видимым результатом.
👉 Записывайтесь на курс
В карточках рассказали, чем Мария занимается и какие советы даёт тем, кто хочет расти в IT и Data Science ☝️
А если вы уже поняли, что тянуть нечего, начните свой путь в ML правильно: с реальной практикой, поддержкой ментора и видимым результатом.
👉 Записывайтесь на курс
❤1👾1
💻 Подборка новостей по PHP за неделю:
🔹 NativePHP for Mobile 1.1 — обновление стало компактнее, умнее и масштабируемее. Улучшена производительность, расширены возможности инструментария.
🔹 Laravel 12.20 — новые возможности для очередей: условный сбой при ограничении по исключениям, метод
🔹 Symfony 7–13 июля 2025 — представлен проект Symfony AI — компоненты и бандлы, добавляющие мощные AI-возможности в PHP-приложения.
🔹 Symfony AI
🔹 PHP 8.5 — в новой версии появится pipe-оператор (|>), который позволяет передавать результат одной функции в другую более чисто и читаемо.
Библиотека пхпшника #свежак
🔹 NativePHP for Mobile 1.1 — обновление стало компактнее, умнее и масштабируемее. Улучшена производительность, расширены возможности инструментария.
🔹 Laravel 12.20 — новые возможности для очередей: условный сбой при ограничении по исключениям, метод
Queue::fakeFor()
, Context::remember()
, а также поддержка callback в pluck()
коллекций.🔹 Symfony 7–13 июля 2025 — представлен проект Symfony AI — компоненты и бандлы, добавляющие мощные AI-возможности в PHP-приложения.
🔹 Symfony AI
🔹 PHP 8.5 — в новой версии появится pipe-оператор (|>), который позволяет передавать результат одной функции в другую более чисто и читаемо.
Библиотека пхпшника #свежак
👍4🤔3❤1