PHPでのオートロード
オートロードとはなんぞやということでメモしていきます。
auto01.php
<?php
include 'classFolder/person.php';
include 'classFolder/house.php';
include 'classFolder/job.php';
include 'classFolder/teacher.php'
?>
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<?php
$person1=new Person('Bob');
echo $person1->personName(); //-->My name is Bob
?>
</body>
</html>
classFolder/person.php
<?php
class Person{
public $name;
public function __construct($name){
$this->name=$name;
}
public function personName(){
return 'My name is '. $this->name;
}
}
?>
ここでは省略するためclassFolderの中にはたくさんのクラスファイルをまとめているとして、それぞれのクラスではPersonクラスと同様のフィールド、コンストラクター、ファンクションがあるとします。
このようにphpの冒頭で大量のincludeやrequireをしていくと、どのファイルを読み込んで、どのファイルを読み込んでないのか混乱するし、手間もかかる。
ここでオートロードを定義してみる
auto01.php
<?php
spl_autoload_register('myAutoLoader');//myAutoLoaderという名前の関数を作る
function myAutoLoader($className){
$path="classFolder/";
$extention=".class.php";
$fullPath=$path.$className.$extention;
include_once $fullPath;
}
?>
目的のクラスへのパスをとり、最後に引数へと渡す。