slince/loader

Slince class loader component

dev-master 2014-10-26 06:16 UTC

This package is not auto-updated.

Last update: 2020-10-12 07:49:41 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);