facebook twitter hatena line email

「Php/Symfony/Symfony2/サービス作成」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
 
(同じ利用者による、間の2版が非表示)
行5: 行5:
 
  class SampleexampleService
 
  class SampleexampleService
 
  {
 
  {
     public function __construct(Container $container) {
+
     public function __construct(Container $container)
 +
    {
 
         $this->container = $container;
 
         $this->container = $container;
 
         // $request = $this->container->get('request');
 
         // $request = $this->container->get('request');
 
         // echo $request->query->get('param1');
 
         // echo $request->query->get('param1');
 +
        // $this->em                      = $container->get('doctrine.orm.entity_manager');
 +
        // $this->translator              = $container->get('translator');
 +
        // $this->validator              = $container->get('validator');
 +
        // $this->logger                  = $container->get('logger');
 
     }
 
     }
     public function exec() {
+
     public function exec()
 +
    {
 
         echo "exec!!";
 
         echo "exec!!";
 
     }
 
     }
行43: 行49:
 
-src/Acme/HelloBundle/Resources/views/Serviceexample/index.html.twig
 
-src/Acme/HelloBundle/Resources/views/Serviceexample/index.html.twig
 
  serviceexample !
 
  serviceexample !
 +
 +
==参考==
 +
http://qiita.com/lethe2211/items/1288e78db7a7dd261f81
 +
 +
http://docs.symfony.gr.jp/symfony2/book/service_container.html

2017年1月16日 (月) 11:52時点における最新版

サンプルサービス作成

-src/Acme/HelloBundle/Services/SampleexampleService.php

namespace Acme\HelloBundle\Services;
use Symfony\Component\DependencyInjection\ContainerInterface as Container;
class SampleexampleService
{
   public function __construct(Container $container)
   {
       $this->container = $container;
       // $request = $this->container->get('request');
       // echo $request->query->get('param1');
       // $this->em                      = $container->get('doctrine.orm.entity_manager');
       // $this->translator              = $container->get('translator');
       // $this->validator               = $container->get('validator');
       // $this->logger                  = $container->get('logger');
   }
   public function exec()
   {
       echo "exec!!";
   }
}

サービスyml登録

-src/Acme/HelloBundle/Resources/config/services.yml

services:
   acme_hello.sampleexample:
       class:        Acme\HelloBundle\Services\SampleexampleService
       arguments:    [@service_container]

-app/config/config.yml

imports:
   - { resource: "@AcmeHelloBundle/Resources/config/services.yml" }

コントローラから呼び出し

-src/Acme/HelloBundle/Controller/ServiceexampleController.php

namespace Acme\HelloBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class ServiceexampleController extends Controller
{
   public function indexAction()
   {
       $service = $this->container->get('acme_hello.sampleexample');
       $service->exec();
       return $this->render('AcmeHelloBundle:Serviceexample:index.html.twig');
   }
}

twigを一応記述

-src/Acme/HelloBundle/Resources/views/Serviceexample/index.html.twig

serviceexample !

参考

http://qiita.com/lethe2211/items/1288e78db7a7dd261f81

http://docs.symfony.gr.jp/symfony2/book/service_container.html