Бұл жазба автоматты түрде аударылған. Бастапқы тіл: Ағылшын
Кіріспе
Laravel, ең танымал PHP шеңберлерінің бірі, веб-қосымшаларды әзірлеуге арналған құралдардың қуатты жиынтығын ұсынады. Осындай құралдардың бірі-модельдік оқиғалар (Model Events). Бұл оқиғалар модельдің өмірлік циклінің әртүрлі сәттеріне жауап беруге мүмкіндік береді, мысалы, құру, жаңарту, жою және басқа мәліметтер базасының операциялары. Бұл мақалада біз Laravel-де модельдік оқиғаларды қалай пайдалану керектігін, оқиғалардың қандай түрлері бар екенін және олар сіздің қосымшаңызды жасауға қалай көмектесетінін қарастырамыз.
Модельдің негізгі оқиғалары
Laravel өз модельдерінде қолдануға болатын бірқатар кіріктірілген оқиғаларды ұсынады. Мұнда модельдің негізгі оқиғаларының тізімі берілген:
- Жасау: дерекқорда жаңа жазба жасамас бұрын шақырылады.
- Жасалған: дерекқор жазбасын сәтті жасағаннан кейін шақырылады.
- Жаңарту: бар жазбаны жаңартпас бұрын шақырылады.
- Жаңартылған: жазбаны сәтті жаңартқаннан кейін шақырылады.
- Сақтау: жасау немесе жаңарту болсын, жазбаны сақтамас бұрын шақырылады.
- Сақталған: жазбаны сәтті сақтағаннан кейін шақырылады.
- Жою: жазбаны жоймас бұрын шақырылады.
- Жойылған: жазбаны сәтті жойғаннан кейін шақырылады.
- Қалпына келтіру: жазбаны Себеттен қалпына келтірмес бұрын шақырылады (егер жұмсақ жою қолданылса).
- Қалпына келтірілді: жазбаны сәтті қалпына келтіргеннен кейін шақырылады.
Бұл оқиғалар логинг, деректерді тексеру, байланысты деректерді синхрондау және модель деректерін өзгерту кезінде орындалатын басқа тапсырмалар сияқты қосымша әрекеттерді орындауға мүмкіндік береді.
Модель оқиғаларын тіркеу
Laravel-де модель оқиғаларын тіркеу үшін модельдегі жүктеу әдісін қолдануға болады. Boot әдісінің ішінде сіз әртүрлі оқиғаларға арналған өңдеушілерді анықтай аласыз. Міне, мұны қалай жасауға болатынының мысалы:
use App\Models\Post;
use Illuminate\Support\Facades\Log;
class Post extends Model
{
protected static function boot()
{
parent::boot();
static::creating(function ($post) {
Log:: info ('жаңа жазба жасау:', ['title' = >p post - >title]);
});
static::updating(function ($post) {
Log:: info ('жазбаны жаңарту:', ['title' = >p post - >title]);
});
static::deleting(function ($post) {
Log:: info ('жазбаны жою:', ['title' = >p post - >title]);
});
}
}
Бұл мысалда біз creating, updating және deleting оқиғалары үшін өңдеушілерді тіркейміз. Осы әрекеттердің бірі post моделімен орындалған сайын журналға тиісті хабарлама жазылады.
Оқиға тыңдаушыларын құру
Laravel-де сіз модельдік оқиғаларды өңдеу үшін бөлек тыңдаушылар жасай аласыз. Бұл кодты жақсырақ ұйымдастыруға және оны оқуға мүмкіндік береді. Мысалы, пайдаланушыға хабарлама жіберетін created оқиғасы үшін тыңдаушы жасауға болады:
namespace App\Listeners;
use App\Events\PostCreated;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use App\Notifications\PostCreatedNotification;
class SendPostCreatedNotification
{
public function handle(PostCreated $event)
{
$event->post->user->notify(new PostCreatedNotification($event->post));
}
}
Содан кейін бұл тыңдаушыны EventServiceProvider файлына тіркеуге болады:
protected $listen = [
'App\Events\PostCreated' => [
'App\Listeners\SendPostCreatedNotification',
],
];
Қорытынды
Laravel-дегі модельдік оқиғалар-бұл модельдердегі өзгерістерге жауап беруге және логин, валидация және Хабарландырулар сияқты әртүрлі әрекеттерді орындауға мүмкіндік беретін қуатты құрал. Модельдік оқиғаларды қолдана отырып, сіз кодты ұйымдасқан және түсінуді жеңілдету арқылы қосымшаның дамуы мен қолдауын едәуір жеңілдете аласыз.
Бұл механизм деректермен икемді жұмыс істеудің кең мүмкіндіктерін ұсынады және қосымша функционалдылықты модельдің өмірлік цикліне оңай біріктіруге мүмкіндік береді, бұл Laravel-ді веб-қосымшаларды әзірлеуге арналған ең ыңғайлы және қуатты құрылымдардың біріне айналдырады.
Introduction
Laravel, one of the most popular PHP frameworks, provides a powerful set of tools for developing web applications. One of these tools is Model Events. These events allow you to respond to various points in the model lifecycle, such as creation, update, deletion, and other database operations. In this article, we will look at how to use model events in Laravel, what types of events exist and how they can help in the development of your application.
The main events of the model
Laravel offers a number of built-in events that can be used in its models. Here is a list of the main events of the model:
- Creating: called before creating a new record in the database.
- Created: called after successfully creating a record in the database.
- Updating: called before updating an existing record.
- Updated: Called after a successful record update.
- Saving: Called before saving a record, whether it is creating or updating.
- Saved: Called after the record has been successfully saved.
- Deleting: Called before deleting the record.
- Deleted: Called after the record has been successfully deleted.
- Restoring: called before restoring an entry from the trash (if soft delete is used).
- Restored: Called after the record has been successfully restored.
These events allow you to perform additional actions such as logging, data validation, synchronization of related data, and other tasks that need to be performed when changing model data.
Registering model events
To register model events in Laravel, you can use the boot method in the model. Inside the boot method, you can define handlers for various events. Here is an example of how to do this:
use App\Models\Post;
use Illuminate\Support\Facades\Log;
class Post extends Model
{
protected static function boot()
{
parent::boot();
static::creating(function ($post) {
Log::info('Creating a new record:', ['title' => $post->title]);
});
static::updating(function ($post) {
Log::info('Updating the record:', ['title' => $post->title]);
});
static::deleting(function ($post) {
Log::info('Deleting an entry:', ['title' => $post->title]);
});
}
}
In this example, we register handlers for the creating, updating, and deleting events. Each time one of these actions is performed with the Post model, the corresponding message will be recorded in the log.
Creating event listeners
In Laravel, you can create separate listeners to handle model events. This allows you to better organize the code and make it more readable. For example, you can create a listener for the created event that will send a notification to the user:
namespace App\Listeners;
use App\Events\PostCreated;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use App\Notifications\PostCreatedNotification;
class SendPostCreatedNotification
{
public function handle(PostCreated $event)
{
$event->post->user->notify(new PostCreatedNotification($event->post));
}
}
This listener can then be registered in the EventServiceProvider file:
protected $listen = [
'App\Events\PostCreated' => [
'App\Listeners\SendPostCreatedNotification',
],
];
Conclusion
Model Events in Laravel is a powerful tool that allows you to react to changes in models and perform various actions such as logging, validation, and notifications. By using model events, you can greatly simplify the development and maintenance of your application, making the code more organized and easier to understand.
This mechanism provides ample opportunities for flexible work with data and allows you to easily integrate additional functionality into the lifecycle of the model, which makes Laravel one of the most convenient and powerful frameworks for developing web applications.