keiwen/cacofony

此包的最新版本(5.4.8)没有可用的许可证信息。

symfony的定制应用程序代码覆盖

安装: 57

依赖项: 0

建议者: 0

安全性: 0

星级: 0

关注者: 2

分支: 0

开放问题: 0

类型:symfony-bundle

5.4.8 2023-09-29 13:33 UTC

This package is auto-updated.

Last update: 2024-09-29 15:45:21 UTC


README

Symfony框架的定制应用程序代码覆盖

*** 已完成Symfony 5.4的合并,但可能遗漏了一些内容 ***

控制器

  • 提供父控制器'AppController'
  • AppController可以在dev模式下自动转储模板参数:当修改模板时,您可以查看所有可用的参数
  • AppController可以使用return renderTemplate([])自动检索模板(在"{controllerName}/{functionName}.html.twig"中)
  • AppController可以使用已定义的cookie进行重定向。增加了重定向到引用者或到自身路由的方法

控制器使用特定的Request对象(扩展标准对象),并且应在public/index文件中声明

//use Symfony\Component\HttpFoundation\Request
use Keiwen\Cacofony\Http\Request

如有需要,在kernel中声明其使用

$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

限制到角色

此注释可用于检查用户角色。可以用于单个操作或整个控制器。

/**
 * @RestrictToRole("admin")
 */
class TestController extends DefaultController

在此示例中,系统将检查用户是否有'ROLE_ADMIN'角色。如果没有,将引发AccessDeniedException。注释中的值不需要大写或带有'role_'前缀。

模板参数

此注释可用于传递给模板的'常量'。它可以在单个操作中定义,也可以用于整个控制器

/**
 * @TemplateParameter("section", paramValue="test")
 */
class TestController extends DefaultController

在此示例中,此控制器中的所有操作将自动返回一个值为'test'的'section'参数

翻译

为了翻译目的,您可以设置特定的区域设置(默认'transCode')以显示翻译代码而不是实际翻译的字符串。当从运行中的应用程序进行翻译时很有用。

Twig

过滤器

  • label 在文本末尾添加':'。根据区域设置,它可以添加非换行空格(如在法语中)
  • str_limit 限制显示的字符串长度,默认情况下以'...'结尾
  • ucfirst 将第一个字母转换为大写

方法

  • getRoute() 返回路由名称
  • hasRole('user') 检查当前用户是否有指定的角色。值不需要大写或带有'role_'前缀。

ParamFetcher

控制器方法可以使用ParamFetcher注释来声明路由的请求(get和/或post)参数。参数可以是必需的,有一些要求(如果未满足则出错)或过滤(移除无效字符而不触发错误)。
如果声明为控制器参数,则填充ParamFetcher,当出错时发送400 HTTP响应。
Cacofony包括NelmioApiDocBundle的集成,这些注释

/**
 * Action executed if GET request with apiKey parameter.
 * variable '$apiKey' in action will be an alphanumerical string.
 *
 * @Get("/route", name="routeName")
 * @GetParam(name="apiKey", description="required key for API access", required=true, filter="scalar")
 */
public function action(ParamFetcher $paramFetcher) {
    $apiKey = $paramFetcher->get('apiKey');
}

EntityRegistry

可以保存、删除、分离或复制一个实体或实体列表。每个方法都包含一个可选的提交参数(默认为true)。在控制器中

$this->getEntityRegistry()->saveObject($entity);