- forward_static_call: documentation ( source)
<?php
trait EloquentValidatingTrait
{
// Some declarations skipped
/**
* Eloquent will call this on model boot
*/
public static function bootEloquentValidatingTrait()
{
// Calling Model::saving() and asking it to execute assertIsValid() before model is saved into database
$savingCallable = [static::class, 'saving'];
$validationCallable = [static::class, 'assertIsValid'];
forward_static_call($savingCallable, $validationCallable);
}
}
class MyClass {
use EloquentValidatingTrait;
static function saving() {}
static function assertIsValid() {}
}
$myClass = new MyClass();
$myClass->bootEloquentValidatingTrait();