Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Можете объяснить сакральный смысл следующего?
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*/
public function boot()
{
// ...
}
/**
* Register any application services.
*/
public function register()
{
// ...
}
}
С точки зрения ООП, полиморфизма и всего такого, базовый класс ServiceProvider должен был бы содержать методы boot() и register(), пускай и пустые. И в нужный момент запускать `$provider->boot()`, не задумываясь, переопределён ли метод в потомке или нет.
Но этих методов в предке нет и вместо этого Laravel делает следующее (Illuminate\Foundation\Application):
protected function bootProvider(ServiceProvider $provider)
{
if (method_exists($provider, 'boot')) {
return $this->call([$provider, 'boot']);
}
}
И такое в очень многих местах.
Есть в этом какой-то смысл или скрытое преимущество?
Не в сети
Страницы 1