Slim Framework 3 通用组件包
用于cyub/slim-skeleton搭建脚手架程序, (*1)
此通用包一共提供3类组件:服务提供者、门面模式支持、中间件。, (*2)
服务提供者
借鉴Laravel的服务提供者,通过slim-skeleton
里面settings.php配置providers选项来启用某一服务,配置示例如下, (*3)
'providers' => [
...
Tink\Common\ServiceProviders\LoggerServiceProvider::class,
Tink\Common\ServiceProviders\DBServiceProvider::class,
Tink\Common\ServiceProviders\RedisServiceProvider::class,
Tink\Common\ServiceProviders\CacheServiceProvider::class,
Tink\Common\ServiceProviders\ValidatorServiceProvider::class,
....
],
现支持的服务提供者如下:, (*4)
Dotdev, (*5)
读取.env文件的配置,依赖vlucas/phpdotenv,配合Configure服务来使用, (*6)
Configure, (*7)
用于读取网站配置,依赖Tink\Common\Services\Configure
, (*8)
Facade, (*9)
用于支持门面模式, (*10)
Logger, (*11)
日志服务提供者,依赖monolog, (*12)
DB, (*13)
数据库服务提供者,依赖Illuminate\Database, (*14)
Redis, (*15)
Redis服务提供者, (*16)
Cache, (*17)
缓存服务提供者,支持Redis和File缓存类型,依赖doctrine/cache, (*18)
Validator, (*19)
验证器服务提供者,依赖illuminate/validation, (*20)
Twig, (*21)
Twig模板引擎服务提供者,依赖slim/twig-view, (*22)
PHPView, (*23)
PHP原生语言模板引擎提供者,依赖slim/php-view, (*24)
门面模式支持
如果在控制器层或者其他层里面访问注入到IOC容器的组件,需要将容器注入到控制器层,然后通过容器来访问组件。这种方式有时候会比较麻烦,这时候我们可以通过门面模式来动态访问某个组件,而不用关心这个组件具体实现是怎么样, (*25)
通过配置slim-skeleton
里面settings.php来启动门面,示例配置如下:, (*26)
'alias' => [
...
'Cache' => Tink\Common\Facades\Cache::class,
'DB' => Tink\Common\Facades\DB::class,
'Config' => Tink\Common\Facades\Config::class,
...
]
现支持的门面模式有:, (*27)
App, (*28)
用于访问当前应用信息, (*29)
Cache, (*30)
用于缓存操作, (*31)
DB, (*32)
用于数据库操作, (*33)
Log, (*34)
用于打日志, (*35)
Input, (*36)
用于获取请求参数, (*37)
Validator, (*38)
用于表单验证, (*39)
Config, (*40)
用于读取配置项, (*41)
中间件
现在支持的中间件有:
* Cors 支持跨站资源共享配置, (*42)