PHP(几个问题)OO,重构,eclipse

jax*_*jax 5 php eclipse eclipse-plugin

我在eclipse中使用PHP.它工作正常,我可以连接到我的远程站点,有代码元素的颜色编码和一些代码提示.

我意识到这可能太长了,无法回答所有问题,如果你对一个部分有一个很好的答案,回答就是这样.

首先是一般编码

  1. 我发现很容易丢失包含文件及其变量的跟踪.例如,如果存在数据库$ cursor,则很难记住甚至知道它是在包含的文件中声明的(这会使您包含的文件越多,这就越糟糕).人们如何处理这个问题?

  2. 人们如何记录他们的代码 - 特别是所需的GET和POST数据?

其次OO开发:

  1. 我是否应该在我的开发中完全使用OO.目前我有一个函数库,我可以包含它,并将每个"任务"分成一个单独的文件.它有点讨厌,但它的工作原理.

  2. 如果我去OO如何在PHP中构建目录,java使用包 - 那么php呢?

  3. 我应该如何命名我的文件,我是否应该使用_为空格"hello_world.php"的所有小写?我应该使用像Java"HelloWorld.php"这样的大写来命名类吗?是否有不同的类和常规函数文件的命名约定?

第三,重构

  1. 我必须说这是一个真正的痛苦.如果我在一个地方更改变量的名称,我必须浏览整个文档和包含此文件的每个文件,并更改它们的名称.当然,到处都是错误.人们如何处理这个问题?在Java中,如果您在一个地方更改名称,它会随处更改.

  2. 有没有插件来改善php重构?我在他们的网站上使用Eclipse的官方PHP版本.

谢谢

Cor*_*ius 1

首先是通用编码

1) OO 可以帮助你。当您封装变量和功能时,它们不会出去并扰乱命名空间。假设我正确理解您所暗示的问题,使用面向对象方法有助于减轻您无意中重新声明变量时可能出现的冲突。(注意:减轻。本身并不能完全防止。;))否则我遇到的一种做法是在变量名称前面加上“包名称”之类的东西——这只会将问题向上移动一个级别,而且也不是很漂亮。:|

2)“但是适合他们的目的”。PHPdoc 是一个好的开始;将有助于创建 API 文档。

其次OO开发:

3)如前所述——“视情况而定”。需要的时候就做。您不必为了“hello world”而完全面向对象。但是你可以。权衡任一途径的成本和收益并明智地选择。尽管我个人想建议当有疑问时支持 OOP 而不是“非结构化”方法。基本上,了解您的工具以及何时使用它们——然后您就可以轻松地自己进行调用。:)

4)据我所知,目录“的结构类似于包”。请注意,“目录”和“喜欢”。话虽如此,各种框架已经自己解决了这个问题;比照;对方回答。

5) 再说一遍,随你便。没有一个明确的方法“你必须这样做,否则就不然”。一旦你选择了你的道路,就坚持下去;3 除此之外,某些框架等都有自己的命名约定。例如,Symfony 像 Java 一样使用 CamelCase。

三、重构

我必须说这是一个真正的痛苦。

是的 :3 但这是有回报的。

如果我在一个地方更改变量的名称,我必须浏览整个文档和包含该文件的每个文件,并更改它们的名称。当然,结果就是到处都是错误。人们如何处理这个问题?在 Java 中,如果你在一处更改名称,那么到处都会发生变化。

不,事实并非如此。如果您为自己找到了一个有支持的工具,那么您只需使用该重构工具一次即可;但是,如果您在 Java 中重命名类属性,则没有神奇的机器人可以遍历互联网并自动确保地球上的每个人都使用新名称。;)

但至于如何预防——要聪明一点。遵守程序契约,即使用接口。不要使用不应该直接使用的函数/成员。注意层次结构。使用合理的代码划分并尊重该划分的边界。

但人们如何处理这个问题呢?好吧,我想搜索并替换;)

至于 Eclipse-Plugin——PHP 的动态特性使得自动重构代码变得更加困难;我们不能总是使用静态类型提示等,并且参数和返回类型的占卜通常是不可能的。因此,据我所知,“自动重构”并没有像 Java 世界那样得到工具的良好支持。虽然我确信可行的情况下,应该有插件。:)