2021-01-01から1年間の記事一覧
アプリケーション内の3層アーキテクチャ プレゼンテーション層 表示上の関心。UI。 ビジネスロジック層 コアなルール。 データアクセス層 データの永続化。 MVCはプレゼンテーション層周辺のアーキテクチャ。ViewとControllerはプレゼンテーション層に、Mode…
ポリモーフィズム ポリモーフィズム=同名のメソッドで異なる挙動を実現すること。 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…
例外処理 マルチキャッチ throw命令 自分で任意の例外を発生させることができる。
セッション情報の読み書き $_SESSION['キー名']でセッション情報を読み書きできる。セッション機能を利用するときはあらかじめsession_start関数を呼び出す必要がある。 セッションの破棄 session_destroy関数でセッションを破棄。
クッキー情報を取得 $_COOKIE['クッキー名']でクッキー情報を取得できる。 クッキーに保存 header(クッキー名, 値, 有効期限)で値をクッキーに保存できる。
リクエストヘッダーの取得 $_SERVER['ヘッダー名']でヘッダー情報を取得できる。 レスポンスヘッダーの設定 header関数でレスポンスヘッダーを設定できる。
クエリ情報とは、URLの「?」以降にキー名=値のセットで付加される情報。 https://host.com?word=apple $_POSTと同様の記法でクエリ情報を取得できる。 <form method="GET" action="送信先"> <input name="word" type="text" /> <input value="送信" type="submit" /> </form> 送信先 apple ?> ポストデータとクエリ情報の使い分け データサイズ クエリ情報で送信できるデータ…
htmlのフォーム要素で入力した値を$_POST['パラメータ名']で取得する。 <form method="POST" action="送信先"> <input name="name" type="text" /> <input name="email" type="text" /> <input value="送信" type="submit" /> </form> 送信先 エスケープ処理 ユーザー入力値に関してはh…
再帰関数 自分自身を呼び出す関数。 可変関数 $変数名()で呼び出せる関数。変数名に応じて対応する関数を検索・実行できる。
基本的に引数は値渡しされる。 仮引数の頭に&をつけることで引数を参照渡しできる。
変数のスコープ ローカル変数 関数内で定義された変数。その関数の中でしかアクセスできない グローバル変数 関数内で定義されていない変数。関数の中ではアクセスできない
require_once 外部ファイルをインクルードする。指定したファイルが見つからなかった場合、エラーを発生させてスクリプトを中断する。 include_once 指定したファイルが見つからなかった場合、警告を発するだけでスクリプトは実行される。 requireとinclude…
引数/戻り値の型宣言 関数の引数・戻り値には明示的に型を指定することができる。 引数の型宣言 function 関数名(型 $変数名) 戻り値の型宣言 function 関数名(): 型 { ... } 指定できる型の種類 bool float int string array iterable 配列/Traversal型…
[1,2,8,2] array_merge( ['name' => 'sato', 'age' => 26], ['name' => 'suzuki', 'address' => 'Tokyo'] ); => ['name' => 'suzuki', 'age' =>…
継承により親クラスのメソッドやプロパティを引き継ぐ。 type = $type; } // 独自メソッド public function getType() { return $this…
クラスプロパティ 個々のインスタンスではなくクラスで管理するプロパティ(ex:インスタンスの数など)。 public(private) static プロパティ クラスプロパティへのアクセス クラス::$プロパティでクラスプロパティにアクセスできる。 クラスメソッド イン…
プロパティへのアクセス権を制限する プロパティをprivateで定義すると、クラスの外部からアクセス不可能になる(そのクラスのメソッドでしかアクセスできなくなる)。 目的 アクセスの手段を当該クラスのゲッターメソッドとセッターメソッドに限定する。そ…
HTML内で制御構文を使うときは {} の代わりに : とend〇〇を使う。 <div class="menu-items"> name ?> </div> if文の場合、elseif, elseの後ろにも : が必要。 <p></p> <p></p>
コンストラクタ __constructという名前のメソッドは、インスタンス作成時に自動的に呼び出される。 コンストラクタに引数を渡す newで引数を与えると、その値がコンストラクタに渡される。
メソッドの定義と呼び出し クラス定義内でメソッドを定義する。 public function メソッド名 そのクラスのインスタンスに対してメソッドを呼び出す。 $インスタンス->メソッド() hello(); ?> メソッド内でインスタンスのプロパティにアクセスする メソッド…
クラスとプロパティの定義 インスタンスの生成 プロパティへのアクセス $インスタンス->プロパティ ※プロパティに$は不要 name = 'CURRY'; // nameプロパティを参照 echo $curry->name; ?>
メソッド 出力後の改行 配列の表示 戻り値 呼び出すメソッド puts あり 要素ごとに改行 nil to_s print なし 改行しない nil to_s p あり 改行しない 引数のオブジェクト inspect
副問い合わせ(サブクエリ) 複数の問い合わせを一度に行うときは、IN内にサブクエリを記述する。 SELECT MOVIE_TITLE_JP, SERIES_CD FROM movies WHERE SERIES_CD IN ( SELECT SERIES_CD FROM movies WHERE MOVIE_TITLE_JP = 'アベンジャーズ'); タイトルが…
GROUP BY SELECTで取得したレコードを、指定されたカラムの値ごとにグループ化して表示する。 SELECT COMIC, COUNT(COMIC) FROM movies GROUP BY COMIC ORDER BY COUNT(COMIC) DESC; moviesテーブルのCOMICごとの件数をカウントし、件数の多い順に表示する。…
2つのテーブルのうち、結合キーの値が一致する行同士を結合して新たなテーブルを生成する。 内部結合(INNER JOIN) 結合元のテーブルから、結合先と関連付いている行のみを抽出する。それぞれ結合先・結合元と関連づいていないレコードは検索結果から除外され…
SELECT 全列全行を取得する SELECT * FROM actors; 指定した列の全行を取得する SELECT ACTOR_CD, ACTOR_NAME FROM actors; WHERE 条件に該当するデータを取得する SELECT ACTOR_CD, ACTOR_NAME FROM actors WHERE ACTOR_CD IN ('AC002', 'AC031'); ORDER BY…
webpackerで扱うエントリーポイント app/javascript配下のファイルをビルドし、public/packs/jsにビルド結果が出力される。 (sprocketsではapp/assets/javascripts) たとえばapplication.jsをビルドした成果物はapplication-xxx.js エントリーポイントの読…
credentials Railsでアプリケーションを作成すると、credentials.yml.encとmaster.keyが作成される。 config/credentials.yml.enc 暗号化された設定ファイル。秘匿情報を記述する。 asl;kdjf;woiejfw@iwqjf[qw@jo...... 中身 # aws: # access_key_id: 123 # …