dida / autoloader
A class autoloader
v1.0.2
2020-06-11 07:18 UTC
Requires
- php: ^5.4 || ^7.0
README
Autoloader
是一个强大的类载入器。它是 Dida 框架 的一部分。
特点
- 轻量级,仅有一个独立的 PHP 文件,方便随处调用。
- 支持四种加载模式: PSR-4, PSR-0, Classmap, Alias.
- 可以方便灵活地直接加载一些尚处于开发状态或者测试状态的类。这些类因为还没有正式发布到 packagist,如果用 composer 模式处理很繁琐。
- MIT 版权协议,免费商用。
安装
方法 1: (推荐)下载最新的 Autoloader.php 文件,然后直接在需要的地方引入它。
下载网址如下:
https://github.com/zeupin/dida-autoloader/blob/master/src/Autoloader.php
然后在你的项目中直接 include 进去,举例如下:
// 第一步,include本类。 include '/path/to/Autoloader.php'; // 你下载的Autoload.php的位置 // 第二步,执行初始化,把本类注册到系统中。 Autoloadeer::init(); // 调用初始化方法,注册到系统中。如果忘记写这句,AutoLoader等于没用哦! // 第三步,Load需要自动载入的本地类。 \Dida\Autoloader::addPsr4('Your\\Namespace', '/your/package/path/'); \Dida\Autoloader::addClassmap(__DIR__ . 'FooMap.php', '/your/real/base/path'); // 第四步,然后再把Composer的autoload注册到系统中。 include '/path/to/composer/vendor/autoload.php';
推荐采用这种方式,AutoLoad 的使用流程清晰明了。
方法 2: 用 Composer 安装。
composer require dida/autoloader
如果你是用这个方式调用本类的话,尤其需要注意查找未知类的匹配优先顺序问题。
推荐方法 1 而不是方法 2 的原因
方法 1 和方法 2 的主要区别在于 搜索的优先顺序 :
- 用方法 1,先搜
Dida\AutoLoader
的定义,找不到再去composer.json
的定义里面搜。 - 用方法 2,先搜
composer.json
的定义里面搜,找不到再去Dida\AutoLoader
的定义里面搜。
在实际项目中,想使用 AutoLoader
的目的,绝大多数都是要使用自定义的类,而不是 Composer 的 vendor 里面的库,所以用方法 1 能更好达成此目的。
API
初始化
public static function init();
四种匹配模式
public static function addPsr4($namespace, $basedir); public static function addPsr0($namespace, $basedir); public static function addClassmap($mapfile, $basedir = null); public static function addAlias($alias, $real);
工具函数
// 获取类文件的实际文件路径 public static function getClassFilePath($classname);
用法
require '/path/to/Autoloader.php'; \Dida\Autoloader::init(); \Dida\Autoloader::addPsr4('Dida\\', '/your/root/path/'); \Dida\Autoloader::addClassmap(__DIR__ . 'FooMap.php', '/your/real/base/path');
如果是采用 Classmap 匹配模式时,相应的 mapfile 文件的示例如下:
<?php return [ 'Dida\\Application' => 'Application/Application.php', 'Dida\\Config' => 'Config/Config.php', 'Dida\\Container' => 'Container/Container.php', 'Dida\\Controller' => 'Controller/Controller.php', ];
作者
鸣谢
- 宙品公司,Zeupin LLC , 尤其是 Dida 框架团队
版权声明
版权所有 (c) 上海宙品信息科技有限公司。
Copyright (c) Zeupin LLC. http://zeupin.com
源代码采用 MIT 授权协议。
Licensed under The MIT License.
如需在您的项目中使用,必须保留本源代码中的完整版权声明。
Redistributions of files MUST retain the above copyright notice.