代码引入了基本的命名空间
工厂模式 实例化类的代码 用个新类的静态方法包起来 然后实例化的时候不要实例化原来的类,直接调用工厂类的静态方法实例。
好处是,以后如果需求更高需要变更方法名或者是加方法的参数,只需要更改工厂类的代码就可以了。
index.php
<?php define('BASEDIR',__DIR__); include BASEDIR.'/Core/Loader.php'; spl_autoload_register('\\Core\\Loader::autoload'); $db=Core\Factory::createDatabases(); $db->conn(); ?>
Loader.php
<?php namespace Core; class Loader{ static function autoload($class){ require BASEDIR."/".str_replace('\\','/',$class).'.php'; } } ?>
Databases.php<?php namespace Core; class Database{ public function conn(){ echo "this is a method of connect database;"; } } ?>
Factory.php<?php namespace Core; class Factory{ public static function createDatabases(){ $db=new Database; return $db; } }