ふくだ学習録とは?
ふくだが学習したことの備忘録。
目に見える形で残すことによってやる気を出す個人的な作戦です。
他人に見せるように書いているわけではないので、すごく読みにくいです。
読了した本
データベースエンジニア養成読本 [DBを自由自在に活用するための知識とノウハウ満載!]
ゼロから作るDeepLearning
今読んでいる本
CakePHP3入門を読んで
ユニットテストを行うPHPUnit
ユニットテストにはPHPUnitが使われる(外部ライブラリ)
アプリケーション拡張をするプログラム
ヘルパー
ビューに追加されるプログラム。
HtmlヘルパーやFormヘルパーなど、テンプレートのコード生成を行ってくれるもの。
コンポーネント
コントローラに追加されるプログラム。Paginatorコンポーネントなどがある。
ビヘイビア
モデル関係に追加されるプログラム。
プラグイン
MVCアプリケーションとして機能するプログラムを外部から組み込んで利用できるようにするもの。
シェルプログラム
cakeコマンドを拡張して、独自機能を追加できるようにする。
ヘルパーの種類
RSSヘルパー
RSSとは、XMLを使用して決まった形で更新された情報をフォーマットしたもの。RSSリーダーなどで読み込むことによって、サイトの更新情報を取得することができる。
CakePHPでは、RSSを生成するヘルパーが標準で備え付けられている。
RSSヘルパー ①RSS拡張子を登録する
まず.rss
という拡張子ファイルを使用できるようにする必要がある。
Router::scope('/', function(RouteBuilder $routes) {
# ...
# 諸々設定が記載されている。
$routes->extensions(['rss']);
});
上記の設定を行うことにより、rssという拡張子が認識されるようになる。
例えば/index
にアクセスする際に、/index.rss
とアクセスすると、対象ディレクトリ内にあるrssファイルへアクセスしていると見なされる。
RSSヘルパー ②AppViewでRSSヘルパーをロードする
ビューを利用する際にRSSヘルパーをロードするようにする。
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ヘルパー
テキストの利用を支援する機能を提供してくれるヘルパー。
リンクの生成や、ハイライト表示、リスト化、リンクの除去などといった機能を提供してくれる。
使用するには、
public function initialize() {
# ...
# 諸々設定が記載されている。
$this->loadHelper('Text');
}
という記載をする。
Numberヘルパー
数値に関する機能を提供してくれる。使用するには、下記のように記載しておく。
public function initialize() {
# ...
# 諸々設定が記載されている。
$this->loadHelper('Number');
}
Timeヘルパー
日時に関する機能を提供してくれる。使用するには、下記のように記載しておく。
public function initialize() {
# ...
# 諸々設定が記載されている。
$this->loadHelper('Time');
}
今日の一言
今日読んでたところは、プラグイン関連の記述が多いとこで、あまり汎用性高くなさそうだったので、メモ少なめ。
勉強してて「次のアプリはCakePHP使って作ろ!」と思ってたけど、やっぱりLaravel使用しようかな?と思い始めた。
理由は
・CakePHPは業務で触れるから、触れないLaravelを触っておきたい。
・フロント側の実装をReact×TypeScriptで実装してみるから、バックエンドはAPIサーバとして動きそう(SPA化したらCakeのテンプレート機能とか、ほぼ使わなくなりそう)
って感じやけど、判断として正しいんだろうか。。?
とりあえず来月中盤ぐらいからはアプリ制作入りたい!