CakePHP3のお勉強:トップページの表示を変更する

Sakura-VPS

さくらVPS【SSL】でCakePHP」に記載した手順で、さくらのVPSにCakePHP3.7をインストールすることに何とか成功したので、これからCakePHP3のお勉強を進めたいと思います。手始めとしてCakePHP3.7インストール後に表示されるトップページを変更してみました。

CakePHP3.7インストール後に表示されるトップページは、「config/routes.php」に記載された下記のルーティングルールで規定されているようです。

$routes->connect('/', ['controller' => 'Pages', 'action' => 'display', 'home']);

色々調べてみると「PagesController.php」により「src/Template/Pages」以下にある「home.ctp」が表示されているようなので、「PagesController.php」と「src/Template/Pages」の別名コピーを作成して同じ処理を行なってうことにより、トップページの表示を変更することが出来ました。

CakePHP3.7:トップページの表示を変更する

  • rootになって「/var/www/」に移動して、「/var/www/」以下にCakePHP3アプリのプロジェクトを「cake」という名前で作成しました。
    $ su -
    Password:
    # cd /var/www/
    # composer create-project --prefer-dist cakephp/app cake
    
  • エディタ(nano)で、「config/routes.php」のルーティング処理の記載を修正しました。
    # cd cake
    # nano config/routes.php
    
    • $routes->connect(…)の’controller’に関する記述を’Pages’ から ‘TopPages’に変更。
      // コメントアウト
      // $routes->connect('/', ['controller' => 'Pages', 'action' => 'display', 'home']); 
      $routes->connect('/', ['controller' => 'TopPages', 'action' => 'display', 'home']);
      
  • 「PagesController.php」をコピーして「TopPagesController.php」を作成しました。
    # cp src/Controller/PagesController.php src/Controller/TopPagesController.php
    
  • エディタ(nano)で、「TopPagesController.php」のクラス名を変更しました。
    # nano src/Controller/TopPagesController.php
    
    • クラスの名前を’PagesController’から’TopPagesController’に変更。
      // コメントアウト
      //class PagesController extends AppController
      class TopPagesController extends AppController
      
  • 「src/Template/Pages」フォルダをフォルダの内容含めてコピーして「src/Template/TopPages」フォルダを作成しました
    # cp -r src/Template/Pages src/Template/TopPages
    
  • エディタ(nano)で、「src/Template/TopPages/home.ctp」の「<body>~</body>」内の記載を変更しました。
    # nano src/Template/TopPages/home.ctp
    
    • 「Hello World !」とCopyrightの「@2019 VPS.Oh!Happy.JP」を表示するように変更。
      <header class="row">
          <div class="header-image"><?= $this->Html->image('cake.logo.svg') ?></div>
          <div class="header-title">
              <h1>Welcome to CakePHP <?= Configure::version() ?> Red Velvet. Build fa$
          </div>
      </header>
      <div class="row">
          <div class="columns large-12">
              <div class="ctp-warning alert text-center">
                  <h1>Hello World !</h1>
              </div>
          </div>
      </div>
      
      <div class="row">
          <div class="columns large-12 text-center">
              <h3 class="more">@2019 VPS.Oh!Happy.JP</h3>
          </div>
          <hr/>
      </div>
      
  • 「http://(サーバーのURL)/」にアクセスして、トップページに「Hello World !」が表示されることを確認しました。

コメント