laravel 5 : 扩展 Facade
laravel 5 : Extend a Facade
我需要根据客户端处理不同类型的数据库。
我创建了一个名为 MyDBFacade 的 Facade,我可以在其中调用我自己的函数。
例如:
MyDBFacade::createDBUser("MyUser"); // will create a DB user whatever I'm using Postgres or SQL Server
是否有可能以一种我可以添加自己的函数然后调用 DB::createUser("MyUser")
的方式扩展框架 Facade DB::?
如有任何线索或想法,我们将不胜感激。
提前致谢,祝您有愉快的一天。
您可以像这样创建/扩展 Facade:
<?php namespace YourNameSpace\Facades;
class MyDBFacade extends Illuminate\Support\Facades\DB {
/**
* Create your custom methods here...
*/
public static function anyMethod($active)
{
/// do what you have to do
}
}
然后将其替换(或添加为新的)到您的 app/config/app.php
:
'aliases' => array(
'MyDBFacade' => 'YourNameSpace\Facades\MyEventFacade::class',
),
记得最后执行composer dump-autoload
希望对您有所帮助!
假设您在 app/Facades/MyDBFacade.php
中定义了自定义外观
<?php
namespace App\Facades;
use Illuminate\Support\Facades\DB;
class MyDBFacade extends DB
{
// ...
}
您只需更改 config/app.php
中的单行,从
'DB' => Illuminate\Support\Facades\DB::class,
到
'DB' => App\Facades\MyDBFacade::class,
现在应该一切正常了。
我需要根据客户端处理不同类型的数据库。
我创建了一个名为 MyDBFacade 的 Facade,我可以在其中调用我自己的函数。
例如:
MyDBFacade::createDBUser("MyUser"); // will create a DB user whatever I'm using Postgres or SQL Server
是否有可能以一种我可以添加自己的函数然后调用 DB::createUser("MyUser")
的方式扩展框架 Facade DB::?
如有任何线索或想法,我们将不胜感激。
提前致谢,祝您有愉快的一天。
您可以像这样创建/扩展 Facade:
<?php namespace YourNameSpace\Facades;
class MyDBFacade extends Illuminate\Support\Facades\DB {
/**
* Create your custom methods here...
*/
public static function anyMethod($active)
{
/// do what you have to do
}
}
然后将其替换(或添加为新的)到您的 app/config/app.php
:
'aliases' => array(
'MyDBFacade' => 'YourNameSpace\Facades\MyEventFacade::class',
),
记得最后执行composer dump-autoload
希望对您有所帮助!
假设您在 app/Facades/MyDBFacade.php
<?php
namespace App\Facades;
use Illuminate\Support\Facades\DB;
class MyDBFacade extends DB
{
// ...
}
您只需更改 config/app.php
中的单行,从
'DB' => Illuminate\Support\Facades\DB::class,
到
'DB' => App\Facades\MyDBFacade::class,
现在应该一切正常了。