CakePHP3でSmartyを使う。
CakePHP 3.5.12
Smarty 3.1.30
・CakePHP
・Smarty
1.CakePHPをcomposerを使ってインストール(公式のインストール)
composer self-update <span class="o">&&</span> composer create-project --prefer-dist cakephp/app my_app_name
2.Smartyのインストール
・ダウンロードして解凍したlibフォルダ以下を「vendor/smarty」にコピペ
(smartyフォルダは作成する)
・SmartyView.phpをとってくる
Smarty view class for CakePHP 3.0. Contribute to yukikikuchi/cakephp3-smartyview development by creating an account on GitHub.
・SmartyView.phpを「src/View」にコピペ
3.Controllerで使えるようにする
AppControllerに以下のよう追加
class AppController extends Controller
{
public $viewClass = 'Smarty';
}
4.Smartyをつかう
・Controller
src/Controller/TestController.php
<!--?php
namespace App\Controller;
class TestController extends AppController {
public function index() {
$this->set('message', 'test');
$this->render('test');
}
}
・View
src/Template/Test/test.tpl
{$message}
5.レイアウトなどもtplに
src/Template/Layout/default.tpl
{$this->element('header')}
{$this->fetch('content')}
elementは、「src/Template/Element/header.tpl」を読み込む
fetch(‘content’)は、Controllerないでの「$this->render(‘test’)」に置き換え
6.CakePHPのHelperをつかう(楽になるし)
・Paginator
Controller内で、paginateをやっておく。
public $paginate = ['limit' => 20];
tpl側はこんな感じ
<div class="pagination pagination-md block-cb">
{$this->Paginator->prev('<')}
{$this->Paginator->numbers()}
{$this->Paginator->next('>')}
</div>
※ 基本的には、$this->xxxで使える