laravel太多外墙

时间:2014-09-09 05:26:24

标签: php laravel facade

如果我在基于此answer的Laravel应用程序中创建了许多Facade,我的应用程序性能会降低吗?

1 个答案:

答案 0 :(得分:2)

Facade只是服务定位器,它们不会直接影响您的应用程序性能,但您的服务会。您拥有的服务提供商越多,您启动的服务和类就越多,因此,您用于启动应用程序的内存,磁盘和处理器就越多,因此您的应用程序需要更多时间来启动。 / p>

但是Laravel让你满意。您可以defer服务提供商中的服务实例化例程:

class ServiceProvider {

    /**
     * Indicates if loading of the provider is deferred.
     *
     * @var bool
     */
    protected $defer = true;

    /**
     * Get the services provided by the provider.
     *
     * @return array
     */
    public function provides()
    {
        return array('put-here-your-service-alias');
    }

}

当您的应用真正需要访问该特定服务时,Laravel才会加载您的服务提供商。