你知道Laravel课程是在飞行中使用的。如:
Auth::login()
我添加了自己的自定义库HTMLER()
然后我可以像Laravel那样表现?我只是需要我的功能才能在没有我的情况下实现它,以便在每次尝试时都能实现它。
例如,我有一个我想要使用的函数get_files()
:
HTMLER::get_files()
或HTML->get_files()
每当我想要而不是每次都要创建一个类的实例时:
new HTMLER();
$x->get_files()
太尴尬......
答案 0 :(得分:3)
你已经上过课了,所以应该很容易。
确保您的班级位于正在自动加载的目录中。您可以在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.
});
}
}
请务必将您的服务提供商添加到providers
中的config/app.php
数组中。
'Htmler',
接下来,您可以创建Facade。 (再次自动加载)。告诉Laravel你希望能在你需要的时候给你的课程打电话。
use Illuminate\Support\Facades\Facade;
class Htmler extends Facade {
protected static function getFacadeAccessor() { return 'Htmler'; }
}
如果您愿意,您还可以为Facade创建一个别名,以便您可以使用您想要的名称...只需添加到aliases
中的config/app.php
数组即可。简单的例子。
'HTMLER' => 'Htmler',
这些内容几乎来自http://laravel.com/docs/facades和http://laravel.com/docs/ioc#service-providers
的文档答案 1 :(得分:1)
以下是我开始执行此操作时所遵循的教程:http://fideloper.com/create-facade-laravel-4