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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
☝️ Последний шанс купить курсы Proglib Academy с доступом навсегда!

Это не просто летняя распродажа, это финал эпохи. Мы дарим скидку 40% на все курсы, включая полностью обновлённый курс по Python (предложение НЕ ДЕЙСТВУЕТ только на курс по AI-агентам для DS-специалистов).

Но главное: с 1 августа доступ ко всем новым курсам станет ограниченным. Успейте инвестировать в свои знания на самых выгодных условиях!

👉 Выбрать курс
1
⌨️ Топ-вакансий по PHP за неделю

Backend Team Lead (PHP) — 350 000 —‍ 400 000 ₽ удалёнка (Москва)

Senior PHP Developer (Yii2) — от 4000 $, удалёнка (Калифорния)

Senior PHP разработчик — от 250 000 до 320 000 ₽, Удалёнка (Москва)

➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs
🎮 Балансировка нагрузки для UDP-сервисов

Проблема: необходимо распределить трафик между несколькими 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: от основ до фреймворков

Если в коде появляются 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

Библиотека пхпшника #инструменты
🤔3🔥2👍1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🚀 Давно хотите вкатиться в pet-проект, но все никак не решитесь?

Залетайте на 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
🧹 Команда дня: Удаление папки vendor и пересборка зависимостей

📌 Зачем это нужно?

Иногда при работе с Composer могут возникать проблемы, такие как:

🔸 Ошибки при установке или обновлении зависимостей.
🔸 Конфликты версий пакетов.
🔸 Необходимость сбросить текущее состояние зависимостей и начать с чистого листа.

В таких случаях полезно полностью удалить папку vendor и файл composer.lock, а затем заново установить все зависимости.

🛠️ Шаги для пересборки зависимостей:

Удалите папку vendor и файл composer.lock:

rm -rf vendor composer.lock

Очистите кеш Composer (необязательно, но рекомендуется):

composer clear-cache

Установите зависимости заново:

composer install

Эти шаги помогут вам начать с чистого состояния и устранить возможные проблемы с зависимостями.

⚠️ Важные замечания:

Не коммитьте папку vendor в систему контроля версий: Рекомендуется добавлять её в .gitignore, чтобы избежать излишнего увеличения размера репозитория. getcomposer.org

Проблемы с правами доступа: Если после удаления и повторной установки зависимостей возникают ошибки, связанные с правами доступа, убедитесь, что у вас есть необходимые разрешения на запись в директорию проекта.

Когда использовать эту процедуру?
При возникновении ошибок при установке или обновлении зависимостей.

Если вы хотите сбросить текущее состояние зависимостей и начать с чистого листа.

При переключении между ветками в системе контроля версий, чтобы избежать конфликтов зависимостей.

Библиотека пхпшника #буст
👍3😁21🤩1
«Как я делала читалку форматов EPUB, FB2, DOCX для онлайн-библиотеки»

Интересная статья про проект для чтения книг в различных форматах

🔗 Хабр
2
👨‍💻 Бесполезные знания для работы

Не все аспекты программирования идут на пользу при реальной работе. Часто избыточные знания только мешают трезво оценить и написать фичу.

Вот что думает наш подписчик, пишущий на стеке PHP/Go:
Когда я начинал, мне рассказали, что многозадачность — это ключ к быстродействующим приложениям, и я потратил кучу времени, изучая все тонкости асинхронности. В итоге понял, что в реальных проектах асинхронность скорее игрушка, чем нужный инструмент.


💬 Есть ли у вас знания, которые так и не пригодились в работе? Делитесь в комментариях 👇

P.S. Если хотите задать вопрос сообществу или поделиться историей, заполните нашу гугл-форму.

🐸Библиотека пхпшника #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Знакомьтесь, преподаватель нашего нового курса по ML — Мария Жарова.

В карточках рассказали, чем Мария занимается и какие советы даёт тем, кто хочет расти в IT и Data Science ☝️

А если вы уже поняли, что тянуть нечего, начните свой путь в ML правильно: с реальной практикой, поддержкой ментора и видимым результатом.

👉 Записывайтесь на курс
1👾1