LoginSignup
1
0

More than 3 years have passed since last update.

【ふくだ学習録】CakePHP3入門 part5【14日目】

Last updated at Posted at 2020-01-22

ふくだ学習録とは?

ふくだが学習したことの備忘録。
目に見える形で残すことによってやる気を出す個人的な作戦です。
他人に見せるように書いているわけではないので、すごく読みにくいです。

読了した本

データベースエンジニア養成読本 [DBを自由自在に活用するための知識とノウハウ満載!]
ゼロから作るDeepLearning

今読んでいる本

PHPフレームワーク CakePHP 3入門

CakePHP3入門を読んで

ユニットテストを行うPHPUnit

ユニットテストにはPHPUnitが使われる(外部ライブラリ)

アプリケーション拡張をするプログラム

ヘルパー
ビューに追加されるプログラム。
HtmlヘルパーやFormヘルパーなど、テンプレートのコード生成を行ってくれるもの。

コンポーネント
コントローラに追加されるプログラム。Paginatorコンポーネントなどがある。

ビヘイビア
モデル関係に追加されるプログラム。

プラグイン
MVCアプリケーションとして機能するプログラムを外部から組み込んで利用できるようにするもの。

シェルプログラム
cakeコマンドを拡張して、独自機能を追加できるようにする。

ヘルパーの種類

RSSヘルパー

RSSとは、XMLを使用して決まった形で更新された情報をフォーマットしたもの。RSSリーダーなどで読み込むことによって、サイトの更新情報を取得することができる。
CakePHPでは、RSSを生成するヘルパーが標準で備え付けられている。

RSSヘルパー ①RSS拡張子を登録する

まず.rssという拡張子ファイルを使用できるようにする必要がある。

config/app.php
Router::scope('/', function(RouteBuilder $routes) {
  # ...
  # 諸々設定が記載されている。
  $routes->extensions(['rss']);
});

上記の設定を行うことにより、rssという拡張子が認識されるようになる。
例えば/indexにアクセスする際に、/index.rssとアクセスすると、対象ディレクトリ内にあるrssファイルへアクセスしていると見なされる。

RSSヘルパー ②AppViewでRSSヘルパーをロードする

ビューを利用する際にRSSヘルパーをロードするようにする。

View/AppView.php
public function initialize() {
  # ...
  # 諸々設定が記載されている。
  $this->loadHelper('Rss'); 
}

この記載をAppView内で行うことで、テンプレート内でRSSヘルパーが使用できるようになる。

RSSヘルパー ③コントローラの修正

RSS対応したいコントローラ(アクション)内に下記の記載を追加する。

public function index() {
  if($this->RequestHandler->isRss()) {
    # RSSフィードが要求された場合の処理
  } else {
    # 通常の処理
  }
}

RSSヘルパー ④RSS用レイアウト、ビューを用意する

レイアウトに関しては、Template/Layout/rssというフォルダが用意されており、その中のdefault.ctpがデフォルトで使用されるレイアウトになっている、
その後、表示したいディレクトリ内にrssフォルダを作成し、その中にアクション名.ctpという名前でファイルを作成する。

Textヘルパー

テキストの利用を支援する機能を提供してくれるヘルパー。
リンクの生成や、ハイライト表示、リスト化、リンクの除去などといった機能を提供してくれる。

使用するには、

View/AppView.php
public function initialize() {
  # ...
  # 諸々設定が記載されている。
  $this->loadHelper('Text'); 
}

という記載をする。

Numberヘルパー

数値に関する機能を提供してくれる。使用するには、下記のように記載しておく。

View/AppView.php
public function initialize() {
  # ...
  # 諸々設定が記載されている。
  $this->loadHelper('Number'); 
}

Timeヘルパー

日時に関する機能を提供してくれる。使用するには、下記のように記載しておく。

View/AppView.php
public function initialize() {
  # ...
  # 諸々設定が記載されている。
  $this->loadHelper('Time'); 
}

今日の一言

今日読んでたところは、プラグイン関連の記述が多いとこで、あまり汎用性高くなさそうだったので、メモ少なめ。
勉強してて「次のアプリはCakePHP使って作ろ!」と思ってたけど、やっぱりLaravel使用しようかな?と思い始めた。

理由は
・CakePHPは業務で触れるから、触れないLaravelを触っておきたい。
・フロント側の実装をReact×TypeScriptで実装してみるから、バックエンドはAPIサーバとして動きそう(SPA化したらCakeのテンプレート機能とか、ほぼ使わなくなりそう)
って感じやけど、判断として正しいんだろうか。。?

とりあえず来月中盤ぐらいからはアプリ制作入りたい!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0