バリデーションとルール

バリデーション リクエストデータがエンティティにコンバートされる前に、データ型や書式のルールが適用される。 newEntity($this->request->getData()); if ($article->errors()) { // エンティティー検証失敗。 } ?> エンティティ構築時のバリデーションの…

キャッシュ

FileCache ローカルファイルを使用するキャッシュ。tmp/cache配下にキャッシュファイルを作成し、そこにデータを保存する。 クエリ結果をキャッシュする cacheメソッドでクエリ結果をキャッシュする。第一引数にキャッシュキーを渡す。 cache('recent_articl…

【Table】関連データの取得

関連データの取得 containメソッド containで関連データをeagar loadして取得する。 find('all')->contain(['Authors', 'Comments']); ?> ネストされた関連データを取得するときはドット記法を用いる。 find()->contain([ 'Authors.Addresses', 'Comments.Au…

【Table】データの取り出し

クエリの生成 findメソッド findメソッドでクエリを生成。 find('all'); // この時点ではクエリーは走らない。 $results = $query->all(); // all() の呼び出しはクエリーを実行し、結果セットを返す foreach ($query as $row) {...} // イテレーションはク…

エンティティ

テーブルとエンティティ テーブル データのコレクションにアクセスする。新しいレコードを保存したり、 既存データの編集/削除、リレーションの定義、そして一括処理ができる。 エンティティ レコードレベルの振る舞いや機能の定義を行う。 エンティティの生…

テーブル

テーブルとエンティティ テーブル データのコレクションにアクセスする。新しいレコードを保存したり、 既存データの編集/削除、リレーションの定義、そして一括処理ができる。 エンティティ レコードレベルの振る舞いや機能の定義を行う。 テーブルオブジェ…

コンポーネント

コンポーネントの読み込みと設定 initializeメソッド内でloadComponentを使用する。 loadComponent('Auth', ['authorize' => 'Controller']); $this->loadComponent('Cookie', ['expires' => '1 day']); } } ?> あるいは、configによって実行時に…

ヘルパー

ヘルパーファイルの作成 src/View/Helper内にヘルパーファイルを作成し、メソッドを定義する。 AppView.phpの記述 src/View/AppView.phpのinitializeメソッド内でヘルパーを読み込む。

ビュー

ビューのメソッド set('color', 'pink'); // ビューのヘルパーやテーマをカスタマイズする $this->viewBuilder() ->setLayout('admin') ->helpers(['MyCustom']) ->theme('Modern') ->className('Modern.Admin'); // ビューファイルのレンダリング $this->re…

リクエストオブジェクト

$this->requestにリクエストオブジェクトが設定される。 ルーティングパラメータを取得 getParamでルーティングパラメータを取得。 request->getParam('controller'); // 現在のリクエストを処理するコントローラ $this->request->getParam('action'); // 現…

3層アーキテクチャ

アプリケーション内の3層アーキテクチャ プレゼンテーション層 表示上の関心。UI。 ビジネスロジック層 コアなルール。 データアクセス層 データの永続化。 MVCはプレゼンテーション層周辺のアーキテクチャ。ViewとControllerはプレゼンテーション層に、Mode…

ポリモーフィズム

PHP

ポリモーフィズム ポリモーフィズム=同名のメソッドで異なる挙動を実現すること。 width = $width; $this->height = $height; } public function getArea(): int { return 0; } } class Triangle extends Figure { public fun…

ルーティング

ルーティング 名前の変更 ルーティングの一般的な役割は、コントローラとそのアクションの名前を変更すること。 /users/some_action/5 でUsersコントローラにアクセスするのではなく、/cooks/some_action/5でアクセスすることができる。 connect( '/cooks/:a…

例外処理

PHP

例外処理 マルチキャッチ throw命令 自分で任意の例外を発生させることができる。

$_SESSION ~セッション情報~

PHP

セッション情報の読み書き $_SESSION['キー名']でセッション情報を読み書きできる。セッション機能を利用するときはあらかじめsession_start関数を呼び出す必要がある。 セッションの破棄 session_destroy関数でセッションを破棄。

$_COOKIE ~クッキー情報~

PHP

クッキー情報を取得 $_COOKIE['クッキー名']でクッキー情報を取得できる。 クッキーに保存 header(クッキー名, 値, 有効期限)で値をクッキーに保存できる。

$_SERVER ~ヘッダー情報~

PHP

リクエストヘッダーの取得 $_SERVER['ヘッダー名']でヘッダー情報を取得できる。 レスポンスヘッダーの設定 header関数でレスポンスヘッダーを設定できる。

$_GET ~クエリ情報~

PHP

クエリ情報とは、URLの「?」以降にキー名=値のセットで付加される情報。 https://host.com?word=apple $_POSTと同様の記法でクエリ情報を取得できる。 <form method="GET" action="送信先"> <input name="word" type="text" /> <input value="送信" type="submit" /> </form> 送信先 apple ?> ポストデータとクエリ情報の使い分け データサイズ クエリ情報で送信できるデータ…

$_POST ~ポストデータ~

PHP

htmlのフォーム要素で入力した値を$_POST['パラメータ名']で取得する。 <form method="POST" action="送信先"> <input name="name" type="text" /> <input name="email" type="text" /> <input value="送信" type="submit" /> </form> 送信先 エスケープ処理 ユーザー入力値に関してはh…

いろいろな関数呼び出し

PHP

再帰関数 自分自身を呼び出す関数。 可変関数 $変数名()で呼び出せる関数。変数名に応じて対応する関数を検索・実行できる。

引数の参照渡し

PHP

基本的に引数は値渡しされる。 仮引数の頭に&をつけることで引数を参照渡しできる。

グローバル変数とローカル変数

PHP

変数のスコープ ローカル変数 関数内で定義された変数。その関数の中でしかアクセスできない グローバル変数 関数内で定義されていない変数。関数の中ではアクセスできない

require_once, include_once ~スクリプトの外部化~

PHP

require_once 外部ファイルをインクルードする。指定したファイルが見つからなかった場合、エラーを発生させてスクリプトを中断する。 include_once 指定したファイルが見つからなかった場合、警告を発するだけでスクリプトは実行される。 requireとinclude…

引数・戻り値の型宣言

PHP

引数/戻り値の型宣言 関数の引数・戻り値には明示的に型を指定することができる。 引数の型宣言 function 関数名(型 $変数名) 戻り値の型宣言 function 関数名(): 型 { ... } 指定できる型の種類 bool float int string array iterable 配列/Traversal型…

配列関数

PHP

[1,2,8,2] array_merge( ['name' => 'sato', 'age' => 26], ['name' => 'suzuki', 'address' => 'Tokyo'] ); => ['name' => 'suzuki', 'age' =>…

文字列関数

PHP

継承

PHP

継承により親クラスのメソッドやプロパティを引き継ぐ。 type = $type; } // 独自メソッド public function getType() { return $this…

クラスプロパティとクラスメソッド

PHP

クラスプロパティ 個々のインスタンスではなくクラスで管理するプロパティ(ex:インスタンスの数など)。 public(private) static プロパティ クラスプロパティへのアクセス クラス::$プロパティでクラスプロパティにアクセスできる。 クラスメソッド イン…

クラスでのカプセル化

PHP

プロパティへのアクセス権を制限する プロパティをprivateで定義すると、クラスの外部からアクセス不可能になる(そのクラスのメソッドでしかアクセスできなくなる)。 目的 アクセスの手段を当該クラスのゲッターメソッドとセッターメソッドに限定する。そ…

制御構文をHTMLに埋め込む

PHP

HTML内で制御構文を使うときは {} の代わりに : とend〇〇を使う。 <div class="menu-items"> name ?> </div> if文の場合、elseif, elseの後ろにも : が必要。 <p></p> <p></p>