#полезное
😱 How to: миграция больших баз данных в Laravel
Статья описывает стратегию миграции больших баз данных в Laravel без простоя и с минимальным риском ошибок, подходящую для высоконагруженных приложений. Основная цель — избежать блокировок таблиц, сбоев и ошибок во время трафика, что критично для таких систем, как электронная коммерция или банковские приложения.
Основная стратегия — это метод «Double Write + Backfill», который включает несколько шагов:
1⃣ Добавление новых колонок или таблиц без удаления старых, чтобы данные продолжали работать.
2⃣ Реализация логики «двойной записи»: во время обновлений и вставок данных записываются в обе колонки (старую и новую).
3⃣ Заполнение новых данных с помощью команд Artisan для миграции существующих записей.
4⃣ Подготовка плана отката на случай ошибок.
5⃣ Переход на новую структуру после завершения миграции и перехода всех данных.
Medium
👉 Новости 👉 База вопросов
Статья описывает стратегию миграции больших баз данных в Laravel без простоя и с минимальным риском ошибок, подходящую для высоконагруженных приложений. Основная цель — избежать блокировок таблиц, сбоев и ошибок во время трафика, что критично для таких систем, как электронная коммерция или банковские приложения.
Основная стратегия — это метод «Double Write + Backfill», который включает несколько шагов:
Medium
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #php
🤔 В чем разница между методами GET и POST?
Метод GET используется для получения данных, а POST — для их отправки на сервер. Данные GET передаются через URL, a POST - в теле запроса. GET запросы кэшируются и могут быть сохранены в истории браузера, тогда как POST запросы более защищены для передачи данных.
👉 Новости 👉 База вопросов
Метод GET используется для получения данных, а POST — для их отправки на сервер. Данные GET передаются через URL, a POST - в теле запроса. GET запросы кэшируются и могут быть сохранены в истории браузера, тогда как POST запросы более защищены для передачи данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😎 Используйте метод
Это намного быстрее, чем сначала проверять существование записи, особенно при массовых вставках.
Документация: https://laravel.com/docs/12.x/queries#upserts
Примечание: Все базы данных, кроме SQL Server, требуют, чтобы колонки, указанные во втором аргументе метода
Кроме того, драйверы баз данных MariaDB и MySQL игнорируют второй аргумент
👉 Новости 👉 База вопросов
upsert() для эффективных операций "вставить или обновить" в одном SQL-запросе.Это намного быстрее, чем сначала проверять существование записи, особенно при массовых вставках.
Документация: https://laravel.com/docs/12.x/queries#upserts
Примечание: Все базы данных, кроме SQL Server, требуют, чтобы колонки, указанные во втором аргументе метода
upsert, имели первичный или уникальный индекс.Кроме того, драйверы баз данных MariaDB и MySQL игнорируют второй аргумент
upsert и всегда используют первичный и уникальные индексы таблицы для определения существующих записей.Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Совет по Laravel для API
Хочешь единообразные ответы об успехе и ошибках?
Вот пример кода, который я увидел в одном опенсорс проекте:
Зарегистрируй кастомные функции как макросы (
Конечно, альтернатива — вынести эти методы в трейты или базовый контроллер
👉 Новости 👉 База вопросов
Хочешь единообразные ответы об успехе и ошибках?
Вот пример кода, который я увидел в одном опенсорс проекте:
Зарегистрируй кастомные функции как макросы (
Macro) в фасаде Response через ServiceProvider.Конечно, альтернатива — вынести эти методы в трейты или базовый контроллер
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
😇 Плагин Laravel Idea стал бесплатным
https://blog.jetbrains.com/phpstorm/2025/07/laravel-idea-is-now-free/
👉 Новости 👉 База вопросов
https://blog.jetbrains.com/phpstorm/2025/07/laravel-idea-is-now-free/
Please open Telegram to view this post
VIEW IN TELEGRAM
The JetBrains Blog
The Laravel Idea Plugin is Now Free for PhpStorm Users | The PhpStorm Blog
Starting July 30, 2025, we’re making Laravel Idea free for PhpStorm users. If you have the Laravel Idea plugin installed, you get full access to all plugin features at no extra cost.
❤2
#Собес #php
🤔 Как работают сессии в РНР?
Сессия - это механизм сохранения данных между запросами. При запуске сессии сервер генерирует уникальный идентификатор (ID), который хранится в cookie или передаётся через URL. Сервер сохраняет данные сессии на стороне сервера, а клиент использует идентификатор для доступа к этим данным.
👉 Новости 👉 База вопросов
Сессия - это механизм сохранения данных между запросами. При запуске сессии сервер генерирует уникальный идентификатор (ID), который хранится в cookie или передаётся через URL. Сервер сохраняет данные сессии на стороне сервера, а клиент использует идентификатор для доступа к этим данным.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
😴 Laravel Rate Limiting — Explained with Real-Life Examples
https://backpackforlaravel.com/articles/tutorials/laravel-rate-limiting-explained-with-real-life-examples
👉 Новости 👉 База вопросов
https://backpackforlaravel.com/articles/tutorials/laravel-rate-limiting-explained-with-real-life-examples
Please open Telegram to view this post
VIEW IN TELEGRAM
Backpack
Laravel Rate Limiting — Explained with Real-Life Examples
Imagine this — your app is running smoothly, then suddenly it gets hit with a wave of requests. Some from real users, others from bots...
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
👋 Плагин Laravel Idea теперь БЕСПЛАТНЫЙ для пользователей PhpStorm
https://blog.jetbrains.com/phpstorm/2025/07/laravel-idea-is-now-free/
👉 Новости 👉 База вопросов
https://blog.jetbrains.com/phpstorm/2025/07/laravel-idea-is-now-free/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
❤️🔥 SQL Generated Columns and Views: How to Use Them in Your Laravel App
https://tighten.com/insights/sql-generated-columns-and-views-how-to-use-them-in-your-laravel-app/
👉 Новости 👉 База вопросов
https://tighten.com/insights/sql-generated-columns-and-views-how-to-use-them-in-your-laravel-app/
Please open Telegram to view this post
VIEW IN TELEGRAM
Tighten
SQL Generated Columns and Views: How to Use Them in Your Laravel App
Over the years of working with Laravel Eloquent models, I've come to appreciate how clean and elegant they can make a codebase. Along the way, I've learned which queries they run under the hood and which native SQL features...
❤1
#Собес #php
🤔 Как можно улучшить производительность РНР-приложения?
Для улучшения производительности используйте кеширование (например, Opcache), минимизируйте сложность запросов к базе данных с помощью индексации и подготовленных запросов, а также обновляйте РНР до последней версии. Сократите использование тяжёлых библиотек, оптимизируйте работу с файлами и используйте CDN для загрузки статического контента.
👉 Новости 👉 База вопросов
Для улучшения производительности используйте кеширование (например, Opcache), минимизируйте сложность запросов к базе данных с помощью индексации и подготовленных запросов, а также обновляйте РНР до последней версии. Сократите использование тяжёлых библиотек, оптимизируйте работу с файлами и используйте CDN для загрузки статического контента.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
😐 При создании Eloquent-скоупов, если у вас есть одинаковые скоупы в нескольких моделях, использующие одно и то же имя колонки, указывайте имя таблицы в качестве префикса.
Это поможет избежать SQL-ошибок вида "ambiguous column".
Источник: проект Larasense
https://github.com/nabilhassen/larasense/blob/main/app/Models/Material.php
👉 Новости 👉 База вопросов
Это поможет избежать SQL-ошибок вида "ambiguous column".
Источник: проект Larasense
https://github.com/nabilhassen/larasense/blob/main/app/Models/Material.php
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🫠 Нужно добавить несколько колонок в определённую позицию таблицы?
Используйте метод
Ссылка на документацию: https://laravel.com/docs/12.x/migrations#column-order
👉 Новости 👉 База вопросов
Используйте метод
after() вместе с замыканием, чтобы сгруппировать несколько связанных колонок и вставить их после уже существующей колонки.Ссылка на документацию: https://laravel.com/docs/12.x/migrations#column-order
Please open Telegram to view this post
VIEW IN TELEGRAM
💯1
#Собес #php
🤔 Как РНР обрабатывает несколько запросов?
💬 Кратко:
PHP обрабатывает запросы изолированно, создавая новый процесс или поток для каждого запроса, в зависимости от конфигурации сервера. Например, Apache с модулем mod_php использует модель мультипроцессов, а PHP-FPM (FastCGI Process Manager), часто используемый с Nginx, использует пул процессов для обработки запросов. Эти процессы работают независимо, и каждый запрос не влияет на другие.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
PHP обрабатывает запросы изолированно, создавая новый процесс или поток для каждого запроса, в зависимости от конфигурации сервера. Например, Apache с модулем mod_php использует модель мультипроцессов, а PHP-FPM (FastCGI Process Manager), часто используемый с Nginx, использует пул процессов для обработки запросов. Эти процессы работают независимо, и каждый запрос не влияет на другие.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
😘 Совет по Laravel
Используй
Отлично подходит для массового импорта, когда часть данных уже может существовать.
Метод тихо игнорирует ограничения, не выбрасывая исключения.
Ссылка на документацию: https://laravel.com/docs/12.x/queries#insert-statements
👉 Новости 👉 База вопросов
Используй
insertOrIgnore() для вставки записей с пропуском дубликатов без выброса ошибокОтлично подходит для массового импорта, когда часть данных уже может существовать.
Метод тихо игнорирует ограничения, не выбрасывая исключения.
Ссылка на документацию: https://laravel.com/docs/12.x/queries#insert-statements
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
#ЛитКод
Задача: 720. Longest Word in Dictionary
Если задан массив строк words, представляющих английский словарь, верните самое длинное слово из words, которое может быть построено по одному символу из других слов из words. Если существует более одного возможного ответа, верните самое длинное слово с наименьшим лексикографическим порядком. Если ответа нет, верните пустую строку. Обратите внимание, что слово должно строиться слева направо, причем каждый дополнительный символ добавляется в конец предыдущего слова.
Пример:
👨💻 Алгоритм:
1⃣ Отсортируйте массив слов по длине и лексикографическому порядку.
2⃣ Используйте множество для отслеживания слов, которые можно построить.
3⃣ Пройдите по каждому слову в отсортированном массиве и добавьте его в множество, если все его префиксы уже существуют в множестве.
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 720. Longest Word in Dictionary
Если задан массив строк words, представляющих английский словарь, верните самое длинное слово из words, которое может быть построено по одному символу из других слов из words. Если существует более одного возможного ответа, верните самое длинное слово с наименьшим лексикографическим порядком. Если ответа нет, верните пустую строку. Обратите внимание, что слово должно строиться слева направо, причем каждый дополнительный символ добавляется в конец предыдущего слова.
Пример:
Input: words = ["w","wo","wor","worl","world"]
Output: "world"
function longestWord($words) {
sort($words);
$validWords = ["" => true];
$longest = "";
foreach ($words as $word) {
if (isset($validWords[substr($word, 0, -1)])) {
$validWords[$word] = true;
if (strlen($word) > strlen($longest)) {
$longest = $word;
}
}
}
return $longest;
}Please open Telegram to view this post
VIEW IN TELEGRAM
LeetCode
Longest Word in Dictionary - LeetCode
Can you solve this real interview question? Longest Word in Dictionary - Given an array of strings words representing an English Dictionary, return the longest word in words that can be built one character at a time by other words in words.
If there is more…
If there is more…
#полезное
😎 Релиз PhpStorm 2025.2
https://blog.jetbrains.com/phpstorm/2025/08/phpstorm-2025-2-is-now-available/
👉 Новости 👉 База вопросов
https://blog.jetbrains.com/phpstorm/2025/08/phpstorm-2025-2-is-now-available/
Please open Telegram to view this post
VIEW IN TELEGRAM
The JetBrains Blog
PhpStorm 2025.2 Is Now Available | The PhpStorm Blog
Along with making Laravel Idea free for PhpStorm users, this release brings improvements to the remote development experience, JetBrains AI tools, and more. Download PhpStorm 2025.2 Junie co
#полезное
😊 Нужно получать значения из входных данных в нужном типе, а не всегда как строки?
Используй методы
Больше никакого ручного кастинга.
Документация: https://laravel.com/docs/12.x/requests#retrieving-input
👉 Новости 👉 База вопросов
Используй методы
integer(), boolean(), array(), date() и enum()Больше никакого ручного кастинга.
Документация: https://laravel.com/docs/12.x/requests#retrieving-input
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
#полезное
😇 Сегодня я узнал о синтаксисе
Выглядит прям как обычное английское предложение, очень читаемо
Источник: https://github.com/laravelstart/laravelstart/blob/main/routes/web.php
👉 Новости 👉 База вопросов
when(app()->isLocal()) в файле маршрутов Laravel.Выглядит прям как обычное английское предложение, очень читаемо
Источник: https://github.com/laravelstart/laravelstart/blob/main/routes/web.php
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #php
🤔 Как работает жизненный цикл запроса в РНР?
Жизненный цикл запроса в РНР начинается с получения НТТР-запроса сервером. Сервер передает запрос РНР-интерпретатору, который выполняет скрипт, взаимодействует с базой данных (если требуется), и генерирует ответ в формате HTML или другого типа контента. Ответ отправляется клиенту, где отображается в браузере. Каждый запрос обрабатывается изолированно, и состояние приложения между запросами не сохраняется без использования сессий или базы данных.
👉 Новости 👉 База вопросов
Жизненный цикл запроса в РНР начинается с получения НТТР-запроса сервером. Сервер передает запрос РНР-интерпретатору, который выполняет скрипт, взаимодействует с базой данных (если требуется), и генерирует ответ в формате HTML или другого типа контента. Ответ отправляется клиенту, где отображается в браузере. Каждый запрос обрабатывается изолированно, и состояние приложения между запросами не сохраняется без использования сессий или базы данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
❤1