CakePHP3のお勉強:ブログチュートリアルを一発でBake

CakePHP3のお勉強:ブログチュートリアルを一発でBake

CakePHPの公式サイトにCakePHP3でブログを作成するチュートリアル「ブログチュートリアル」と「ブログチュートリアル – パート2」があったので、その説明に沿ってBlogの作成を試みたのですが、最終的な上りの姿が見えないためか説明内容が良く解らず挫折しました。そこで最終的な上がりの姿を確認するため、ブログチュートリアルを一発でBakeしてみました。

CakePHP3.7のブログチュートリアルを一発でBakeする

  • rootになって「/var/www/」に移動して、「/var/www/」以下にCakePHP3アプリのプロジェクトを「cake_blog」という名前で作成しました。
    $ su -
    Password:
    # cd /var/www/
    # composer create-project --prefer-dist cakephp/app cake_blog
    
  • phpMyAdminでデータベース(cake_blog)を作成し、以下のSQL文を使用してテーブル(articles)を作成しました。
    # まず、articles テーブルを作成します
    CREATE TABLE articles (
        id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
        title VARCHAR(50),
        body TEXT,
        created DATETIME DEFAULT NULL,
        modified DATETIME DEFAULT NULL
    );
     
    # それから、テスト用に記事をいくつか入れておきます
    INSERT INTO articles (title,body,created)
        VALUES ('タイトル', 'これは、記事の本文です。', NOW());
    INSERT INTO articles (title,body,created)
        VALUES ('またタイトル', 'そこに本文が続きます。', NOW());
    INSERT INTO articles (title,body,created)
        VALUES ('タイトルの逆襲', 'こりゃ本当にわくわくする!うそ。', NOW());
    
  • エディタ(nano)で「config/app.php」に記載のデータベース設定を変更しました。
    # cd /var/www/cake_blog/
    # nano config/app.php
    
    • 「’username’」「’password’」「’database’」を作成したデータベースの内容に変更。
      /*
      * CakePHP will use the default DB port based on the driver selected
      * MySQL on MAMP uses port 8889, MAMP users will want to uncomment
      * the following line and set the port accordingly
      */
      //'port' => 'non_standard_port_number',
      'username' => 'my_app',
      'password' => 'secret',
      'database' => 'my_app',
      
  • 「/etc/nginx/conf.d/」以下の「default.conf」と「https.conf」にあるrootの記載を「root /var/www/cake/webroot;」から「root /var/www/cake_blog/webroot;」に変更しました。
    # cd /etc/nginx/conf.d/
    # nano default.conf (または https.conf)
    
  • Nginxを再起動してから「http://(サーバーのURL)/」にアクセスして、インストール後に表示されるCakePHP3のトップページが表示されることを確認しました。
    # systemctl restart nginx.service
    
  • 「cake_blog」を「bake all」しました。
    # bin/cake bake all articles
    :
    Creating file /var/www/cake_blog/src/Model/Table/ArticlesTable.php
    :
    Creating file /var/www/cake_blog/src/Model/Entity/Article.php
    :
    Creating file /var/www/cake_blog/tests/Fixture/ArticlesFixture.php
    :
    Creating file /var/www/cake_blog/tests/TestCase/Model/Table/ArticlesTableTest.php
    :
    Creating file /var/www/cake_blog/src/Controller/ArticlesController.php
    :
    Creating file /var/www/cake_blog/tests/TestCase/Controller/ArticlesControllerTest.php
    :
    Creating file /var/www/cake_blog/src/Template/Articles/index.ctp
    :
    Creating file /var/www/cake_blog/src/Template/Articles/view.ctp
    :
    Creating file /var/www/cake_blog/src/Template/Articles/add.ctp
    :
    Creating file /var/www/cake_blog/src/Template/Articles/edit.ctp
    :
    Bake All complete.
    
  • エディタ(nano)で、「config/routes.php」のルーティング処理の記載を修正しました。
    # cd /var/www/cake_blog
    # nano config/routes.php
    
    • $routes->connect(…)の記述を以下に変更。
      // コメントアウト
      //$routes->connect('/', ['controller' => 'Pages', 'action' => 'display', 'home']);
      $routes->connect('/', ['controller' => 'Articles', 'action' => 'index']);
      
  • Nginxを再起動しました。
    # systemctl restart nginx.service
    
  • 「http://(サーバーのURL)/」にアクセスして、下記のような「Blogのトップページ」が表示されることを確認しました。
  • 「New Article」から新しい投稿が出来ること、「View」で投稿が表示できること、「Edit」で投稿が編集できること、「Delete」で投稿が削除できることなど、データベース処理の基本動作に問題ないことが確認出来ました。
  • 上記を行った後に改めてBakeで作成されたコードと共にチュートリアルの説明を見ると、なんとなくCakePHPが判ったような気になりました。(嘘を言いました _m(_ _)m 私には難しすぎて、コードの内容はさっぱりわかりませんでした。)