[[CakePHP3めも]]

ビューでゴニョゴニョしたいので、ヘルパーを作成。~
CSVダウンロードを実装するためにコントローラーからヘルパーを利用としたら、あれれ。~
結局コンポーネントを作成して同じようなことを書かなきゃならないの?となったので、ビュー(ヘルパー)やコントローラーのどちらからでも利用できる共通関数を作成したい。

*Service フォルダを作成 [#zc6f6625]
サービスを作成できるように src フォルダ内に Service フォルダを作成します。

 src
 ├ Console
 ├ Controller
 ├ Model
 ├ Service ← New!
 ├ Shell
 ├ Template
 └ View

*Serviceファイルを作成 [#ked8ee54]
Serviceファイルを作成します。

src/Service/CommonService.php
 <?php
 namespace App\Service;
 
 class CommonService
 {
     public function getValue()
     {
         return 1;
     }
 }

*コントローラーから利用 [#qcdd83d4]

 <?php
 namespace App\Controller;
 
 use Cake\Controller\Controller;
 use App\Service\CommonService;
 
 class AppController extends Controller
 {
     public function index()
     {
         $Common = new CommonService();
         $value = $Common->getValue();
     }
 }

*ヘルパーから利用 [#k5c0c179]

 <?php
 namespace App\View\Helper;
 
 use Cake\View\Helper;
 use App\Service\CommonService;
 
 class CommonHelper extends Helper
 {
     public $Common;
 
     public function __construct()
     {
         $this->Common = new CommonService();
     }
 
     public function getValue()
     {
         return $this->Common->getValue();
     }

 }

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS