重构期间PHP命名空间的最佳实践?

时间:2013-10-23 07:28:00

标签: php namespaces

在C#和java世界中,我们习惯让命名空间完全映射到文件夹结构,通常使用com.myCompany作为前缀。 现在我开始使用PHP项目重构任务:

  • 该项目之前不使用命名空间。
  • 使用带有前缀/后缀的长类名称没有命名冲突。
  • 我们使用spl_autoload_register,它只是在预定义的文件夹下搜索文件。
  • 除了某些模块,我们不打算将完整的源代码共享给公众以供重用。
  • 最重要的是:我们进行重构的资源有限。

以下是我的问题:

  1. 我应该为所有项目文件使用命名空间,还是仅用于 那些我们想公开或根本不使用的人?
  2. 如果使用命名空间,应该严格映射文件夹结构(这样可以更方便地使用自动加载),还是休闲风格可以吗?
  3. 我应该使用com / myCompany作为前缀吗?
  4. 如果有任何好的工具可以进行这样的安全重构? (我使用PHPStorm,但它找不到所有用法,因为有些代码 动态的。)
  5. 我想平衡最佳方法和重构所需的时间。感谢您的高级帮助。

    P.S。我看过https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md。如果我做一个新的PHP项目,我肯定会遵循指南。但是,我正在使用现有的项目,所以我想知道我将严格使用命名空间获得的好处是否会超过我花费的成本;如果我可以做出任何权衡,尽量减少我需要做的改变。

3 个答案:

答案 0 :(得分:2)

如果您重新构建文件以符合PSR-0标准,它将使您的生活更轻松。请注意,该标准不会强制您使用命名空间。如果您根据类名知道文件的位置,则加载速度将比您需要搜索文件的速度快。

命名空间可能会使编码生命更容易一些,因为类名更短。如果您导入任何其他外部代码(有许多有用的库),您将避免与您的类的任何名称冲突。但它们并不是最终的银弹,所以如果你认为浪费时间,你就可以没有它们。

答案 1 :(得分:1)

1-3)请遵循PSR-0 https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md
4)如果PHPStorm找不到用法,那么没有其他人会:) PHPStorm有“Move class”重构,这对此非常有用。

答案 2 :(得分:0)

了解PSR(特别是PSR-0在命名空间上)。他们有一堆很好的编码标准。

https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md

无法帮助您解决第四个问题,但