수색…


Symfony2에서 간단한 서비스를 선언하고 쓰고 사용하는 법

서비스 신고 :

# src/Acme/YourBundle/Resources/config/services.yml

services:
    my_service:
        class: Acme\YourBundle\Service\MyService
        arguments: ["@doctrine", "%some_parameter%", "@another_service"]
    another_service:
        class: Acme\YourBundle\Service\AnotherService
        arguments: []

서비스 코드 :

<?php
namespace Acme\YourBundle\Service\Service;

class MyService 
{
    /**
     * Constructor
     * You can had whatever you want to use in your service by dependency injection
     * @param $doctrine Doctrine
     * @param $some_parameter Some parameter defined in app/config/parameters.yml
     * @param $another_service Another service
     */
    public function __construct($doctrine, $some_parameter, $another_service) 
    {
        $this->doctrine = $doctrine;
        $this->some_parameter = $some_parameter;
        $this->another_service = $another_service;
    }

    public function doMagic() 
    {
        // Your code here
    }
}

컨트롤러에서 사용 :

<?php

namespace Acme\YourBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Acme\YourBundle\Service\Service\MyService;

class MyController extends Controller
{
  /**
     * One action
     */
    public function oneAction(Request $request)
    {
        $myService = $this->get('my_service');
        $myService->doMagic();
        // ...
    }
}


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow