laravel 5:扩展外观

Mic*_*aël 5 php laravel laravel-5 laravel-facade

我需要根据客户端处理不同类型的数据库。

我创建了一个名为MyDBFacade的Facade ,可以在其中调用自己的函数。

例如:

MyDBFacade::createDBUser("MyUser"); // will create a DB user whatever I'm using Postgres or SQL Server
Run Code Online (Sandbox Code Playgroud)

是否有可能扩展Facade DB ::框架,我可以添加自己的函数,然后调用DB::createUser("MyUser")

任何线索或想法将不胜感激。

在此先感谢您,祝您愉快。

Pau*_*aul 5

假设您在中定义了自定义外观 app/Facades/MyDBFacade.php

<?php

namespace App\Facades;

use Illuminate\Support\Facades\DB;

class MyDBFacade extends DB
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

你只需要改变单一的线config/app.php,从

'DB' => Illuminate\Support\Facades\DB::class,
Run Code Online (Sandbox Code Playgroud)

'DB' => App\Facades\MyDBFacade::class,
Run Code Online (Sandbox Code Playgroud)

现在一切都应该起作用。