Выполнение задач после отправки ответа в Laravel
Метод
Пример:
В этом примере задача
👉 @web_craft | #laravel
Метод
dispatchAfterResponse()
в Laravel позволяет откладывать выполнение задач до того момента, когда ответ уже отправлен пользователю.Пример:
use App\Jobs\ProcessData;
use Illuminate\Http\Request;
class DataController extends Controller
{
public function store(Request $request)
{
// Обработка данных и сохранение их в базе
$data = $request->all();
// Допустим, сохраняем данные в базу данных
$record = DataModel::create($data);
// Отправка ответа пользователю
$response = response()->json(['message' => 'Данные успешно сохранены']);
// Выполнение задачи после отправки ответа
ProcessData::dispatchAfterResponse($record);
return $response;
}
}
В этом примере задача
ProcessData
будет выполнена уже после того, как клиент получит ответ от сервера. 👉 @web_craft | #laravel
История успеха автоматизированного перехода с FuelPHP на Laravel для 400k+ строк приложения
Статья описывает успешный опыт автоматизированной миграции крупного веб-приложения с 400,000 строк кода с фреймворка FuelPHP на Laravel.
👉 @web_craft | #laravel
Статья описывает успешный опыт автоматизированной миграции крупного веб-приложения с 400,000 строк кода с фреймворка FuelPHP на Laravel.
👉 @web_craft | #laravel
Работа с директивой switch в Blade Laravel
Что делает директива
Если забыли, то вернитесь к посту от19.08.2024 .
👉 @web_craft | #laravel
Что делает директива
@switch
в Blade Laravel?Если забыли, то вернитесь к посту от
👉 @web_craft | #laravel
Управление синхронизацией с поисковыми индексами
Метод
По умолчанию Laravel синхронизирует изменения модели с поисковыми индексами при создании, обновлении или удалении записей. Однако, бывают случаи, когда не требуется синхронизация или она может быть выполнена позже. В таких ситуациях метод
Пример:
Метод
👉 @web_craft | #laravel
Метод
withoutSyncingToSearch()
в Laravel используется для предотвращения автоматической синхронизации изменений модели с поисковыми индексами.По умолчанию Laravel синхронизирует изменения модели с поисковыми индексами при создании, обновлении или удалении записей. Однако, бывают случаи, когда не требуется синхронизация или она может быть выполнена позже. В таких ситуациях метод
withoutSyncingToSearch()
помогает временно отключить автоматическую синхронизацию.Пример:
use App\Models\Post;
// Обновление модели без синхронизации с поисковым индексом
Post::withoutSyncingToSearch(function () {
Post::find(1)->update(['title' => 'Обновленный заголовок']);
});
Метод
withoutSyncingToSearch
используется для обновления заголовка записи Post без синхронизации этих изменений с поисковым индексом. Как только функция замыкания выполнится, синхронизация автоматически включится снова.👉 @web_craft | #laravel
От нуля до 35 миллионов: трудности масштабирования Laravel с помощью Octane
Статья описывает опыт автора по масштабированию веб-приложения, разработанного с использованием Laravel, с помощью Octane. Автор рассказывает о трудностях, с которыми он столкнулся при увеличении производительности приложения на фоне роста пользовательской базы до 35 миллионов запросов. В статье рассматриваются технические аспекты оптимизации и проблемы, такие как сложности с памятью, узкими местами в архитектуре и необходимость постоянного мониторинга и корректировок.
👉 @web_craft | #laravel
Статья описывает опыт автора по масштабированию веб-приложения, разработанного с использованием Laravel, с помощью Octane. Автор рассказывает о трудностях, с которыми он столкнулся при увеличении производительности приложения на фоне роста пользовательской базы до 35 миллионов запросов. В статье рассматриваются технические аспекты оптимизации и проблемы, такие как сложности с памятью, узкими местами в архитектуре и необходимость постоянного мониторинга и корректировок.
👉 @web_craft | #laravel
Работа с методом whenLoaded
Какие параметры принимает метод
Если забыли, то вернитесь к посту от26.08.2024 .
👉 @web_craft | #laravel
Какие параметры принимает метод
whenLoaded
?Если забыли, то вернитесь к посту от
👉 @web_craft | #laravel
Очистка журнала запросов в Laravel
Когда вы работаете с базой данных в Laravel, часто возникает необходимость отслеживать выполненные запросы для отладки и мониторинга производительности. Laravel предоставляет встроенную возможность вести журнал всех SQL-запросов, выполненных в рамках одного запроса HTTP. Для этого используется метод
Здесь на помощь приходит метод
Пример:
👉 @web_craft | #laravel
Когда вы работаете с базой данных в Laravel, часто возникает необходимость отслеживать выполненные запросы для отладки и мониторинга производительности. Laravel предоставляет встроенную возможность вести журнал всех SQL-запросов, выполненных в рамках одного запроса HTTP. Для этого используется метод
DB::enableQueryLog()
, который активирует журнал запросов. Однако, когда журнал становится слишком большим или его данные больше не нужны, вам может понадобиться его очистить.Здесь на помощь приходит метод
flushQueryLog()
. Этот метод позволяет быстро очистить текущий журнал запросов.Пример:
use Illuminate\Support\Facades\DB;
// Включение журнала запросов
DB::enableQueryLog();
// Выполнение запросов
$users = DB::table('users')->get();
$posts = DB::table('posts')->get();
// Очистка журнала запросов
DB::flushQueryLog();
// Проверка журнала запросов
$log = DB::getQueryLog();
print_r($log); // Пустой массив, если журнал был очищен
👉 @web_craft | #laravel
Пользовательские карточки Laravel Pulse
Статья объясняет, как создать пользовательские карточки в Laravel Pulse для отображения метрик, таких как количество запросов на каждую машину Fly.io. В ней описывается создание Livewire-компонента, настройка отображения данных на карточке, перехват запросов с помощью middleware и запись этих данных в таблицы Pulse. В конце показывается, как вывести собранные данные на кастомной карточке в панели управления Pulse.
👉 @WebCraft | #laravel
Статья объясняет, как создать пользовательские карточки в Laravel Pulse для отображения метрик, таких как количество запросов на каждую машину Fly.io. В ней описывается создание Livewire-компонента, настройка отображения данных на карточке, перехват запросов с помощью middleware и запись этих данных в таблицы Pulse. В конце показывается, как вывести собранные данные на кастомной карточке в панели управления Pulse.
👉 @WebCraft | #laravel
Работа с методом dispatchAfterResponse() в Laravel
Когда выполняется задача, отправленная с помощью метода
Если забыли, то вернитесь к посту от02.09.2024 .
👉 @web_craft | #laravel
Когда выполняется задача, отправленная с помощью метода
dispatchAfterResponse()
?Если забыли, то вернитесь к посту от
👉 @web_craft | #laravel
Защита полей модели
В Laravel механизм массового заполнения (
Предположим, у нас есть модель
В примере поля
👉 @WebCraft | #laravel
В Laravel механизм массового заполнения (
Mass Assignment
) позволяет быстро создавать или обновлять модели, заполняя их атрибуты массивом данных. Однако, чтобы предотвратить нежелательное или вредоносное заполнение полей, важно правильно настроить защиту через свойства $fillable
или $guarded
.$guarded
— это массив полей модели, которые запрещено массово заполнять. В отличие от $fillable
, который указывает на разрешенные для массового заполнения поля, $guarded
работает по принципу "запрещено всё, кроме". Это значит, что все поля модели защищены от массового заполнения, кроме тех, которые явно не указаны в массиве $guarded
.Предположим, у нас есть модель
User
, и мы хотим запретить массовое заполнение полей is_admin
и password
, чтобы они не могли быть изменены через массовое заполнение.class User extends Model
{
protected $guarded = ['is_admin', 'password'];
}
В примере поля
is_admin
и password
будут защищены от массового заполнения.👉 @WebCraft | #laravel