PHPでautoload何それ美味しいの?という案件があったのでautoloadについて調べてみた。


概要

PHP5.3より以前のコードで動いているシステムを知り合いにみてほしいと言われ、require_once地獄を味わったので発狂しそうになったので、こんな便利なもんはいつからできたんだ!?となって調べてみた。
間違いなどがあれば、コメントまで。

そもそもAutoloadとは?

オートロードとは「自動」でファイルを「ロード」してくれる仕組みのこと。

PHPではバージョン5から使われ始めた。

PHP 4

require_once('require.php');

などといったように明示的に記述をすることで他ファイルのクラスやメソッドを利用していた。
他にも、「require」,「include」などがある。

PHP 5.0.x

__autoload() が使えるようになった。ただしこの時点ではまだ問題があり、
classの指定が面倒だといった問題があった。

PHP 5.1.2 ~

spl_autoload_register()

spl_autoload_register — 指定した関数を __autoload() の実装として登録する。
前よりもclassの指定などが楽になり、使いやすくなった。

参考

記事を書く上で以下の記事、サイトを参考にしました。
ありがとうございました。

【PHP Document】spl_autoload_register

PHPのオートロード(autoload)
(atwataさん)

PHP で、spl_autoload_register を使って、require_once 地獄を脱出しようという(misogi@githubさん)