tink / slim-components
A slim framework 3 common components collection
Requires
- doctrine/cache: ^1.6.0
- illuminate/database: ~5.1
- illuminate/validation: ~5.2
- monolog/monolog: ^1.17
- slim/php-view: ^2.2
- slim/twig-view: ^2.2
- vlucas/phpdotenv: ^2.4.0
This package is not auto-updated.
Last update: 2024-11-24 04:01:06 UTC
README
用于cyub/slim-skeleton搭建脚手架程序
此通用包一共提供3类组件:服务提供者、门面模式支持、中间件。
服务提供者
借鉴Laravel的服务提供者,通过slim-skeleton
里面settings.php配置providers选项来启用某一服务,配置示例如下
'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,
....
],
现支持的服务提供者如下:
Dotdev
读取.env文件的配置,依赖vlucas/phpdotenv,配合Configure服务来使用
Configure
用于读取网站配置,依赖Tink\Common\Services\Configure
Facade
用于支持门面模式
Logger
日志服务提供者,依赖monolog
DB
数据库服务提供者,依赖Illuminate\Database
Redis
Redis服务提供者
Cache
缓存服务提供者,支持Redis和File缓存类型,依赖doctrine/cache
Validator
验证器服务提供者,依赖illuminate/validation
Twig
Twig模板引擎服务提供者,依赖slim/twig-view
PHPView
PHP原生语言模板引擎提供者,依赖slim/php-view
门面模式支持
如果在控制器层或者其他层里面访问注入到IOC容器的组件,需要将容器注入到控制器层,然后通过容器来访问组件。这种方式有时候会比较麻烦,这时候我们可以通过门面模式来动态访问某个组件,而不用关心这个组件具体实现是怎么样
通过配置slim-skeleton
里面settings.php来启动门面,示例配置如下:
'alias' => [
...
'Cache' => Tink\Common\Facades\Cache::class,
'DB' => Tink\Common\Facades\DB::class,
'Config' => Tink\Common\Facades\Config::class,
...
]
现支持的门面模式有:
App
用于访问当前应用信息
Cache
用于缓存操作
DB
用于数据库操作
Log
用于打日志
Input
用于获取请求参数
Validator
用于表单验证
Config
用于读取配置项
中间件
现在支持的中间件有:
- Cors 支持跨站资源共享配置