slince / loader
Slince class loader component
dev-master
2014-10-26 06:16 UTC
Requires
- php: ~5.4
Requires (Dev)
- phpunit/phpunit: 4.2.*
This package is not auto-updated.
Last update: 2024-12-17 05:47:59 UTC
README
自动加载组件主要帮助开发者解决在项目中的类加载问题,只要您的项目符合规范,那么您可以避免在类的加载问题上付出过多精力。
安装
在composer.json中添加
{
"require": {
"slince/loader": "dev-master@dev"
}
}
用法
最简单的用法,配置classmap
$map = [
'ClassA' => 'path/to/classa.php',
'ClassB' => 'path/to/classb.php',
];
$loader = new Slince\Loader\ClassLoader();
$loader->addLoader(new Slince\Loader\Loader\ClassMapLoader($map))->register();
如果您的项目符合psr规范
$psr4Loader = new Slince\Loader\Psr4Loader();
//设置命名空间与路径的映射
$psr4Loader->setPrefixPath('I\\Like\\To\\Read\\Book\\', './src/');
$phpBook = new I\Like\To\Read\Book\PhpBook();
//对应类文件位置 ./src/PhpBook.php
psr4规范在设置映射时命名空间需要以"\"结尾;
psr0不需要结尾并且可以兼容psr4。
如果你的项目有自己的规则,你也可以自定义一个加载器,但需要实现LoaderInterface接口;或者直接使用CustomLoader
$customLoader = new Slince\Loader\CustomLoader();
$customLoader->setCallback(function($class){
include 'file';
});
$loader->addLoader($customLoader);