dida / 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) 上海宙品信息科技有限公司。
版权 (c) Zeupin LLC. http://zeupin.com
源代码采用 MIT 授权协议。
在 The MIT License 下授权。
如需在您的项目中使用,必须保留本源代码中的完整版权声明。
文件重新分发时必须保留上述版权声明。