CakePHP3めも

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

Service フォルダを作成

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

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

Serviceファイルを作成

Serviceファイルを作成します。

src/Service/CommonService.php

<?php
namespace App\Service;

class CommonService
{
    public function getValue()
    {
        return 1;
    }
}

コントローラーから利用

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

ヘルパーから利用

<?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
Last-modified: 2021-09-19 (日) 19:09:18