Forwarded from Библиотека задач по PHP | тесты, код, задания
Какой метод в Symfony используется для получения параметров конфигурации в сервисах?
Anonymous Quiz
31%
getParameter()
10%
get()
47%
getConfig()
12%
parameters()
This media is not supported in your browser
VIEW IN TELEGRAM
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
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️⃣ Завершаем все сессии после смены пароля
Ошибка: при смене пароля старые сессии на других устройствах остаются активными.
Исправление: используйте
👉 Почему важно: если токен украден, злоумышленник вылетит сразу после смены пароля.
2️⃣ Безопасная загрузка файлов
Ошибка: прямая ссылка на файлы (
Исправление: генерируйте временные подписанные ссылки (
👉 Почему важно: даже при утечке ссылка перестанет работать после срока действия.
3️⃣ Правильное связывание моделей в маршрутах
Ошибка: без scoping пользователь может подставить чужой ID.
Исправление: используйте
👉 Почему важно: предотвращает горизонтальную эскалацию прав.
4️⃣ Уникальные имена файлов
Ошибка: сохранение файлов под оригинальными именами ведёт к перезаписи.
Исправление: используйте UUID (
👉 Почему важно: два
5️⃣ Шифруем ID в URL
Ошибка: последовательные ID легко перебирать.
Исправление: шифруйте идентификаторы (
👉 Почему важно: атаки через инкремент ID становятся невозможны.
6️⃣ Шифрование чувствительных данных в БД
Ошибка: хранение API-ключей и персональных данных в открытом виде.
Исправление: используйте встроенные касты (
👉 Почему важно: даже при утечке базы данные останутся зашифрованы.
🔗 Читать статью
Библиотека пхпшника
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'
).👉 Почему важно: даже при утечке базы данные останутся зашифрованы.
🔗 Читать статью
Библиотека пхпшника
👍14❤1
🔥 Сбор и масштабирование метрик в 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.
🔗 Хабр
Библиотека пхпшника
Prometheus не успевал, Redis умирал, а бизнес требовал real-time.
Решение: push через UDP + Telegraf — метрики летят без таймаутов и задержек.
Агрегация в Telegraf + Prometheus/InfluxDB = минимальная нагрузка, масштабируемость на десятки серверов за секунды.
Latency ↓60x, приложение не падает, мониторинг не тормозит.
Готовый Symfony-бандл на GitHub/Packagist.
🔗 Хабр
Библиотека пхпшника
👍8
📜 Команда дня: Просмотр логов Laravel в реальном времени
📌 Команда:
💡 Команда выводит последние строки файла логов Laravel и продолжает следить за появлением новых записей.
🔍 Зачем это нужно?
🔹 Отладка в реальном времени: Позволяет видеть ошибки и предупреждения приложения прямо во время работы.
🔹 Мониторинг процессов: Удобно отслеживать, что происходит в приложении при выполнении конкретных действий.
🔹 Быстрое реагирование: Можно заметить критические ошибки и оперативно исправить их, не открывая каждый раз лог вручную.
⚙️ Дополнительные опции:
Ограничение количества строк:
Выводит последние 50 строк и продолжает следить за обновлениями.
Фильтрация по ключевому слову:
Показывает только строки с
Следить за несколькими файлами одновременно:
Выводит все новые записи из всех лог-файлов 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 сентября. Ничего личного, просто математика.
👉 Принять предложение
Вы покупаете себе курс «Математика для Data Science» от преподавателей ВМК МГУ, а мы дарим второй такой же курс вашему другу.
Предложение действует только до 1 сентября. Ничего личного, просто математика.
👉 Принять предложение
📢 Какой сетап идеально подойдёт для разработки AI-агента?
Голосуйте за свой вариант и пишите в комментариях, в каком режиме вы реально кодите.
❤️ — 1
👍 — 2
⚡️ — 3
👏 — 4
🔥 — 5
🎉 — 6
😁 — 7
😍 — 8
🤩 — 9
Какой бы сетап ни был, без AI-агентов в 2025 всё равно далеко не уедешь.
👉 Научим, как строить агентов, которые кодят с тобой
Голосуйте за свой вариант и пишите в комментариях, в каком режиме вы реально кодите.
❤️ — 1
👍 — 2
⚡️ — 3
👏 — 4
🔥 — 5
🎉 — 6
😁 — 7
😍 — 8
🤩 — 9
Какой бы сетап ни был, без AI-агентов в 2025 всё равно далеко не уедешь.
👉 Научим, как строить агентов, которые кодят с тобой
🔥11❤9🎉9⚡5👏1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
Знаешь, что общего у кофе в офисе и 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 предлагает несколько методов, один из которых —
👉Документация
#совет
Библиотека пхпшника
При определении внешних id Laravel предлагает несколько методов, один из которых —
foreignIdFor()
. Этот метод использует имя модели и добавляет к нему «id». Это не только делает ваш код более читабельным, но и позволяет быстро перейти к модели из миграции 🚀👉Документация
#совет
Библиотека пхпшника
🥱3
🚀 Как работать с большими JSON-данными в Laravel
Если вам нужно передавать большие JSON-данные из Laravel, вы наверняка сталкивались с проблемами, такими как перегрузка памяти и тайм-ауты. В этой статье рассмотрим несколько паттернов для улучшения производительности и пользовательского опыта при работе с большими JSON-ответами.
1️⃣ Сжатие данных
Сжимаем данные с помощью gzip или Brotli на сервере (Nginx/Apache). Это минимизирует сетевой трафик и ускоряет передачу данных.
2️⃣ Стриминг JSON (не используем всю память)
JSON-массив: Используем
NDJSON: Каждая строка — отдельный объект JSON, упрощает обработку клиентом.
3️⃣ Разбиение данных на чанки
Не загружайте все данные в память. Используйте
4️⃣ Экспорт в файл
Для больших и повторяющихся экспортов создавайте предварительно сжатые файлы и подавайте их как статические ресурсы.
5️⃣ Выбор правильного формата
JSON array: Для одного документа.
NDJSON: Для построчного стриминга.
CSV: Для табличных данных.
Эти паттерны помогут вам значительно улучшить производительность и UX.
👉 Читайте статью на Medium и узнайте все детали
Библиотека пхпшника
Если вам нужно передавать большие 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 октября уже подготовленным.
👉 Забрать место
Обратный отсчёт пошёл: только до воскресенья 23:59 можно купить курс «AI-агенты для DS-специалистов» и начать учиться уже с 15 сентября.
⚡️ Это ваши +3 недели форы, чтобы спокойно разобраться в самых сложных темах и прийти к первому занятию 7 октября уже подготовленным.
👉 Забрать место
😁1🌚1
⏳ Стоит ли тратить время на магистратуру
Перед каждым встаёт вопрос после бакалавриата — нужно ли идти в магистратуру или лучше пойти работать? Давайте разберемся, что даст каждый из вариантов и какие плюсы и минусы их сопровождают.
Почему магистратура это круто:
• Магистратура поможет углубить теоретические знания: алгоритмы, архитектура программных систем и другие важные дисциплины.
• Для некоторых компаний наличие магистерской степени может быть важным критерием при найме.
• В магистратуре можно завести полезные профессиональные связи.
Минусы магистратуры:
• 2-3 года учебы — это время, которое можно было бы потратить на реальные проекты и самообразование.
• Многие работодатели ценят практический опыт больше, чем диплом, особенно в сфере разработки.
💬 Что посоветуете тем, кто стоит перед выбором? Или может вы стоите перед таким выбором? Делитесь советами и мыслями в комментарии 👇
🐸 Библиотека пхпшника
#междусобойчик
Перед каждым встаёт вопрос после бакалавриата — нужно ли идти в магистратуру или лучше пойти работать? Давайте разберемся, что даст каждый из вариантов и какие плюсы и минусы их сопровождают.
Почему магистратура это круто:
• Магистратура поможет углубить теоретические знания: алгоритмы, архитектура программных систем и другие важные дисциплины.
• Для некоторых компаний наличие магистерской степени может быть важным критерием при найме.
• В магистратуре можно завести полезные профессиональные связи.
Минусы магистратуры:
• 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-й поток скоро)
Звучит логично, но на практике — ловушка.
Python огромный: фреймворки, библиотеки, нюансы синтаксиса. Учить «всё сразу» можно бесконечно.
В итоге — месяцы зубрёжки, а до ML руки так и не доходят.
На старте достаточно баз: типы данных, циклы, функции, работа с библиотеками. Всё остальное лучше подтягивать в процессе решения ML-задач.
⚠️ До 1 сентября курсы можно забрать по старым ценам. Это последние выходные, когда:
— ML идёт за 34 000 вместо 44 000 ₽ + Python в подарок,
— два в одном: оплатите курс по математике и получите второй доступ в подарок,
— и главное: можно купить все курсы до подорожания.
👉 ML для старта в Data Science
А для будущих Data Scientist’ов у нас ещё:
— Базовые модели ML и приложения
— Математика для Data Science
— AI-агенты для DS-специалистов (2-й поток скоро)