WebCraft - ремесло веб разработки
6.49K subscribers
1.69K photos
254 videos
2 files
223 links
Интересуешься php , js , css , html , Laravel , Vue ? Этот канал для тебя

Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront
Менеджер по рекламе: @Spiral_Yuri

Купить рекламу: https://telega.in/c/web_craft
Download Telegram
Условный доступ к связям Eloquent

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

Например, если вам нужно проверить или использовать загруженную связь, whenLoaded позволяет сделать это условно, без риска получить ошибку. Метод принимает два параметра: имя связи и callback-функцию, которая выполнится, если связь загружена.
$user = User::with('profile')->find(1);

$user->whenLoaded('profile', function ($profile) {
// Код, который выполнится только если связь profile загружена
return $profile->full_name;
});

В этом примере, если связь profile загружена, будет вызвана callback-функция, которая возвращает полное имя пользователя. Если связь не загружена, код внутри callback не выполнится, что предотвращает возможные ошибки.

👉 @web_craft | #laravel
Typesense: невероятно быстрый полнотекстовый поиск в Laravel

Статья рассказывает о том, как повысить производительность полнотекстового поиска в приложениях Laravel, перейдя с MySQL на Typesense.

👉 @web_craft | #laravel
Использование хука eloquent.adding в Laravel

В каком методе модели определяется использование хука eloquent.adding?

Если забыли, то вернитесь к посту от 12.08.2024.

👉 @web_craft | #laravel
Выполнение задач после отправки ответа в 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
Работа с директивой switch в Blade Laravel

Что делает директива @switch в Blade Laravel?

Если забыли, то вернитесь к посту от 19.08.2024.

👉 @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
Работа с методом whenLoaded

Какие параметры принимает метод whenLoaded?

Если забыли, то вернитесь к посту от 26.08.2024.

👉 @web_craft | #laravel
Очистка журнала запросов в 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