【问题标题】:is it possible to add a namespace to normal class library via composer's autoloader?是否可以通过作曲家的自动加载器向普通类库添加命名空间?
【发布时间】:2013-11-12 04:39:44
【问题描述】:

我知道这不太可能,但我还是想问一下。

我正在使用 DomPdf 来呈现 pdf。

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

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

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

或者有没有在库中搜索和替换的工具来添加命名空间?

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

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

【问题讨论】:

    标签: php namespaces composer-php


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我有点想到会是这样。不得不问以确保。当新版本发布时,将使用桥接类访问库并更新命名空间和方法。理论上应该可以创建一个脚本来通过一键操作更新库。如果我有时间,我会编译一个。
    猜你喜欢
    • 2013-08-11
    • 2018-05-07
    • 2013-04-08
    • 1970-01-01
    • 2015-10-08
    • 2012-09-07
    • 2014-09-13
    • 2018-08-30
    • 1970-01-01
    相关资源
    最近更新 更多