PHP

ぺちぱーのよくばりセット

■ はじめに

PHPまわりのブックマークやストックがいい加減増えすぎたので、個人的に整理したものです。なお付加価値のない当記事が『この記事は以下の記事からリンクされています』に挙がるのを避けるために、Qiitaの記事についてはリンクは切っています。あとPHPと直接は関係していないけれど下も好きなので挙げておきます。

▼ 初心者向けのまとめは既にある

  • 初心者を戒めるPHP
    • https://qiita.com/tadsan/items/fb496e450fc27c8c4494
  • PHP初心者は最低限これはやっとけ - 開発に入る前編
    • https://qiita.com/rana_kualu/items/95f0c8be51e8665015d5
  • PHP: The Right Way

▼ コーディングのアンチパターンのまとめも既にある

  • モダンPHPアンチパターン
    • https://qiita.com/tadsan/items/157969b338fd8b782b21
  • PHP: Clean Code (clean-code-php) 蜜柑薬
    • https://qiita.com/tadsan/items/c47eb327684530721e8a
  • 今日から始められるリファクタリング10選 (1)
    • https://qiita.com/nunulk/items/2323b0c30a2cbe5fdb0c
  • 今日から始められるリファクタリング10選 (2)
    • https://qiita.com/nunulk/items/3a0c4e71afdb14b09748
  • 今日から始められるリファクタリング10選 (3)
    • https://qiita.com/nunulk/items/8bee711d40e71c767eca

▼ 有名なライブラリやリソースのまとめも既にある

▼ デザインパターンのまとめも既にある

▼ アルゴリズムのまとめも既にある

  • アルゴリズムまとめ by PHP
    • https://qiita.com/kiimiiis/items/cf4e1c1aff940ca72b77

▼ マニュアルを読んで、Packagistを漁って、車輪の再発明を避ける

▼ PHPにもコーディング規約がある

  • PHP PSR一覧 2017年版
    • https://qiita.com/rana_kualu/items/f41d8f657df7709bda0f
  • PHPコーディング規約まとめ
    • https://qiita.com/hshimo/items/04be1f432240c58300f4

▼ composerでパッケージとautoloadを管理する

  • composer 導入をまじめに考える
    • https://qiita.com/notona/items/c5a087d8dd446d315e6e
  • PHP開発でComposerを使わないなんてありえない!基礎編
    • https://qiita.com/niisan-tokyo/items/8cccec88d45f38171c94
  • PHPの名前空間とcomposerのautoload (PSR-4) サンプル
    • https://qiita.com/yotasasaki/items/cc1a4936c0c92099db5a

▼ php.iniについて

  • PHP 7.1 設定ファイルの記述例 (Apache 2.4)
    • https://qiita.com/100/items/635bcb3b4291dc428eda
  • 【PHP】php.ini ディレクティブまとめ
    • https://qiita.com/rhap/items/5b625685777ab2267e7d

▼ 制御構造としてのイテレータ

▼ セキュリティ

  • PHPの脆弱性への攻撃名称と対策メモ
    • https://qiita.com/addictionwhite/items/4e9c9cc4570c0bcaa656
  • スクリプトインジェクション入門
    • https://qiita.com/tomochan154/items/a93c56536c78d1faff0f
  • ファイルアップロードの例外処理はこれぐらいしないと気が済まない
    • https://qiita.com/mpyw/items/939964377766a54d4682
  • とっても簡単なCSRF対策
    • https://qiita.com/mpyw/items/8f8989f8575159ce95fc
  • PHP: filter_var- Manual

▼ 定数 - define()とconst

▼ 緩やかな比較(==)と厳格な比較(===)

▼ in_array, array_searchは引数を省略すると緩やかな比較がなされる

  • PHPのin_arrayは罠が多いので注意喚起が必要
    • https://qiita.com/tadsan/items/2a4c3e6b0b74a408c038
  • PHP: in_array - Manual
  • PHP: array_search - Manual
    • 第三引数を省略すると緩やかな比較になるため、かならずtrueを指定する

▼ switch文は緩やかな比較がなされる

  • switch文の使いどころの悩み
    • https://qiita.com/Hiraku/items/af2b304650272410ec29
  • PHP: switch - Manual

▼ null, isset, empty の挙動

▼ array_key_exist(), isset() の挙動

  • isset, in_array, array_key_exsistsの使い分け
    • https://qiita.com/is0me/items/e0154b4c2bc6195607f5
  • PHP 配列の要素の存在チェックにおける array_key_exist() と isset() の違い
    • https://qiita.com/hugo-sb/items/6c10810684d4c9b91fc0
  • PHP: array_key_exists - Manual

▼ 三項演算子の取り扱いについて(エルビス演算子、NULL合体演算子)

  • 三項演算子は可読性を落とすか
    • https://qiita.com/tanakahisateru/items/4fd82e03c90dc130329a
  • PHP7調査(11)??演算子の新設
    • https://qiita.com/hnw/items/dff62cd02c780b613d03
  • PHP: 比較演算子 - Manual

▼ 配列の追加・結合の挙動

▼ array_map, array_walk の挙動

▼ 例外とエラーの取り扱いについて

  • お前は PHP 7 における Fatal Error / Catchable Fatal Error / Error / ErrorException / Exception の違いを言えるか?
    • https://qiita.com/mpyw/items/c69da9589e72ceac470c
  • PHP 7.0.0α2 の例外の例外の継承関係を可視化してみた
    • https://qiita.com/ngyuki/items/8b78e6b19ab8778a1af6
  • PHP でどのように Exception/RuntimeException/LogicException を使い分けるか
    • https://qiita.com/tanakahisateru/items/e3e24f3825c4ba0c60e6
  • SPLの例外の意味をphp-srcから探る
    • https://qiita.com/Hiraku/items/fbb31c2e9f6b9f868d13
  • PHP: 例外(exceptions) - Manual
  • PHP: PHP 7 でのエラー - Manual

▼ データベース(PDO)

  • PHPでデータベースに接続するときのまとめ
    • https://qiita.com/mpyw/items/b00b72c5c95aac573b71
  • 【PHP超入門】クラス~例外処理~PDOの基礎
    • https://qiita.com/7968/items/6f089fec8dde676abb5b
  • プレースホルダで「= ?」と「IS NULL」に同時に対応する方法
    • https://qiita.com/mpyw/items/cb7ca19284afc4e2969d
  • bindParam()とbindValue()の違い
    • https://qiita.com/_dozen_/items/f6239cf1bdab6f8b0026
  • PHP: PDO - Manual

▼ 文字コード

  • マルチバイト文字を扱う際に気をつけること
    • https://qiita.com/mpyw/items/a8dba1b80fe68523b8eb

▼ var_dump, またはその代替

  • 秘伝の var_dump 関数を公開します。
    • https://qiita.com/ymm1x/items/8fb2c412b161f485b61b
  • var_dumpからの卒業、PHP開発を加速するデバッグ手法を考える
    • https://qiita.com/zaru/items/84d7ffd264b8093dca20
  • PHP: var_dump - Manual

▼ phpにおける列挙型(enum)

  • PHPで列挙型(enum)を作る
    • https://qiita.com/Hiraku/items/71e385b56dcaa37629fe
  • 「PHPで列挙型(enum)を作る」を参考にValueObjectを作ったので一つ一つのメソッドの役割や意味をまとめてみた
    • https://qiita.com/Yorinton/items/f6138f2bca7664162ca3
  • PHP: SplEnum - Manual
  • https://packagist.org/packages/myclabs/php-enum

▼ phpにおける純粋な配列:SplFixedArray

▼ phpにおける差集合/積集合

▼ ファイルの取り扱いについて

▼ セッション・クッキーまわり

▼ スーパーグローバルまわり

  • 【PHP超入門】HTTP(GET・POST)について
    • https://qiita.com/7968/items/4bf4d6f28284146c288f
  • \$_GET, $_POSTなどを受け取る際の処理
    • https://qiita.com/mpyw/items/2f9955db1c02eeef43ea
  • PHP: スーパーグローバル - Manual

▼ WebAPI

  • WebAPIについての説明
    • https://qiita.com/busyoumono99/items/9b5ffd35dd521bafce47

▼ メソッドチェーン

  • PHPにおけるメソッドチェーンの構築
    • https://qiita.com/morisuke/items/a7064dc5a195e005a1f5

▼(おまけ)SELinux絶対にdisabledにするマンにならないために

  • 「SELinuxのせいで動かない」撲滅ガイド
    • https://qiita.com/yunano/items/857ab36faa0d695573dd
  • SELinux を使おう.使ってくれ.
    • https://qiita.com/chi9rin/items/af532d0dd9237cc65741