species / app
此软件包最新版本(0.3.3)没有提供许可信息。
另一个简单的应用程序框架。
0.3.3
2019-04-28 18:26 UTC
Requires
- php: ^7.2
- ext-json: *
- aura/session: ^2.1
- php-di/php-di: ^6.0
- php-di/slim-bridge: ^2.0
- psr/log: ^1.1
- slim/http-cache: ^0.4.0
- slim/slim: ^3.12
- slim/twig-view: ^2.5
- twig/twig: ^2.9
README
另一个简单的应用程序框架。
Slim 和 Twig 的粘合剂,配置了 PHP-DI,使用 php 7.2 编写!Slim 和 Twig
安装
如果您想开始一个新项目,有可用的 骨架
composer create-project species/app-skeleton my-project-path
或者将其用作库
composer require species/app
中间件
如何使用 PHP-DI 配置添加中间件的示例
<?php use function DI\add; use Species\App\Middleware; return [ 'settings.middleware' => add([ Middleware\TwigDebugMiddleware::class, Middleware\CsrfValidationMiddleware::class, Middleware\AddRouteNameToTwigMiddleware::class, // ... ]), ];
添加RouteNameToTwigMiddleware
如果可以找到,将添加 routeName 作为 twig 全局变量。
CsrfValidationMiddleware
将测试 POST 请求中的 csrfToken 字段是否有效。当无效时,将清除会话,重新生成会话 ID 并抛出 InvalidCsrfToken 异常。
TwigDebugMiddleware
当 twig 调试启用时,将添加 twig 调试扩展。
Slim HTTP 缓存
还打包了 slim/http-cache 库。
如何配置此中间件的示例
<?php use function DI\add; use Slim\HttpCache\Cache as HttpCacheMiddleWare; return [ // Default settings 'settings.httpCache.type' => 'private', 'settings.httpCache.maxAge' => 86400, 'settings.httpCache.mustRevalidate' => false, // Add middleware 'settings.middleware' => add([ HttpCacheMiddleWare::class, ]), ];
Twig 扩展
如何使用配置添加 twig 全局变量和扩展的示例
<?php use function DI\add; use Species\App\TwigExtension; return [ // Twig globals 'settings.twig.globals' => add([ 'foo' => 'bar', // ... ]), // Twig extensions 'settings.twig.extensions' => add([ TwigExtension\CsrfTwigExtension::class, TwigExtension\ReflectionTwigExtension::class, TwigExtension\RouterTwigExtension::class, // ... ]), ];
CsrfTwigExtension
将 csrfTokenInput() 函数添加到渲染隐藏输入字段。或者使用 csrfToken(),它只返回令牌。
ReflectionTwigExtension
添加以下函数
fqcn(object $object): string返回给定对象的完全限定类名。className(object $object): string返回给定对象的不带命名空间的类名。instanceOf(object $object, string $class): bool测试给定对象是否是给定类的实例。
RouterTwigExtension
添加全局 baseUrl 和以下函数
pathFor(string $name, array $data = [], array $queryParams = []): string返回给定路由的路径。urlFor(string $name, array $data = [], array $queryParams = []): string返回给定路由的完整 URL。