corneltek / classmap
此包最新版本(1.0.2)没有可用的许可证信息。
1.0.2
2013-11-08 09:22 UTC
Requires
- php: >=5.3.0
- corneltek/cliframework: *
- corneltek/universal: *
Requires (Dev)
- corneltek/phpunit-testmore: dev-master
This package is auto-updated.
Last update: 2024-08-29 03:47:34 UTC
README
ClassMap生成器生成类映射哈希值,以提升类加载性能。
通常,SplClassLoader使用PSR-0类命名规则和PEAR类命名规则来检查类路径以自动加载类,但当需要大量类时,这会花费很多。
ClassMap生成器将类文件映射到一个纯PHP数组文件中,您可以简单地require它来找到类文件。
$classMap = require 'class_map.php'; $path = $classMap['PHPUnit']; // returns path to PHPUnit classfile.
我们决定使用PHP格式作为我们的类映射文件格式,因为它从PHP中包含起来非常简单,并且编译后的类映射文件可以被APC缓存。
要求
- PHP5.3
- 反射扩展。
通过Composer安装
$ composer require corneltek/classmap
通过PEAR安装
$ sudo pear install pear.corneltek.com/ClassMap
摘要
$ ./classmap.phar src
编译如下哈希映射文件
<?php return array ( 'Universal\\ClassLoader\\SplClassLoader' => 'phar:///Users/c9s/git/Work/ClassMap/classmap.phar/Universal/ClassLoader/SplClassLoader.php', 'GetOptionKit\\GetOptionKit' => 'phar:///Users/c9s/git/Work/ClassMap/classmap.phar/GetOptionKit/GetOptionKit.php', 'GetOptionKit\\OptionSpecCollection' => 'phar:///Users/c9s/git/Work/ClassMap/classmap.phar/GetOptionKit/OptionSpecCollection.php', 'GetOptionKit\\OptionParser' => 'phar:///Users/c9s/git/Work/ClassMap/classmap.phar/GetOptionKit/OptionParser.php', 'GetOptionKit\\OptionSpec' => 'phar:///Users/c9s/git/Work/ClassMap/classmap.phar/GetOptionKit/OptionSpec.php', 'GetOptionKit\\OptionResult' => 'phar:///Users/c9s/git/Work/ClassMap/classmap.phar/GetOptionKit/OptionResult.php', 'GetOptionKit\\Argument' => 'phar:///Users/c9s/git/Work/ClassMap/classmap.phar/GetOptionKit/Argument.php', 'ClassMap\\Generator' => 'phar:///Users/c9s/git/Work/ClassMap/classmap.phar/ClassMap/Generator.php', );
因此,您可以从PHP应用程序中require此类映射文件
$map = require 'classmap.php';
API摘要
<?php $mapGen = new ClassMap\Generator(); $mapGen->addDir( 'path/to/library' ); $mapGen->addFile( $file ); $mapGen->addClass( $class, $file ); $mapGen->generateFile( 'class_map.php', 'php' ); $mapGen->autoload = true or false; // turn on autoloader
生成json格式字典
$mapGen->generate( 'class_map.php', 'json' );
类映射文件格式
return array( 'class' => 'path/to/file.php', );
作者
Yo-An Lin cornelius.howl@gmail.com