gpt4 book ai didi

php - 在 PHP 中转换为命名空间

转载 作者:行者123 更新时间:2023-12-04 16:55:45 24 4
gpt4 key购买 nike

我目前是 php 项目的一名学生,该项目从一开始就发展壮大,拥有大约 1800 个 php 文件。

问题是:它完全没有命名空间,或任何 PSR-4 等建议。这个技术债务很强:)。

我们想使用composer(以及twig和一些库)并且有包括这个(尤其是composer)在内的问题。我认为这是因为覆盖了 __autoload()来自 spl_autoload_register()在 Composer 自动加载器中?

有没有一种既好又快的方法来开始集成命名空间而无需重写整个项目?

最佳答案

您仍然可以将 Composer 与 PSR-0 或 classmap 一起使用。

我可能会先使用类图。优点:每个文件可以处理多个类。可以处理任意文件结构。

使用 Composer 的自动加载实现后,您可以开始删除现有的自动加载器或那些 require_once/include_once很可能散布在各处。

一旦您摆脱了所有文件加载遗留问题并建立了 Composer 自动加载,您就可以尝试根据 PSR-0 组织代码。这可能需要您重命名文件并重新定位它们。也可能是这些类没有任何可识别的前缀——这对您的 PSR-0 自动加载不利,因为所有这些文件都属于一个文件夹。

请注意,在此之前您还没有更改任何类的名称,因此代码应该在没有任何更改的情况下运行。

使用命名空间没有非常明显的优势。您将被迫重命名所有类,重命名该类名的所有用法,总而言之,如果单独使用它不会提供任何明显的好处。

另一方面,您听起来确实想重构其他所有内容,因此切换到命名空间可以用作“更新”代码的信号。

您可以同时使用 PSR-4 和 PSR-0,因此不会影响您对类的重命名(除了所有地方都需要更改类名)。

关于php - 在 PHP 中转换为命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44671237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com