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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
Какой метод в Symfony используется для получения параметров конфигурации в сервисах?
Anonymous Quiz
31%
getParameter()
10%
get()
47%
getConfig()
12%
parameters()
This media is not supported in your browser
VIEW IN TELEGRAM
🏃‍♀️ Новый поток курса — собери своих AI-агентов

7 октября стартует второй поток курса «AI-агенты для DS-специалистов».
За 5 недель вы научитесь собирать агентов, которые уже сейчас будут помогать бизнесу.

В кружке выше Максим Шаланкин, наш преподаватель, рассказывает подробнее — включай, чтобы не пропустить.

👉 Записаться на курс
Please open Telegram to view this post
VIEW IN TELEGRAM
😁1
⌨️ Топ-вакансий по PHP за неделю

Senior/Lead PHP Developer — от 2500 до 4000 $, Удалёнка (Москва)

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

Backend Developer — до 3 500$, Удалёнка (Москва)

Backend Developer PHP+MySQL — от 295 000 до 380 000 ₽, Удалёнка (Москва)

➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs
🔥 How To: 6 частых ошибок безопасности в Laravel и как их исправить

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

1️⃣ Завершаем все сессии после смены пароля

Ошибка: при смене пароля старые сессии на других устройствах остаются активными.
Исправление: используйте logoutOtherDevices().

👉 Почему важно: если токен украден, злоумышленник вылетит сразу после смены пароля.

2️⃣ Безопасная загрузка файлов

Ошибка: прямая ссылка на файлы (/storage/invoices/invoice1.pdf) позволяет угадывать URL.
Исправление: генерируйте временные подписанные ссылки (URL::temporarySignedRoute).

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

3️⃣ Правильное связывание моделей в маршрутах

Ошибка: без scoping пользователь может подставить чужой ID.
Исправление: используйте ->scopeBindings().

👉 Почему важно: предотвращает горизонтальную эскалацию прав.

4️⃣ Уникальные имена файлов

Ошибка: сохранение файлов под оригинальными именами ведёт к перезаписи.
Исправление: используйте UUID (Str::uuid()).

👉 Почему важно: два profile.jpg больше не сотрут друг друга.

5️⃣ Шифруем ID в URL

Ошибка: последовательные ID легко перебирать.
Исправление: шифруйте идентификаторы (Crypt::encryptString).

👉 Почему важно: атаки через инкремент ID становятся невозможны.

6️⃣ Шифрование чувствительных данных в БД

Ошибка: хранение API-ключей и персональных данных в открытом виде.

Исправление: используйте встроенные касты ('api_key' => 'encrypted').

👉 Почему важно: даже при утечке базы данные останутся зашифрованы.

🔗 Читать статью

Библиотека пхпшника
👍141
🔥 Сбор и масштабирование метрик в PHP Symfony highload: 200k RPM, 50+ серверов и zero overhead с Telegraf UDP

Prometheus не успевал, Redis умирал, а бизнес требовал real-time.
Решение: push через UDP + Telegraf — метрики летят без таймаутов и задержек.
Агрегация в Telegraf + Prometheus/InfluxDB = минимальная нагрузка, масштабируемость на десятки серверов за секунды.
Latency ↓60x, приложение не падает, мониторинг не тормозит.
Готовый Symfony-бандл на GitHub/Packagist.

🔗 Хабр

Библиотека пхпшника
👍8
📜 Команда дня: Просмотр логов Laravel в реальном времени

📌 Команда:

tail -f storage/logs/laravel.log

💡 Команда выводит последние строки файла логов Laravel и продолжает следить за появлением новых записей.

🔍 Зачем это нужно?
🔹 Отладка в реальном времени: Позволяет видеть ошибки и предупреждения приложения прямо во время работы.
🔹 Мониторинг процессов: Удобно отслеживать, что происходит в приложении при выполнении конкретных действий.
🔹 Быстрое реагирование: Можно заметить критические ошибки и оперативно исправить их, не открывая каждый раз лог вручную.

⚙️ Дополнительные опции:
Ограничение количества строк:

tail -n 50 -f storage/logs/laravel.log

Выводит последние 50 строк и продолжает следить за обновлениями.

Фильтрация по ключевому слову:

tail -f storage/logs/laravel.log | grep «ERROR»

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

Следить за несколькими файлами одновременно:

tail -f storage/logs/*.log

Выводит все новые записи из всех лог-файлов Laravel.

💡 Советы:
Перед деплоем убедитесь, что уровень логирования в .env настроен корректно:

APP_LOG_LEVEL=debug

Используйте вместе с grep для фильтрации конкретных ошибок или событий.
Для долгосрочного мониторинга можно подключить утилиты вроде multitail или lnav для более удобного визуального анализа.
👍6🥱4
Мы сделаем вам предложение, от которого невозможно отказаться 🤌

Вы покупаете себе курс «Математика для Data Science» от преподавателей ВМК МГУ, а мы дарим второй такой же курс вашему другу.

Предложение действует только до 1 сентября. Ничего личного, просто математика.

👉 Принять предложение
📢 Какой сетап идеально подойдёт для разработки AI-агента?

Голосуйте за свой вариант и пишите в комментариях, в каком режиме вы реально кодите.

❤️ — 1
👍 — 2
⚡️ — 3
👏 — 4
🔥 — 5
🎉 — 6
😁 — 7
😍 — 8
🤩 — 9

Какой бы сетап ни был, без AI-агентов в 2025 всё равно далеко не уедешь.

👉 Научим, как строить агентов, которые кодят с тобой
🔥119🎉95👏1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
💡 319 бесплатных API для разработчиков

Знаешь, что общего у кофе в офисе и API? Если оно бесплатное — ты берешь ещё одну чашку.

В справочнике — 319 бесплатных API — от погоды и мемов до котиков и криптовалют. Все разложено по категориям, с табличкой:

🏷 Название API
📜 Описание
🆓 Лимит бесплатного тарифа
🔑 Нужно ли авторизоваться

💻 Подойдёт, если:
— хочешь прикрутить погоду в свой телеграм-бот,
— мечтал сделать сайт с X, но без бюджета,
— или просто любишь ковыряться в чужих сервисах, пока они позволяют.

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
5🥰1
🧑‍💻 Проблемы могут решаться дольше при работе из дома

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

Недавно один из подписчиков задал вопрос:
Как понять, что не так с кодом, когда работаешь удалённо, и как эффективно искать решение?


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

— Метод «уточки». Когда что-то не получается, объясните код самому себе вслух. Это помогает выявить ошибки или упущенные детали.

— Задавайте конкретные вопросы. Чётко формулируйте, какая часть кода вызывает трудности. Лучше задать несколько простых вопросов, чем оставаться в неведении.

— Документируйте решения и процессы. Записи и схемы помогают вам и коллегам вернуться к коду через время.

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

Как вы решаете трудности с кодом, работая удалённо? Поделитесь в комментариях.

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

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

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰1
💬Метод «foreignIdFor»

При определении внешних id Laravel предлагает несколько методов, один из которых — foreignIdFor(). Этот метод использует имя модели и добавляет к нему «id». Это не только делает ваш код более читабельным, но и позволяет быстро перейти к модели из миграции 🚀

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

#совет

Библиотека пхпшника
🥱3
🚀 Как работать с большими JSON-данными в Laravel

Если вам нужно передавать большие JSON-данные из Laravel, вы наверняка сталкивались с проблемами, такими как перегрузка памяти и тайм-ауты. В этой статье рассмотрим несколько паттернов для улучшения производительности и пользовательского опыта при работе с большими JSON-ответами.

1️⃣ Сжатие данных
Сжимаем данные с помощью gzip или Brotli на сервере (Nginx/Apache). Это минимизирует сетевой трафик и ускоряет передачу данных.

2️⃣ Стриминг JSON (не используем всю память)
JSON-массив: Используем LazyCollection для стриминга данных по частям, что экономит память.
NDJSON: Каждая строка — отдельный объект JSON, упрощает обработку клиентом.

3️⃣ Разбиение данных на чанки
Не загружайте все данные в память. Используйте chunkById для обработки данных партиями, что помогает избежать проблем с производительностью.

4️⃣ Экспорт в файл
Для больших и повторяющихся экспортов создавайте предварительно сжатые файлы и подавайте их как статические ресурсы.

5️⃣ Выбор правильного формата
JSON array: Для одного документа.
NDJSON: Для построчного стриминга.
CSV: Для табличных данных.

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

👉 Читайте статью на Medium и узнайте все детали

Библиотека пхпшника
4
Осталось 48 часов!

Обратный отсчёт пошёл: только до воскресенья 23:59 можно купить курс «AI-агенты для DS-специалистов» и начать учиться уже с 15 сентября.

⚡️ Это ваши +3 недели форы, чтобы спокойно разобраться в самых сложных темах и прийти к первому занятию 7 октября уже подготовленным.

👉 Забрать место
😁1🌚1
Стоит ли тратить время на магистратуру

Перед каждым встаёт вопрос после бакалавриата — нужно ли идти в магистратуру или лучше пойти работать? Давайте разберемся, что даст каждый из вариантов и какие плюсы и минусы их сопровождают.

Почему магистратура это круто:

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

• Для некоторых компаний наличие магистерской степени может быть важным критерием при найме.

• В магистратуре можно завести полезные профессиональные связи.

Минусы магистратуры:


• 2-3 года учебы — это время, которое можно было бы потратить на реальные проекты и самообразование.

• Многие работодатели ценят практический опыт больше, чем диплом, особенно в сфере разработки.

💬 Что посоветуете тем, кто стоит перед выбором? Или может вы стоите перед таким выбором? Делитесь советами и мыслями в комментарии 👇

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

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🤓 «Сначала выучу Python идеально, а потом пойду в ML»

Звучит логично, но на практике — ловушка.
Python огромный: фреймворки, библиотеки, нюансы синтаксиса. Учить «всё сразу» можно бесконечно.

В итоге — месяцы зубрёжки, а до ML руки так и не доходят.

На старте достаточно баз: типы данных, циклы, функции, работа с библиотеками. Всё остальное лучше подтягивать в процессе решения ML-задач.

⚠️ До 1 сентября курсы можно забрать по старым ценам. Это последние выходные, когда:
ML идёт за 34 000 вместо 44 000 ₽ + Python в подарок,
два в одном: оплатите курс по математике и получите второй доступ в подарок,
— и главное: можно купить все курсы до подорожания.

👉 ML для старта в Data Science

А для будущих Data Scientist’ов у нас ещё:
Базовые модели ML и приложения
Математика для Data Science
AI-агенты для DS-специалистов (2-й поток скоро)