你知道在Laravel中,类是即时使用的。如:
Auth::login()
我已经添加了自己的自定义库HTMLER()
那么我怎样才能表现得像 Laravel?我只需要已经实例化我的函数,而无需我在每次尝试时都实例化它。
例如,我有一个我想使用的函数get_files()
:
HTMLER::get_files()
或HTML->get_files()
每当我想每次都必须创建类的实例时:
new HTMLER();
$x->get_files()
太尴尬了...
你已经有了你的类,所以它应该相当容易。
确保您的类位于正在自动加载的目录中。 您可以在composer.json
文件中看到自动加载的目录。 或者,如果您愿意,可以添加另一个目录。
服务提供商
为您的班级创建服务提供商。 同样,请确保它位于自动加载的某个位置。 这基本上是为了告诉Laravel如何在你需要的时候让你的班级。
use Illuminate'Support'ServiceProvider;
class HtmlerServiceProvider extends ServiceProvider {
public function register()
{
$this->app->bind('Htmler', function()
{
return new Htmler; // Name of your class, be sure to include the namespace if you are using one.
});
}
}
请务必将您的服务提供商添加到 config/app.php
中的 providers
数组中。
'Htmler',
外观
接下来,您可以创建外观。 (再次自动加载)。 告诉Laravel您希望在需要时如何打电话给您的班级。
use Illuminate'Support'Facades'Facade;
class Htmler extends Facade {
protected static function getFacadeAccessor() { return 'Htmler'; }
}
别名
如果您愿意,您还可以为立面创建一个别名,以便您可以使用您想要称呼它的任何名称...... 只需添加到 config/app.php
中的aliases
数组即可。 简单的例子。
'HTMLER' => 'Htmler',
这些几乎来自 http://laravel.com/docs/facades 和 http://laravel.com/docs/ioc#service-providers 的文档
这是我
开始这样做时遵循的教程:http://fideloper.com/create-façade-laravel-4