プロゲートPHP、2周目が終わりました。
ちょうど課金期間(1ヵ月)が終わる頃なので予定通りです。
2周目やってみて、だいぶ理解が深まりました。
ほぼ全て理解できたと言っていいでしょう。
コード全体を眺めて頭を整理すると、そんなに難しいものではないということに気づきます。
オブジェクト指向の流れ。
コード全体を眺めていると、オブジェクト指向の流れがわかってきます。
【クラス内】
- クラスとプロパティを作る。
- コンストラクタを作る(自動的にプロパティに値がセットできるように)。
- ゲッターを作る(プロパティがprivateなので直接アクセスできないから)。
- セッターは、コンストラクタで値をセットするので基本的にいらない。
【インスタンス】
- インスタンスを作る。
- それらのインスタンスを配列にする。
【index.php】
- foreach文を作る(インスタンスの配列を順に表示するため)。
- プロパティの値(画像や名前や値段など)を表示する時にゲッターを使う。
という流れ。
コンストラクタ、ゲッター、セッターは型を覚えてしまおう。
何度も見ていると、コンストラクタとゲッターとセッターは型が決まっているのがわかります。
コンストラクタは、
public function __construct($△△,$▲▲){
$this->プロパティ名=$△△;
$this->プロパティ名=$▲▲;
}
ゲッターは、
public function get◯◯(){
return $this->プロパティ名;
}
セッターは、
public function set◯◯($△△){
$this->プロパティ名=$△△;
}
この型を覚えてしまいましょう。
セッターは、コンストラクタで値をセットしてしまうので基本的にいりません。
その他難しかった所など解説。
その他、難しかった所など解説していきます。
「クラスによって処理をわけよう」の所。
「クラスによって処理をわけよう」の所、
「フードクラスから呼び出すとエラーが出てしまう」と書いてあるのですが、
どこでエラーで出てしまうんだろう?と最初わかりませんでした。
要するに、
index.phpの「echo $menu->getType」の部分で、
typeプロパティはドリンクのものだけなのに$menuにはカレーとパスタも入っているのでエラーが出てしまうということです。
nameプロパティが2つある。
MenuクラスとUserクラスに、同じ名前のプロパティ「$name」があります。
ただ内容は違います。
紛らわしい…。
クラスが違えば同じプロパティ名を使ってもいいんですね。
「レビューとユーザーを紐付けよう」の所。
「レビューとユーザーを紐付けよう」の所も難しかった。
要するに、
いっぱいあるレビューの中から、ユーザーのnameプロパティと同じ名前を持つuserName
プロパティを持つレビューだけを取りだそう、ということです。
例えば、suzukiさんのレビューはどれかな~と探す場合、
いっぱいあるレビューの中からsuzukiというuserNameプロパティを持つレビューだけを取り出すということ。
instanceof。
instanceofはif文で使うと覚えましょう。
protected。
protectedってどんな時につかうんだっけ?疑問に思うと思います。
protectedオーバーライドした時に使うと覚えましょう。
プロゲートPHP総評。
プロゲートPHPはめちゃくちゃ難しいですが、
取り敢えず1周してコード全体を眺めてみると頭を整理しやすいです。
ただ、プロゲートPHPは注文サイトのようなものを作るので、
終えた後で何か作れるのかというと、
う~ん…私はイメージできません。
PHPというとお問い合わせフォームのイメージが強いですが、プロゲートPHPではやりません。
お問い合わせフォームを実装したいなら、私が前回やった「いきなりはじめるPHP本」がおすすめです。
今後の予定。
今後の予定は、まずは「いきなりはじめるPHP」本を参考に、
以前模写したイサラのサイトのお問い合わせフォームを、PHPを使って実装したいと思います。
その後は、WordPressに挑戦です。