Telegram Web
Что такое идемпотентность метода? Какие 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
💡 200 идей для проектов

На Dev.to собрали подборку из 200 идей для проектов с примерами на любой уровень: от базовых до продвинутых. Это вдохновение для тех, кто ищет: как заполнить свой GitHub, заполнить портфолио или просто прокачаться.

Что внутри:
▪️ Начальные проекты. Здесь можно найти простые задачи, вроде создания калькулятора или генератора случайных чисел.
▪️ Средний уровень. Проекты вроде чат-приложения, систем для отслеживания задач.
▪️ Продвинутые проекты. Решения с использованием сложных алгоритмов, разработка на основе ИИ, системы управления пользователями и многое другое.
👍13👏3😍2
🎓💻🔍 Как не попасть на инфоцыган: 8 критериев выбора онлайн-школы

Не знаете, как выбрать онлайн-школу с качественной учебной программой? Мы собрали 8 основных критериев, которые помогут вам найти идеальное место для обучения.

👉 Читать статью
😁3👾21
#дайджест новостей по PHP за неделю:

🔎Выпущен CakePHP 5.1.2 — Улучшения: В списке команд консоли команды app и cakephp теперь отображаются над названиями плагинов. Добавлены описания команд для всех команд фреймворка. Исправлена утечка дескрипторов файлов в StubConsoleOutput и многое другое.

🔎Динамические конструкторы кэша, базы данных и почты в Laravel 11.31 — Команда Laravel выпустила версию 11.31, в которой появились конструкторы динамического кэша/базы данных/почты, хранилище токенов кэша, удобный метод URL::forceHttps() и многое другое.

🔎Laravel Forge добавляет интеграцию с Statamic

🔎Выпущен Symfony 7.2.0-RC1 — Только что состоялся релиз Symfony 7.2.0-RC1. Вот список наиболее важных изменений по сравнению с 7.2.0-BETA2.

🔎Неделя Symfony #934 (18-24 ноября 2024 года)
🎉3👍2😁1
Доступ к базам данных в PhpStorm

PhpStorm предоставляет встроенные инструменты для работы с базами данных, предлагая удобный интерфейс для их управления. Эти функции позволяют работать с базами данных прямо в редакторе, без необходимости переключаться между приложениями. Множество возможностей, позаимствованных из DataGrip, интегрированы в PhpStorm, что делает его мощным инструментом для разработчиков.

🔗 Подключение к базе данных
Для подключения к базе данных нужно воспользоваться встроенными инструментами PhpStorm. Например, для SQLite:

🔸Создайте Laravel-приложение и выберите базу данных.
🔸Откройте окно инструментов баз данных.
🔸Укажите путь к файлу SQLite.

После этого база данных будет подключена, и её содержимое станет доступным для работы.

👁️ Просмотр данных
Данные таблиц можно просматривать, дважды кликнув по нужной таблице. Это позволяет сразу увидеть содержимое, как это сделано в примере с таблицей пользователей.

🔄 Удобство трансформации данных
Одной из полезных функций является возможность транспонирования таблиц:
Строки и столбцы можно поменять местами.
Это упрощает анализ данных для конкретной записи.

🖊️ Консоль запросов
Встроенная консоль для запросов предоставляет:

Автозаполнение.
🎨 Подсветку синтаксиса.
🤖 Поддержку AI-инструментов, таких как Copilot.
Консоль сохраняет выполненные запросы между сессиями, что удобно для повторного использования. Также можно задавать параметры, которые легко менять перед запуском запросов.

📤 Экспорт данных
PhpStorm позволяет экспортировать данные таблиц в форматах:

🔸CSV,
🔸JSON,
🔸Markdown и других.

Например, выбрав Markdown, можно скопировать таблицу и вставить её в документацию в готовом виде. Также можно настроить собственные экстракторы данных.

📊 Автогенерация диаграмм
PhpStorm поддерживает автоматическое создание диаграмм базы данных. Они помогают визуализировать структуру базы и связи между таблицами.
👏5🥱4😢1
💬array_map() предоставляет только значение массива, но не ключ. Чтобы получить доступ к ключу, используйте дополнительные аргументы и array_keys().

Обратите внимание, что порядок аргументов теперь value, key, а не как обычно $key => $value.
😁7😢21👾1
2025/07/11 21:29:57
Back to Top
HTML Embed Code: