「さくら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']);
- $routes->connect(…)の’controller’に関する記述を’Pages’ から ‘TopPages’に変更。
- 「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
- クラスの名前を’PagesController’から’TopPagesController’に変更。
- 「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>
- 「Hello World !」とCopyrightの「@2019 VPS.Oh!Happy.JP」を表示するように変更。
- 「http://(サーバーのURL)/」にアクセスして、トップページに「Hello World !」が表示されることを確認しました。
コメント