## 类自动载入 ~~~  <?php  /**   * Created By basic   * Author: Virus   * Date: 2020/5/24   * Time: 13:14   */  ​  // 这里可以写多个自动加载方法  spl_autoload_register('autoload1');  ​  function autoload1($class)  {      require __DIR__.'/'.$class.'.php';  } ~~~ ## PSR-0规范 1. 命名空间必须与绝对路径一致 2. 类名首字母必须大写 3. 出入口文件外,其他“.php”必须只有一个类 > 一个简易的PSR-0实现的框架目录结构 ![PSR-0的简易框架目录雏形](file://D:/study/markdown%E6%96%87%E6%A1%A3/Java/image-20200524141212003.png?lastModify=1590310597) `index.php`入口文件 ~~~  <?php  /**   * Created By basic   * Author: Virus   * Date: 2020/5/24   * Time: 13:20   */  ​  // 定义基础路径  define('BASEDIR', __DIR__);  ​  include BASEDIR.'/Base/Loader.php';  ​  spl_autoload_register('\\Base\\Loader::autoload');  ​  App\Controller\Home\Index::test(); ~~~ `Loader.php`加载类 ~~~  <?php  /**   * Created By basic   * Author: Virus   * Date: 2020/5/24   * Time: 13:24   */  namespace Base;  class Loader  {      public static function autoload($class)     {          // 需要将反斜杠换成斜杠          require BASEDIR.'/'.str_replace('\\', '/', $class).'.php';     }  } ~~~ ## PHP的链式操作的实现 ~~~  <?php  /**   * Created By basic   * Author: Virus   * Date: 2020/5/24   * Time: 14:16   */  ​  namespace Base;  ​  ​  class Database  {      function where($where)     {          return $this;     }  ​      function order($order)     {          return $this;     }  ​      function limit($limit)     {          return $this;     }  } ~~~ ~~~  $db = new \Base\Database();  ​  // 传统代码步骤  //$db->where('id=1');  //$db->where("name=2");  //$db->order("id desc");  //$db->limit(10);  ​  // 链式操作  $db->where("id=1")->where("name=2")->order("id desc")->limit(10); ~~~