[[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();
}
}