如何在symfony3中提供服务

时间:2017-09-18 20:21:13

标签: symfony service symfony3.x

我有这个控制器

namespace InicioBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use EntidadesBundle\Entity\Usuarios;
use Symfony\Component\HttpFoundation\Session\Session;
class DefaultController extends Controller
{
    private $session;

    public function __construct(){
        $this->session = new Session();
    }

   ..... 

        public function ver_rol($rol){
        if($this->sacarRol() === $rol){ 
                 return true;
             }else{
                 return false;
             }
    }

}

services.yml 中,我得到了这个:

parameters:
    #parameter_name: value

services:
    app.rolSession:
        class: InicioBundle\Controller\DefaultController
        arguments: ["i dont know how get paramets"]

问题是它不起作用,symfony返回错误FileLoaderLoadException,表示services.yml没有实现有效的YAML

1 个答案:

答案 0 :(得分:0)

parameters:文件中services.yml之前有一个空格,可能会将其删除,您的yaml应该有效。

此外,如果您没有向构造函数传递任何参数,则只需删除arguments: ["null"]

即可

还有一件事,IIRC你需要添加FQCN作为类名,所以class: InicioBundle\Controller\Default => class: InicioBundle\Controller\DefaultController

当我们在主题中时,您可以在操作中键入提示请求并将其用于getSession()或者可以向您的控制器注入@session服务