9 dependency-injection symfony
有人可以告诉我如何使用依赖注入将验证器注入常规类.
在我的控制器中我有:
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Form;
class FormController extends Controller {
public function indexAction()
{
$form = new Form();
$email = $request->request->get('email');
$valid = $form->isValid($email);
}
}
Run Code Online (Sandbox Code Playgroud)
我想使用这个自定义类 - 但我需要它可以访问验证器.
class Form {
public function isValid($value)
{
// This is where I fail
$validator = $this->get('validator');
... etc
}
}
Run Code Online (Sandbox Code Playgroud)
Rob*_*ers 14
为此,需要将自定义类定义为服务,并且您将使用控制器从控制器访问它,$form = $this->get('your.form.service');而不是直接实例化它.
定义服务时,请确保注入验证器服务:
your.form.service:
class: Path\To\Your\Form
arguments: [@validator]
Run Code Online (Sandbox Code Playgroud)
然后,您需要在Form服务的构造方法中处理此问题:
/**
* @var \Symfony\Component\Validator\Validator
*/
protected $validator;
function __construct(\Symfony\Component\Validator\Validator $validator)
{
$this->validator = $validator;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4996 次 |
| 最近记录: |