ではspl_autoload_register
、クラスを自動的にロードできます。2 つのファイルを使用した簡単な例を見てみましょう。
index.php
<?php
spl_autoload_extensions (".php");
spl_autoload_register ();
$class = new \kitchen\oven;
var_dump ($class);
var_dump (new kitchen\Microwave);
var_dump (new kitchen\Oven);
?>
キッチン/オーブン.php
<?php
namespace kitchen {
class Microwave {
private $potency;
public function get_potency () {return $this->potency;}
public function set_potency ($potency) {$this->potency = $potency;}
}
class Oven {
private $temperature;
public function get_temperature () {return $this->temperature;}
public function set_temperature ($temperature) {$this->temperature = $temperature;}
}
}
?>
実行$ php index.php
すると、次の出力が得られます。
object(kitchen\Oven)#1 (1) {
["temperature":"kitchen\Oven":private]=>
NULL
}
object(kitchen\Microwave)#2 (1) {
["potency":"kitchen\Microwave":private]=>
NULL
}
object(kitchen\Oven)#2 (1) {
["temperature":"kitchen\Oven":private]=>
NULL
}
すべて問題ありません。私の唯一の懸念は命名法です。私は*しなければなりません*そのファイル内のクラスと同じ名前のファイルを指定します。より一般的な名前を使用できるようにする方法はありますか? 「kitchen/oven.php」の代わりに「kitchen/objects.php」を使用できればと思います。
ありがとう。