2017 © Pedro Peláez
 

library slim-components

A slim framework 3 common components collection

image

tink/slim-components

A slim framework 3 common components collection

  • Friday, November 24, 2017
  • by cyub
  • Repository
  • 0 Watchers
  • 0 Stars
  • 23 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

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)

The Versions