本次代码符合PHP规范PRS_0,根目录下新建一个Frame的目录(核心目录),建立APP目录(项目目录),统一访问入口文件index.php,建立类文件Loader.php(用于自动加载类)

index.php 公共部分

define('BASEDIR',__DIR__);
include BASEDIR.'/Frame/Loader.php';
spl_autoload_register('\\Frame\\Loader::autoload');

Loader.php

<?php

namespace Frame;

class Loader
{
    static function autoload($class)
    {
        require  BASEDIR.'/'.str_replace('\\','/',$class).'.php';
    }
}

工厂模式

  • 我们先看一段通常情况下代码:
  • 例如我们新建一个操作数据库DataBase.php的类,当程序中有大量地方调用时,我们想修改类名字或者加一些参数就会很麻烦而且浪费时间,需要修改所有调用DataBase类的地方,也有可能漏改造成错误,
<?php

namespace Frame;
//数据库操作
class Database
{
    public function __construct() 
    {
        //连接数据库......
    }
    
}

index.php中调用

<?php
define('BASEDIR',__DIR__);
include BASEDIR.'/Frame/Loader.php';
spl_autoload_register('\\Frame\\Loader::autoload');

new \Frame\Database();    
  • 工厂模式代码新建Factory.php,这样的话如果增加参数或者修改类名只需要修改Factory.php即可。
<?php

namespace Frame;

class Factory
{
     static public function  createDatabase()
     {
        $db = new \Frame\Database();
        return $db;
     }
 }

index.php中调用

<?php
define('BASEDIR',__DIR__);
include BASEDIR.'/Frame/Loader.php';
spl_autoload_register('\\Frame\\Loader::autoload');

\Frame\Factory::createDatabase(); 
Last modification:September 3, 2022
如果觉得我的文章对你有用,请随意赞赏