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 $rules;
|
||||
protected $range = null;
|
||||
protected $encoder;
|
||||
protected $kernel;
|
||||
|
||||
/**
|
||||
* QueryList constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->kernel = (new Kernel())->bootstrap();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @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