How to add case insensitive autoloading using composer generated classmap?(如何使用作曲家生成的类图添加不区分大小写的自动加载?)
问题描述
我有一个遗留项目,在不同情况下有声明和类使用.
I have legacy project which has declartions and class usings in different cases.
我想将源升级到现代状态.首先,我想用作曲家自动加载替换传统的自动加载.但是 composer 不提供不区分大小写的自动加载.
I want upgrade source to modern state. First I want to replace legacy autoloading by composer autoloading. But composer does not provide case insensitive autoloading.
如何使用composer classmap和insensitive autoload?
How to use composer classmap and insensitive autoload?
推荐答案
将 classmap
添加到 composer.json
.
"autoload": {
"classmap": ["folder1/", "folder2/"]
},
然后运行composer.phar dumpautoload
来创建composer/autoload_classmap.php
.
更改您的代码.之后
require VENDOR_PATH . '/autoload.php';
添加
$class_map = require VENDOR_PATH . '/composer/autoload_classmap.php';
$new_class_map = array();
foreach ($class_map as $class => $file)
$new_class_map [strtolower($class)] = $file;
unset($class_map);
spl_autoload_register(function ($class)use($new_class_map)
{
$class = strtolower($class);
if (isset($new_class_map[$class]))
{
require_once $new_class_map[$class];
return true;
}
else
return false;
}, true, false);
unset($new_class_map);
这是我找到的最简单的方法.
This is the simplest way I have found.
这篇关于如何使用作曲家生成的类图添加不区分大小写的自动加载?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何使用作曲家生成的类图添加不区分大小写的自动加载?
基础教程推荐
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- 在多维数组中查找最大值 2021-01-01
- 超薄框架REST服务两次获得输出 2022-01-01