PHPまとめ

はじめに

Laravelを最近はずっとやっていましたが改めて基礎的な部分を学習しなおしました。

この記事では、個人的に理解が浅かった部分をまとめています。

✅ゴール

・PHPの理解を深める

✅参考教材

独習PHP 第3版

👇こっちに少し移しました。

【オブジェクト/Web/認証関連】プログラミング用語集

基本

✅Webアプリケーション

Webの世界にはクライアントとサーバの2つの概念が存在する。

クライアント:ほかのコンピュータに対して要求を行い、その結果として情報を受け取るコンピュータ。インターネットブラウザ(Chrome)など。
サーバ:ほかのコンピュータに対して情報やサービスを提供するコンピュータ。メールサーバ、データベースサーバ、Webサーバ(HTTPサーバ)など。
URL:HTTP(HyperText Transfer Protocol)というプロトコルに従って、クライアントからサーバに送信される。
プロトコル:コンピュータ同士がデータをやりとりするための約束事、手続き。
HTTP:サーバーとクライアントがお互いに通信する際に利用するプロトコル(手続き)のこと。※クライアントからの要求(リクエスト)に対して、サーバが応答(レスポンス)する。

☞全体をまとめる管理者が存在しないインターネットで、不特定多数のクライアントとサーバがコミュニケーションできるのはHTTPの手続きに則して通信を行っているため。

補足
DevToolのNetworkタブからリクエスト/レスポンス情報を見れる。

PHPの特徴

・サーバサイドスクリプトで、動的なページを作成可能。
※JavaScriptはクライアントサイドスクリプト(クライアントサイド技術には原則としてデータを保存する手段がない。)
・インタプリタ言語(逐次翻訳)
・データ型について寛容(※JavaScriptと同じ)⇔JavaやC#は変数とデータ型が常にワンセット。

PHPに必要なソフトウェア
・Webサーバ:クライアントからの要求をPHPに振り分け、PHPでの実行結果をクライアントに応答するために必要。
・PHP
・データベースサーバ

✅演算子(要確認)

・三項演算子
・null合体演算子

✅組込関数

PHPが標準で提供する関数。※深堀できていないが正規表現は理解したい。。。

✅ユーザー定義関数

・定義方法

function 関数名(仮引数,...){
  // 任意の処理
  return 返り値;
}

※仮引数:ユーザ定義関数の中で参照可能な変数のこと。

✅無名関数(クロージャ)

使い捨ての関数で名前を持たない。

P256から!!

リクエスト/レスポンス

✅HTTPメソッドとHTTPステータス

・HTTPメソッド:クライアントからサーバへの指示を表す。メソッド名、パス、プロトコル情報で構成。

・HTTPステータス:サーバでの処理結果を表す。

✅スーパーグローバル変数

PHPが自動的にリクエスト情報などを解析し、必要な情報を変数として用意。スクリプト側ではこれを参照するだけで必要な情報を取得可能。

$_POST:HTMLフォーム(ポストメソッドで定義されたフォームタグ)から送信されるデータを取得。※要エスケープ処理
$_GET:クエリ情報(URLの末尾~?以降に「キー名=値」のセットで付与される簡単な情報)の取得。
$_SESSIONなど

データベース連携

✅データベース抽象化レイヤ

データベースごとの違いを吸収し、アプリケーションがDBに対してアクセスする際に、共通の手段を提供するモノ。

PDO(PHP Data Objects)

データベース抽象化レイヤの1つ。PHP5以降のオブジェクト指向構文に完全対応且つ標準で利用できる。PDOクラスをインスタンス化して接続する。

用語
・オートインクリメント機能:新たなレコードを登録するたびに自動的に連番を生成する機能。
・シーケンス:DB上で一意な数値キーを生成する
・結果セット:SQLのSELECT命令でテーブルから取得されたレコード群を保持するためにメモリ上に用意された仮想テーブルのこと。
・フェッチ:結果セットから個々の行を取得すること。フェッチすると言う
・プレイスホルダ:パラメータの置き場所のこと。
・パラメータ:関数やメソッドなどが呼び出し元から渡された値を受け取るための変数のこと(仮引数)。
・トランザクション:複数の処理を1つにグループ化したもの。一連の処理を実行することをトランザクション処理といい、この処理を確定することをコミットという。
※失敗時など、処理を基に戻す(なかったことにする)ことをロールバックという。

その他

✅用語

Apache(アパッチ):世界的に最も普及しているWebサーバ(HTTPサーバ)ソフトウェアの一つ。

・エスケープ処理:HTMLにおいて特殊な意味を持つ文字を、「>」などのような文字列に置き換える処理のこと。

✅学び

・ポストデータであっても、ブラウザの開発者ツールなどを利用すれば、内容を確認するのは簡単。データの保護が必須。

おわりに

随時更新していきます。

※セキュリティ面は以下記事で。

【セキュリティ】安全なWebアプリケーションの作り方まとめ

コメントを残す