facebook twitter hatena line email

「Php/pimple」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(サンプル)
行14: 行14:
  
 
==サンプル==
 
==サンプル==
  $ vi PimpleexaController.php
+
$ vi ServiceInterface.php
 +
  namespace App\Services;
 +
interface ServiceInterface
 +
{
 +
    public function doSomething();
 +
}
 +
 
 +
$ vi Service.php
 +
namespace App\Services;
 +
class Service implements ServiceInterface
 +
{
 +
        public function doSomething()
 +
        {
 +
            return "hoge";
 +
        }
 +
}
  
 +
$ vi PimpleexaController.php
 
  use Pimple\Container;
 
  use Pimple\Container;
 
  use App\Services\Service;
 
  use App\Services\Service;
行28: 行44:
 
             };
 
             };
 
             $service = $container['service'];
 
             $service = $container['service'];
             echo $service->doSomething();
+
             echo $service->doSomething(); // hoge
 +
        }
 +
}

2017年9月9日 (土) 22:23時点における版

pimpleとは

DIコンテナのphpライブラリ

composerによるインストール

$ vi composer.json

{
   "require": {
       "pimple/pimple": "v3.*.*"
   }
}

>Installing pimple/pimple (v3.2.2)

$ php composer.phar install

サンプル

$ vi ServiceInterface.php

namespace App\Services;
interface ServiceInterface
{
    public function doSomething();
}

$ vi Service.php

namespace App\Services;
class Service implements ServiceInterface
{
       public function doSomething()
       {
            return "hoge";
       }
}

$ vi PimpleexaController.php

use Pimple\Container;
use App\Services\Service;
class PimpleexaController extends Controller
{
       public function index()
       {
            $container = new Container();
            $container['service'] = function ($container) {
                $service = new Service();
                return $service;
            };
            $service = $container['service'];
            echo $service->doSomething(); // hoge
       }
}