. . - Facade.
- .
, \My\Very\Long\Class\Adapter, config/app.php:
// config/app.php
<?php
'aliases' => [
'MyAdapter' => My\Very\Long\Class\Adapter::class,
]
:
<?php
new MyAdapter();
...
:
<?php
use My\Very\Long\Class\Adapter;
...
new Adapter();
...
, , . , , , , . .
:
API, . SuperApi. SuperAPI , SuperApi - :
<?php
public function index()
{
$superApi = new \SuperApi\Connector($key, $secret);
return $superApi->getCustomers();
}
, , , ( , : $key $secret ).
Connector, , :
<?php
'aliases' => [
'SuperApi' => SuperApi\Connector::class,
]
, :
<?php
public function index()
{
$superApi = new SuperApi($key, $secret);
return $superApi->getCustomers();
}
, $key $secret.
.
<?php
namespace App\Providers;
use SuperApi\Connector;
use Illuminate\Support\ServiceProvider;
class SuperApiProvider extends ServiceProvider
{
public function register()
{
$this->app->bind('superApiConnector', function ($app) {
return new ApiConnector($app['config']->get('super-api.key'), $app['config']->get('super-api.secret'));
});
}
}
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Facade;
class SuperApi extends Facade
{
protected static function getFacadeAccessor()
{
return 'superApiConnector';
}
}
<?php
return [
'key' => env('SUPER_API_KEY'),
'secret' => env('SUPER_API_SECRET'),
];
<?php
'providers' => [
App\Providers\SuperApiProvider::class,
]
, , ('superApiConnector'), , , - , , SuperApi.
, SuperApi\Connector, :
<?php
public function index()
{
return SuperApi::getCustomers();
}
, , , Laravel IoC Container :
<?php
public function index(SuperApi $api)
{
return $api->getCustomers();
}
, , . , . , , , .