我需要根据客户端处理不同类型的数据库。
我创建了一个名为 MyDBFacade 的Facade,我可以调用自己的函数。
例如:
MyDBFacade::createDBUser("MyUser"); // will create a DB user whatever I'm using Postgres or SQL Server
是否有可能以我可以添加自己的函数然后调用DB::createUser("MyUser")
的方式扩展框架Facade DB :: ?
任何线索或想法都会受到赞赏。
提前致谢,祝你有愉快的一天。
答案 0 :(得分:4)
假设您在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,
现在这一切都应该有效。
答案 1 :(得分:2)
您可以像这样创建/扩展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
。
希望这有帮助!