一橋生なつおのブログ

一橋生起業家なつおのブログ

なつおの生活や考え方について書いています。

PHPメモ帳

・ceil 切り上げ floor 切り捨て round 四捨五入

・exec 結果を返さない query 一度 prepare 複数回

・session→サーバー側に保存 cookie→クライアント側に保存

MVC Model:データ管理 View: 画面 Controller: 操作、処理、ロジック

・namespaceは一番上

・パスの指定は__DIR__を使って絶対指定。requireやincludeすると実行ファイルがどこか追うのがだるくなる、__DIR__はコードを書いたそのファイルの存在するディレクトリを表す

・複雑なMVCはnamespace+spl_autoload_registerを使ってこ

・ルート直下にindexがなかったらpublic_htmlディレクトリをまず探す

phpのコンストラクタはpublic function __construct の形、インスタンス生成時に実行される内容を記述、プロパティの初期化が主。

・同一クラス内でプロパティやメソッドにアクセスしたいときは$this->nameのように$thisを利用する

・クラスは一つのファイルに一つ

正規表現 + 直前の表現を1回以上繰り返す \A \zで行頭・行末を表す {6, 32}6文字以上32文字以下

・filter_var($POST['email'], FILTER_VALIDATE_EMAIL)でメールアドレスを簡単validate

・HTMLイベント属性便利、onclickでただのdivをsubmitボタンにできたりする、属性にはJSを使える

・JSのsubmit()はinput type='submit'と同じ働きをする

・htmlspecialcharsは動的にクライアント側にデータ等を表示するときに合わせてつかって適切にエスケープ処理する

・stdClassはクラス宣言しなくても標準で使える不思議クラス。オブジェクトを使えたいときに重宝。

・openssl_random_psendo_bytes バイナリデータで乱数生成

・bin2hex バイナリデータを16進数に変換する

・PDOは標準クラス、エラーはPDOExceptionクラスへ。

連想配列を引数にしてもおけ

・PDOStatement $stmt DBに対する命令、オブジェクト

・$db=new PDO(...)では$dbオブジェクトを生成している

・$stmt=$db->prepare(...)では$stmtオブジェクトを生成している、ただ準備しただけで実行はまだ

・executeでSQL文を実行する

・password_hash("password", PASSWORD_DEFAUT) パスワードをハッシュ化してDBに格納。

・fetchメソッドで値を取得する

・定数は名前空間の影響を受ける、\グローバル定数 のような形をとることに注意

・password_verify($values['password'], $user) パスワードをハッシュ化して、すでにハッシュ化されてDBに格納されたパスワードど照らし合わせてくれる

・prepare→execute プリペアードステートメント SQL文を最初に用意して、パラメータだけ変えて何度も実行

・query 普通に全部実行、一回ぽっきりのときに使うと省エネ。

セッションハイジャック対策にsession_regenerate_id(true)とかsessionをこまめに削除したりする