php - 是否可以通过 Composer 的自动加载器向普通类库添加命名空间?

标签 php namespaces composer-php

我知道这极不可能,但我想我还是会问。

我正在使用 DomPdf 来渲染 pdf。

目前它没有实现命名空间并加载了很多类。

我可以使用 composer 和 "classmap": ["include/"] 自动加载库。

是否可以通过任何方式自动加载实现自定义命名空间的库以避免可能的类名冲突?

或者是否有工具可以在库中搜索和替换以添加命名空间?

我不想碰图书馆,只是想知道是否有某种方式可以用 Composer 的自动加载器来完成。

(我目前没有冲突,但希望通过尽可能实现命名空间来防止我的库遇到 future 的问题。)

最佳答案

由于两个类具有相同的名称、相同(或不存在)的命名空间,但驻留在不同的文件(和路径)中并包含不同的代码,因此会出现冲突。

Composer 自动加载对此无能为力。

如果遇到这种情况,您必须首先在代码级别解决它,即您必须重命名其中一个类,可能将其移动到命名空间并保留其名称作为快速帮助。有效地重命名它意味着修复引用旧类的所有其他代码行。

幸运的是,这只会在您尝试将新代码包含到您的项目中时发生,因此您可以停止使用您开始导入的任何内容,并四处寻找替代品。

关于php - 是否可以通过 Composer 的自动加载器向普通类库添加命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19904592/

相关文章:

php - htmlentities() 是防弹的吗?

c++ - C2653 : 'GUI' : is not a class or namespace

C++ 如何在静态库的命名空间中设置私有(private)类成员?

php - 在不使用命令行的情况下获取 PHP 中 Composer 包的版本

php - 在 Symfony2 中添加 CSS 或 JS 库作为 Composer 依赖项的正确方法是什么?

php - 在 PHP 中解释 JavaScript

php - MySQL不会插入所有值

vb.net - 一个具有两个不同命名空间的类?

php - 带有docker的PHP开发环境(以及如何使用composer)

php - MySQL 转义反斜杠