Библиотека пхпшника | 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
Многие, возможно, уже видели «красные флаги» Яндекса⁠⁠. Помимо кучи неприемлемых требований нас больше всего заинтересовало то, что у GO-разработчика PHP опыт не считается релевантным🤔

Ваше мнение можете писать в комментарии👇
😁25😢15🌚5👍2🤔1
💡 Как избавиться от WebSockets и сэкономить $1 млн в год: неожиданные решения для оптимизации

Как снизить расходы на инфраструктуру и повысить эффективность? Оказывается, отказ от WebSockets может сэкономить миллионы. Вместо привычного подхода можно использовать решения, которые не только проще, но и лучше подходят для определённых задач, как, например, асинхронные очереди или SSE.

Знаете ли вы, как выбрать стратегию, которая одновременно сократит затраты и улучшит масштабируемость? Разберитесь в тонкостях оптимизации и найдите способ выжать максимум из вашей системы. 🚀

🔗 Читать статью
🔗 Зеркало
😁9👍3
Выпущен PHP 8.4!

Обновление доступно на официальном сайте.

Хороших выходных🫣
🔥24👍5🥱1
Лучшая стратегия кэширования Redis в Laravel: Руководство по быстрому и эффективному кэшированию

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

Здесь рассмотрены основные стратегии кэширования в Laravel с использованием Redis, включая настройку, управление временем жизни данных и очистку кэша.

Зачем кэшировать с Redis?
Кэширование позволяет временно сохранять данные, что сокращает время, затрачиваемое на запросы к базе данных. Это ускоряет загрузку страниц, снижает нагрузку на сервер и улучшает пользовательский опыт.

Преимущества Redis для кэширования:

🔸Высокая скорость работы с данными.
🔸Поддержка различных структур данных (строки, списки, хэши и др.).
🔸Гибкое управление сроком хранения данных и их удалением.
👍2🤔21
Настраивать xdebug для первого запуска не нужно вообще! Как в Phpstorm запустить отладку за минуту и без браузера

Многие считают, что добиться успешного запуска отладки xdebug после его установки — тяжело и мучительно. Но на самом деле, сделать первый запуск можно менее чем за минуту, не делая настройки и даже не прикасаясь к конфигурационным файлам .ini (php.ini/xdebug.ini). Как это сделать? Об этом и пойдет речь в этой статье.
👍6
Phiki

Это подсветка синтаксиса, написанная на PHP. Он использует грамматические файлы TextMate и темы Visual Studio Code для генерации кода с подсветкой синтаксиса для веб-страниц и терминалов.
👍5
Что такое идемпотентность метода? Какие HTTP-методы являются идемпотентными для REST?

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

В контексте REST-архитектуры, следующие HTTP-методы являются идемпотентными:

1. GET: Получение информации с сервера. Повторный запрос GET не должен иметь никакого влияния на состояние сервера.
2. HEAD: Аналогично методу GET, но без тела ответа. Повторный запрос HEAD также не должен иметь никакого влияния на состояние сервера.
3. PUT: Обновление (или создание) ресурса на сервере. Если запросы PUT повторяются с теми же параметрами, они должны иметь такое же состояние ресурса после каждого выполнения.
4. DELETE: Удаление ресурса на сервере. Повторное выполнение DELETE с теми же параметрами должно иметь то же состояние.

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

#вопросы_с_собеседований
👍6
Исправление конфигурации OPcache ускорило работу PHP-приложения в 3 раза

Правильное управление OPcache при атомарных деплойментах позволило:

🔸Ускорить приложение в 3 раза.
🔸Снизить нагрузку на CPU в 10 раз.
🔸Сохранить сотни дней на время загрузки для пользователей.

Проблема
При деплойментах с символьными ссылками OPcache продолжает кэшировать файлы предыдущих релизов, заполняя память. Это снижает эффективность кэша.

Решение
Сбрасывать OPcache при каждом деплойменте с помощью cachetool. Это гарантирует, что файлы нового релиза будут кэшироваться заново.

Настройки OPcache
opcache.validate_timestamps=0 — отключить проверку временных меток.
opcache.file_update_protection=0 — мгновенное кэширование новых файлов.
Настроить объем памяти (opcache.memory_consumption) и количество файлов (opcache.max_accelerated_files) для ваших нужд.

Мониторинг
Добавьте ключевые метрики OPcache (свободная память, hit rate) в систему мониторинга. Это поможет выявлять проблемы и оптимизировать работу.
👍8🤩1
Тест: 👨‍💻🚀 Насколько ты продвинутый разраб?

Говорят, что джун становится мидлом, когда начинает понимать, как мало он знает. Этот тест покажет, насколько ты продвинулся в своём развитии.

👉 Пройти
👍4👾1
Forwarded from DIGITALRAZOR
Что будет, если DigitalRazor объединится с Proglib Academy? Правильно! Новый розыгрыш.

Условия:

Подпишитесь на DigitalRazor;
Подпишитесь на «Библиотеку программиста»;
Нажмите кнопку «Участвовать» под этим постом.

Призы:

1-е место: 27-дюймовый монитор;
2, 3 и 4-е место: сертификат номиналом 20 000 рублей на ИТ-курсы от Proglib Academy;
5-е место: геймерская клавиатура + коврик на выбор.

Призы разыграем 1 декабря в 20:00 (МСК).

Доставка призов возможна только по городам России и Белоруссии.

Proglib Academy создаёт онлайн-курсы для программистов, помогает получить востребованные навыки и построить успешную карьеру в IT.

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

Регламент розыгрыша
👍2👾1
array_column() — это очень удобная встроенная функция PHP, которая извлекает индекс из списка массивов или публичное свойство из списка объектов.

Третий аргумент array_column() — это ключ, который будет использоваться для ссылки на значение в результирующем массиве. Это очень удобно для превращения массива в хэш.

Обратите внимание, что дублирующиеся ключи будут перезаписаны.
👍30
Как обрабатывать большие массивы данных в Laravel без дефицита памяти

Laravel предоставляет несколько полезных методов, которые помогут вам обрабатывать данные небольшими кусками, что экономит память и ускоряет работу приложения. Здесь показано, как использовать chunk(), chunkById() и Lazy Collections для эффективной обработки больших наборов данных в Laravel.
👍5
Какие нововведения из 8.4 планируете активно использовать?👇
😁13
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Напоминаем: у нас можно (и нужно) купить рекламу

→ Более 60 телеграм-каналов по всем направлениям IT
→ Почти 1,2 миллиона аудитории
→ Собственное медиа и сайт с DAU 25 000 — можем усилить продвижение
→ Классные email-рассылки
→ И, конечно же, крутые контент-менеджеры, которые сделают нативную интеграцию/придумают виральный пост/реализуют любые контентные предпочтения

Для заказа пишите сюда: @proglib_adv
🔥5🥱4😢31
Чем отличается require от require-dev?

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

require-dev: Этот раздел определяет зависимости, необходимые исключительно для разработки и тестирования вашего приложения. Обычно это инструменты для тестирования (например, PHPUnit), фиктивные данные для тестирования (например, Faker), инструменты для отладки (например, Xdebug) и т. д. Эти зависимости не включаются в окружение продакшена (production environment), чтобы уменьшить размер и сложность установки.

Когда вы устанавливаете пакет с помощью Composer, по умолчанию устанавливаются зависимости из обоих разделов require и require-dev. Однако при использовании опции --no-dev в команде composer install или composer update, Composer устанавливает только зависимости из раздела require, пропуская require-dev. Это особенно полезно при развертывании приложения в продакшен окружении, когда не нужны инструменты и зависимости, предназначенные только для разработки.
👍6
🎉 Розыгрыш от Proglib Academy и DigitalRazor!

С 27 ноября по 27 декабря у вас есть шанс не только прокачать свои навыки, но и выиграть ПК при покупке любого курса Академии!

🎁 Призы для участников акции:

Игровой ПК DigitalRazor ProGaming
VIP-пакет курса Proglib Academy

💡 Как принять участие?
Купите любой курс Proglib Academy с 27 ноября по 27 декабря и получите шанс выиграть мощный ПК.

Приобретите технику DigitalRazor — участвуйте в розыгрыше VIP курса.

📅 Вместе с DigitalRazor мы создали спецпредложение -50% на курсы до 30 ноября, чтобы вы могли начать обучение на более выгодных условиях.

Выбрать курс
😁2
Alice, Nelmio, Hautelook, Faker — Как обновить Doctrine Fixtures

Работа с обновлением Doctrine Fixtures связана с синхронизацией сразу нескольких пакетов на GitHub, что делает задачу сложной и трудоемкой. Автор делится опытом этого процесса и описывает шаги, которые помогут выполнить обновление максимально эффективно.

План обновления
Среди основных изменений:

🔸hautelook/alice-bundle: обновление с версии 1.* до 2.*
🔸nelmio/alice: переход с версии 2.* на 3.*
🔸fzaninotto/faker заменяется на fakerphp/faker
🔸doctrine/data-fixtures: обновление с версии 1.5 до 1.7
🔸doctrine/mongodb-odm-bundle: обновление с версии 3.* до 5.*
👏1
🚀 Там биткойн летит вверх, и в связи с этим вопрос:

💬 Вкладываетесь в криптовалюты?

❤️ — да, в биткойн
👍 — да, в другую крипту
👾 — нет

#интерактив
👾102👍2013🌚3