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

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

Купить рекламу: https://telega.in/c/web_craft
Download Telegram
Retry-механизмы в Laravel

Статья рассматривает механизмы повторных попыток в Laravel. Автор обсуждает, как обрабатывать ситуации, когда запросы к внешним сервисам или базам данных не удается выполнить с первой попытки.

👉 @web_craft | #laravel
Добавление пользовательских методов в Laravel

Collection::macro – это функция, предоставляющая возможность добавлять пользовательские методы к классу Collection. Это позволяет расширить функционал Laravel Collections, добавляя методы, специфичные для вашего приложения.


Примеры:
Collection::macro('toUpper', function () {
return $this->map(function ($item) {
return strtoupper($item);
});
});

$collection = collect(['hello', 'world']);
$upper = $collection->toUpper();

// ['HELLO', 'WORLD']


В данном примере мы добавили метод toUpper(), который преобразует все элементы коллекции в верхний регистр.


Collection::macro('filterEven', function () {
return $this->filter(function ($item) {
return $item % 2 === 0;
});
});

$collection = collect([1, 2, 3, 4, 5]);
$even = $collection->filterEven();

// [2, 4]


В этом примере мы добавили метод filterEven(), который фильтрует коллекцию, оставляя только четные числа.


👉 @web_craft | #laravel
Назначение группировки middleware в Laravel

Для чего используется группировка middleware в Laravel?

👉 @web_craft | #laravel
Контекстные данные для журналов Laravel

Log::withContext() - это метод в Laravel 11, который позволяет добавлять контекстные данные к журнальным записям. Вы можете использовать его для обогащения журнала информацией, связанной с текущим запросом или задачей в очереди. Например:

Log::withContext(['user_id' => $user->id])->info('User logged in');

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

👉 @web_craft | #laravel
Защита от CSRF в Laravel

@csrf - это директива Blade, используемая в Laravel для защиты веб-приложений от атак с межсайтовой подделкой запросов (CSRF).

Как работает @csrf:

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

2. Отправка токена: Когда пользователь отправляет форму, браузер отправляет токен CSRF вместе с другими данными формы на сервер.

3. Валидация токена: Laravel проверяет, совпадает ли токен CSRF, отправленный с формой, с токеном, хранящимся в сессии пользователя.


Использование @csrf:

Просто добавьте @csrf внутрь тега формы в вашем Blade-шаблоне. Laravel автоматически позаботится о генерации и добавлении скрытого поля токена CSRF.

<form method="POST" action="/submit-form">
@csrf
<button type="submit">Отправить</button>
</form>


👉 @web_craft | #laravel
Превращение событий PostgreSQL в события Laravel

В статье рассказывается, как можно преобразовать события, возникающие в PostgreSQL, в события Laravel.

👉 @web_craft | #laravel
Назначение Collection::macro

Что такое Collection::macro?

👉 @web_craft | #laravel
Понимание Laravel Sanctum

Статья рассматривает Laravel Sanctum – библиотеку для аутентификации и авторизации в Laravel.

👉 @web_craft | #laravel
Работа метода Log::withContext()

Что делает метод Log::withContext()?

Сомневаетесь? Рассматривали этот функционал в посте 15.04.2024.

👉 @web_craft | #laravel
Создание и управление JSON-ответами

Response()->json() — это метод в Laravel, который упрощает процесс создания JSON-ответов,устанавливая заголовок Content-Type как application/json. Это гарантирует правильное распознавание данных клиентскими приложениями.

Пример API, возвращающего информацию о пользователе:
use Illuminate\Http\Request;
use App\Models\User;

public function getUser(Request $request, $id) {
$user = User::find($id);
if ($user) {
return response()->json([
'success' => true,
'message' => 'Пользователь найден',
'data' => $user
]);
} else {
return response()->json([
'success' => false,
'message' => 'Пользователь не найден',
'data' => null
], 404);
}
}


Find($id) ищет пользователя по ID. Если найден, возвращается JSON с данными и статусом 200. Если нет — JSON с ошибкой и статусом 404. Этот подход характерен для RESTful API.

👉 @web_craft | #laravel
Как реализовать множественную аутентификацию в Laravel

Статья рассказывает о том, как создать гибкую систему множественной аутентификации в Laravel для веб-приложений, которая позволяет разным типам пользователей, таким как администраторы и обычные пользователи, входить в систему через различные процессы аутентификации.

👉 @web_craft | #laravel
Отправка токена CSRF

Какие данные отправляются на сервер вместе с токеном CSRF при отправке формы?

Функционал CSRF в Laravel разбирали в посте от 22.04.2024.

👉 @web_craft | #laravel
Гайд по мягкому удалению в Laravel

В статье объясняется, как использовать функционал мягкого удаления для управления записями базы данных без их физического удаления. С помощью мягкого удаления, записи остаются в базе данных, но помечаются как удалённые, что позволяет восстанавливать данные при необходимости. Автор статьи рассматривает, как настроить мягкое удаление, использовать его в различных сценариях и как это влияет на запросы к базе данных в Laravel.

👉 @web_craft | #laravel
Улучшите свои запросы в Laravel Eloquent с помощью Tappable Scopes

Статья рассказывает о том, как использовать "tappable scopes" в Laravel для улучшения запросов Eloquent. Этот метод позволяет создавать более чистый и удобочитаемый код при работе с Eloquent-запросами, особенно при создании сложных фильтров и условий. Автор приводит примеры создания и использования таких "tappable scopes" для различных ситуаций, например, для фильтрации постов по дате публикации или выборки записей по ID пользователя.

👉 @web_craft | #laravel
Функция для JSON-ответов Laravel?

Какую функцию Laravel использует для создания JSON-ответов?

Забыли? Вернитесь к посту от 06.05.2024, в котором разбирали этот функционал.

👉 @web_craft | #laravel
Анонимные миграции в Laravel

Анонимные миграции – это функция Laravel, позволяющая создавать миграции без классов. Это упрощает управление миграциями и делает структуру проекта чище.

Как это работает:
Вы определяете миграции в PHP файлах с использованием методов up() и down(), которые Laravel автоматически обрабатывает, не требуя от вас создания классов миграции.

Пример использования:
// Создание миграции для таблицы пользователей
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

// Метод up для создания таблицы
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});

// Метод down для удаления таблицы
Schema::dropIfExists('users');


👉 @web_craft | #laravel
Преобразование запросов и ответов API в Laravel 11

В статье рассматривается проблема различия в соглашениях об именовании в PHP (snake_case) и JavaScript (camelCase). Это может вызвать проблемы при работе с Next.js на фронтенде и Laravel на бэкенде в качестве традиционного REST API2.

Автор предлагает решение этой проблемы с помощью Laravel resources.

👉 @web_craft | #laravel
Функция анонимных миграций

Что такое анонимные миграции в Laravel?

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

👉 @web_craft | #laravel
Валидация в Laravel

Метод Validator::extend() предоставляет возможность создавать собственные правила валидации, выходя за рамки стандартного набора, предоставляемого Laravel.

Применение:
Validator::extend('older_than', function ($attribute, $value, $parameters) {
$minAge = $parameters[0] ?? 18;
return Carbon::parse($value)->age >= $minAge;
});


В данном примере определяется правило older_than, которое проверяет, является ли указанная дата ($value) датой рождения человека, достигшего возраста не менее $minAge лет.


После определения пользовательского правила, его можно использовать в валидаторе данных наряду со встроенными правилами:
$validator = Validator::make($data, [
'birthdate' => 'required|date|older_than:21',
]);


👉 @web_craft | #laravel
Как поднять уровень анализа вашего Laravel-приложения с 0 до 9 в Larastan

В статье рассказывается, что такое Larastan и какие преимущества дает его использование. Также подробно описывается, как настроить Larastan, и показано, как поэтапно повышать уровень анализа с 0 до 9. На каждом уровне в статье рассказывается, какие типы ошибок будет находить Larastan.

👉 @web_craft | #laravel