add service provider
This commit is contained in:
parent
02fe5a7f9e
commit
43d8f71678
15
src/Contracts/ServiceProviderContract.php
Normal file
15
src/Contracts/ServiceProviderContract.php
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Created by PhpStorm.
|
||||||
|
* User: Jaeger <JaegerCode@gmail.com>
|
||||||
|
* Date: 2017/9/20
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace QL\Contracts;
|
||||||
|
|
||||||
|
use QL\Kernel;
|
||||||
|
|
||||||
|
interface ServiceProviderContract
|
||||||
|
{
|
||||||
|
public function register(Kernel $kernel);
|
||||||
|
}
|
47
src/Kernel.php
Normal file
47
src/Kernel.php
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Created by PhpStorm.
|
||||||
|
* User: Jaeger <JaegerCode@gmail.com>
|
||||||
|
* Date: 2017/9/21
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace QL;
|
||||||
|
|
||||||
|
use QL\Contracts\ServiceProviderContract;
|
||||||
|
use QL\Providers\EncodeServiceProvider;
|
||||||
|
|
||||||
|
|
||||||
|
class Kernel
|
||||||
|
{
|
||||||
|
protected $providers = [
|
||||||
|
EncodeServiceProvider::class
|
||||||
|
];
|
||||||
|
|
||||||
|
protected $binds = [];
|
||||||
|
|
||||||
|
public function bootstrap()
|
||||||
|
{
|
||||||
|
$this->registerProviders();
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function registerProviders()
|
||||||
|
{
|
||||||
|
foreach ($this->providers as $provider) {
|
||||||
|
$this->register(new $provider());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function bind($name, $provider)
|
||||||
|
{
|
||||||
|
$this->binds[$name] = value($provider);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function register(ServiceProviderContract $instance)
|
||||||
|
{
|
||||||
|
$instance->register($this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
22
src/Providers/EncodeServiceProvider.php
Normal file
22
src/Providers/EncodeServiceProvider.php
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Created by PhpStorm.
|
||||||
|
* User: Jaeger <JaegerCode@gmail.com>
|
||||||
|
* Date: 2017/9/20
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace QL\Providers;
|
||||||
|
|
||||||
|
use QL\Contracts\ServiceProviderContract;
|
||||||
|
use QL\Kernel;
|
||||||
|
use QL\Services\EncodeService;
|
||||||
|
|
||||||
|
class EncodeServiceProvider implements ServiceProviderContract
|
||||||
|
{
|
||||||
|
public function register(Kernel $kernel)
|
||||||
|
{
|
||||||
|
$kernel->bind('encoder',function (){
|
||||||
|
return new EncodeService();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
@ -21,16 +21,16 @@ class QueryList
|
|||||||
protected $document;
|
protected $document;
|
||||||
protected $rules;
|
protected $rules;
|
||||||
protected $range = null;
|
protected $range = null;
|
||||||
protected $encoder;
|
protected $kernel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* QueryList constructor.
|
* QueryList constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
|
$this->kernel = (new Kernel())->bootstrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
|
13
src/Services/EncodeService.php
Normal file
13
src/Services/EncodeService.php
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Created by PhpStorm.
|
||||||
|
* User: Jaeger <JaegerCode@gmail.com>
|
||||||
|
* Date: 2017/9/20
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace QL\Services;
|
||||||
|
|
||||||
|
class EncodeService
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user