domingollanes / strong-parameters-bundle
Rails中的强参数在Symfony中的实现
v0.2
2018-10-06 18:08 UTC
Requires
- php: ^5.5.9 || ^7.0
- symfony/symfony: ^3.4
This package is auto-updated.
Last update: 2024-09-07 07:30:30 UTC
README
此Bundle允许在Symfony控制器中模拟Rails的强参数。
您可以对参数进行简单的允许或拒绝。
此Bundle非常适合API,但也可以用于任何应用程序。
警告:这是一个早期版本。
仅在Symfony 3.4上进行了测试。
安装
步骤1:下载Bundle
打开命令行控制台,进入您的项目目录,并执行以下命令以下载此Bundle的最新稳定版本
$ composer require domingollanes/strong-parameters-bundle
此命令需要您全局安装Composer,如Composer文档中的安装章节所述。
步骤2:启用Bundle
然后,将Bundle添加到项目app/AppKernel.php文件中注册的Bundle列表中,以启用该Bundle
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new DomingoLlanes\StrongParametersBundle\StrongParametersBundle(), ); // ... } // ... }
配置
此Bundle接受两个配置,您可以在config.yml中覆盖它们,但它们有默认值。
// config.yml strong_parameters: resource: '%kernel.project_dir%/app/Resources/parameters/' exceptions: false
配置允许的参数
您可以轻松配置允许的参数的命名空间,例如
// app/Resources/parameters/user.yml allow: test: test2: test1: t3: t2: deny: - test4
这个yaml接受在控制器动作中的这些参数
array:2 [
"test" => "testValue"
"test2" => array:1 [
"test1" => array:2 [
"t2" => "t2Value",
"t3" => "t3Value"
]
]
]
使用方法
// src/AppBundle/Controller/DefaultController.php // ... public function testAction(Request $request, ParametersService $parametersService) { // ... // For $_GET parameters $params = $parametersService->permitParameters('user', $request->query->all()); // For $_POST parameters $params = $parametersService->permitParameters('user', $request->request->all()); // For Content/json parameters $params = $parametersService->permitParameters('user', json_decode($request->getContent(), true)); // ... } // ...