crodas/autoloader
最新稳定版本:v0.1.19
Composer 安装命令:
composer require crodas/autoloader
包简介
Best autoloader from out there
README 文档
README
Autoloader generator for PHP.
Why?
Autoloaders are cool, but every project comes with their own autoloader. Your project ends up having more autoloader than proper code.
I'm a pragmatic developer, and I don't believe that's fair that we spend in our production environment, where files barely changes comparing to the number of executions, executing autoloaders over and over.
So as a proof of concept I started this project, that aims to generate an efficient autoloader. The generated autoloader has an array of classes and files. As an extra gift, the generated code will have a generic PSR-0 autoloader (borrowed from @alganet).
The autoloader now generates also loads all the class dependencies (parent classes, interfaces) in order to reduce the number of calls to the autoloaders.
Some features
- No class to path transformation is done at run time.
Autoloadercreates a map of files and classes in a given directory. - When a class is loaded, all its dependencies are loaded (parent classes, interfaces). The goal is to reduce the number of calls to the autloader.
- Always generate code that works with absolute paths (is
--libraryis set,__DIR__is being used instead) - Includes (except with the
--library) a generic PSR-0 autoloader.
How it works
It was designed to be integrated in your deployment scripts.
require "lib/Autoloader/loader.php"; $generator = new \Autoloader\Generator("vendors/"); $generator->generate("autoloader.php");
Or if you know what you're doing, you can use an instance of Finder.
require "lib/Autoloader/loader.php"; $finder = \Symfony\Component\Finder\Finder(); $finder->files()->name('*.php')->in("vendors/"); $generator = new \Autoloader\Generator($finder); $generator->generate("autoloader.php");
How to install (for developers)
In order to install you should use composer.
php composer.phar install
Using with composer
Composer is a great dependency manager, however I believe there is a lot of room for optimization in terms of autoloader generation. If you wish to have a better autoloader, one that can scan all your dependencies and your project (Whether they have configure the psr-0 or not). It will also add your local clases to the autoloader.
{
"require": {
"crodas/autoloader":"*"
},
"minimum-stability": "dev",
"scripts": {
"post-autoload-dump": "Autoloader\\Composer::generate"
}
}
By overriding the post-autoload-dump it will replace the generated autoloader file, it will be called automatically however if you want to re-run it (for instance when you add a new class in your project and wish to be autoloaded) just run composer dump-autoload.
统计信息
- 总下载量: 2.98k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 11
- 点击次数: 0
- 依赖项目数: 3
- 推荐数: 0
其他信息
- 授权协议: BSD-4-Clause
- 更新时间: 2012-06-11