m_shige1979のときどきITブログ

プログラムの勉強をしながら学習したことや経験したことをぼそぼそと書いていきます

Github(変なおっさんの顔でるので気をつけてね)

https://github.com/mshige1979

cakephp3の調査(Controller)

ちょっとだけControllerをやってみる

マニュアルやサンプルが少ないので調査に時間がかかる

サンプル

Sample1Controller.php
<?php
/**
 * Static content controller.
 *
 * This file will render views from Template/Pages/
 *
 * PHP 5
 *
 * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
 * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 *
 * Licensed under The MIT License
 * For full copyright and license information, please see the LICENSE.txt
 * Redistributions of files must retain the above copyright notice.
 *
 * @copyright     Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 * @link          http://cakephp.org CakePHP(tm) Project
 * @since         CakePHP(tm) v 0.2.9
 * @license       http://www.opensource.org/licenses/mit-license.php MIT License
 */
namespace App\Controller;

use Cake\Core\Configure;
use Cake\Error;
use Cake\Utility\Inflector;

/**
 * Static content controller
 *
 * Override this controller by placing a copy in controllers directory of an application
 *
 * @link http://book.cakephp.org/3.0/en/controllers/pages-controller.html
 */
class Sample1Controller extends AppController {

/**
 * This controller does not use a model
 *
 * @var array
 */
    public $uses = array();

    public function index(){
        // 変数設定
        $this->set('post', [
            "name" => "m_shige1979",
            "message" => "こんばんは"
        ]);

        // テンプレート設定
        $this->render('index');

    }

    public function page1(){
        // テンプレート設定
        $this->render('test1');
    }

}

①namespaceが実装された
②autoloadとかあるらしい
③基本的なロジックはこの辺はあまり変わっていないよう

ビュー用のctpファイルの場所は/app/App/Templateと変更された

最初Viewと思ったけど違かった

Sample1/index.ctp
<div>
    <div>name:<?php echo h($post['name']); ?></div>
    <div><?php echo h($post['message']); ?></div>
</div>
Sample1/test1.ctp
<div>
    Hello World CakePHP 3.0.0 dev1
</div>

まとめ

色々ファイルの場所が変わっているのがわかった。
ネットではモデルの変更が結構あるよう。
データのバリデーションとかメール送信とかいろいろまだまだ調査することが多い。
とりあえず、モデルとビューは放置してコントローラー部分を引き続き調査するかも