CakePHP3のチュートリアルの前半から学んだこと

## CakePHP3のチュートリアル

チュートリアルと例 - 3.6

コードを書き写して動かしてみて面白かった。全然コード書いてないのに色々動いててびびる。

f:id:bufferings:20180923173633p:plain

## コード

github.com

docker-composeにmysqlの設定と初期化SQLを入れといたから、たぶん、docker-compose upしてcomposer installしてlocalhost:8000にアクセスしたら動くんちゃうかな。

以下、学んだことのメモ。

## Articlesまわり

### Model

Modelの中にTableとEntityがあって、役割の違いは何だろう?と思ったら、こういうことみたい。

  • Table: DBのテーブルにアクセスするためのもの
  • Entity: DBのレコードを表すもの

### ArticlesTable

### (Entity) Article

### ArticlesController

  • AppControllerを継承
  • loadComponentでロードしたコンポーネント$this->Paginatorみたいにして利用できるようになるみたい
  • Tableクラスには$this->Articles->find()みたいにアクセスしてるけど、デフォルトでArticles(Table)と紐付けられてるってことなんだろうな
  • $this->set()でViewにデータを渡してる
  • compact()は何だろう?と思って見てみた。なるほどー。

### (Template) index.ctp

  • テンプレートファイルは、名前の規約でコントローラーのクラス名とメソッド名から引っ張ってくる
  • slugってどういう意味なんだろう?と思って見てみた。なるほどー。

### ArticlesControllerのviewアクション

## 前半のメモはこれくらい

感想は

  • 規約
    • 規約に従ってやってたら色々裏側でいい感じにしてくれるので便利
    • なんだけど、裏側で何をしてるのかを把握しとかなきゃ想定外の穴があきそうで怖い
  • PhpStorm
    • 思ったよりサクサク書ける。Javaほどじゃないけど
    • 名前の規約を元にジャンプできるプラグインがあるといいなぁ
    • PHPCSとPHPMDの設定はちょっと考えたほうが良さそう。不要なのが出る
  • ドキュメント
    • を読むためのとっかかりのインデックスが自分の中にできてきたので良かった

後半は、また気が向いたら書こう。

## (おまけ)IDEAのショートカット

コピペじゃなくて実際に見ながら書いてた理由は、PhpStormで書く感触を知りたかったからで。1個覚えた。

  • 「あとは分かるやろ」って思ったときにCtrl + Shift + Enterを叩くといい感じにしてくれる

あとは、IdeaVimを入れてできるだけ矢印キーを使わずに頑張ってみた。まだ慣れない。