alitalaghat / slim-facades
Slim 4 的门面
dev-master
2020-03-18 14:05 UTC
Requires
- php: >=7.2
- slim/slim: >=4.0
This package is auto-updated.
Last update: 2024-09-19 00:25:58 UTC
README
简介
SlimFacades 是一个用于提供 Slim PHP 框架门面的包。此包基于 @zhangshize 的 slim-facdes。
门面是来自 Laravel(也是一个 PHP 框架)的一个名词。门面提供了一种“静态”接口,用于访问应用服务容器中的类。
Laravel 门面作为服务容器中底层类的“静态代理”,提供了一种简洁、表达性强的语法,同时比传统的静态方法具有更高的可测试性和灵活性,Slim-Facades 也是如此。
要求
- PHP >= 7.2
- Slim >= 4.0
安装
使用 composer
composer require alitalaghat/slim-facades
用法
安装后,您可以像这样更新您的代码
//... Something not important ... use SlimFacades\Facade; use SlimFacades\Route; use SlimFacades\App; // Create Container using PHP-DI $container = new Container(); // Set container to create App with on AppFactory AppFactory::setContainer($container); $app = AppFactory::create(); // initialize the Facade class Facade::setFacadeApplication($app); Route::get('/', function (Request $req, Response $res) { $res->getBody()->write("Hello"); return $res; }); App::run();
默认门面
Slim-Facades 提供以下门面
App
像使用 $app 一样使用它!
App::run();
Container
像使用 $container 一样使用它!
Container::has('view');
Route
Route::get('/', function (Request $req, Response $res) { $res->getBody()->write("Hello"); return $res; });
自定义门面
为容器中的服务创建自定义门面的代码如下
using SlimFacades\Facade; class CustomFacade extends Facade { protected static function getFacadeAccessor() { //Change 'serviceName' to you want. return 'serviceName'; } }
为实例创建自定义门面的代码如下
using SlimFacades\Facade; class CustomFacade extends Facade { public static function self() { //Change the returned value to you want. return self::$app->getContainer()->get('myservice'); } }