我在eclipse中使用PHP。它工作正常,我可以连接到我的远程站点,有代码元素的颜色编码和一些代码提示。
我意识到这可能太长了,无法回答所有问题,如果你对一个部分有一个好的答案,那就回答这个问题。
首先是一般编码
我发现这很容易 包含文件的松散轨迹和 他们的变数。例如,如果 它有一个数据库$ cursor 难以记住甚至不知道 它是在包含的声明中声明的 文件(这变得更糟糕了 您包含的更多文件)。如何 处理这件事的人?
人们如何记录他们的 代码 - 特别是必需的 GET和POST数据?
其次OO开发:
我是否应该在我的OO中完整OO 发展。目前我有一个 功能库,我可以 包括并分开 “任务”进入一个单独的文件。它是一个 有点讨厌,但它的确有效。
如果我去OO,我该如何构建 PHP中的目录,java使用 包 - 怎么样的PHP?
我应该如何命名我的文件 使用带_的所有小写作为空格 “hello_world.php”?我应该说出来吗? 像Java这样的大写类 “HelloWorld.php”?有没有 不同的命名约定 类和常规函数文件?
第三次重构
我必须说这是一个真正的痛苦。如果 我改变了变量的名称 一个地方我必须经历整个 文档和包含的每个文件 这个文件并更改名称 太。当然,到处都是错误 是结果。人是怎么回事 处理这个问题?在Java中 如果你在一个地方更改名称 它随处可见。
是否有任何插件可以改善php 重构?我正在使用 Eclipse的官方PHP版本 他们的网站。
感谢
答案 0 :(得分:1)
我发现使用PHP框架(例如Zend,Cake,CodeIgniter等)可以强制类结构和命名约定,同时也可以解决自动加载问题。大量使用PHPDoc格式有助于代码完成和提示以及记录特定要求(例如方法parameter定义)。
答案 1 :(得分:1)
首先是一般编码
1)OO可以帮助你。在封装变量和功能时,它们不会出现并混淆命名空间。 Assumind我理解你提示的问题,使用OO方法有助于缓解当你无意中重新声明可变数据时可能出现的冲突。 (注意:缓解。不能完全阻止。;)) 否则,我遇到的一种做法是在变量名称之前加上类似“包名称”的东西 - 这只会将问题转移到一级并且也不是非常漂亮。 :|
2)“但不适合他们的目的”。 PHPdoc是一个好的开始;将有助于创建API文档。
其次OO发展:
3)如前所述 - “它取决于”。在需要时做。你不必为“hello world”充分展示OO。但是你可以。权衡任何一条路线的成本和收益,并明智地选择。虽然我个人想建议在有疑问时支持OOP而不是'非结构化'方法。基本上,了解您的工具以及何时使用它们 - 然后您可以轻松地自行拨打电话。 :)
4)据我所知,目录“的结构类似于包”。请注意,“目录”和“喜欢”。话虽如此,各种框架已经为自己解决了这个问题;比照;第二个答案。
5)不过,不过请你。没有一种明确的方式你必须要做或者做其他事。一旦你选择了你的道路就坚持下去; 3 除此之外,某些框架等也有自己的命名约定。例如,Symfony使用像Java这样的CamelCase。
第三次重构
我必须说这是一个真正的痛苦。
是的:3但它会得到回报。
如果我在一个地方更改变量的名称,我必须完整 文档和包含此文件的每个文件,并更改其名称。 当然,到处都是错误。人们如何处理 这个问题?在Java中,如果您在一个地方更改名称,它会随处更改。
不,它没有。如果你给自己一个支持的工具,你只需要使用一次重构工具;但是如果你在java中重命名一个类属性,那么没有神奇的机器人可以通过互联网自动确保地球上的每个人都使用新名称。 ;)
但至于如何防止它 - 要聪明。荣誉计划合同,即使用接口。不要使用不应直接使用的函数/成员。观察层次结构。使用合理的代码划分并尊重该部门的界限。
但人们如何处理这个问题呢?好吧,我想,搜索和替换;)
至于Eclipse-Plugin - PHP的动态特性使得自动重构代码变得更加困难;我们不能总是使用静态类型提示等,并且参数和返回类型的占卜通常是不可能的。因此,据我所知,“自动重构”并不像Java世界那样得到工具的支持。虽然我确信可行的案例,但应该有插件。 :)
答案 2 :(得分:0)
对于OO开发部分:
我正在使用自动加载功能动态加载类。我的目录结构就像java中的包。我的类在java中命名(例如HelloWorld.php)。但是该类定义了该类的完整路径(例如,类FW_package1_package2_HelloWorld {...})。
如果一个类被调用,则自动加载方法将所有_替换为/并使用提取的路径搜索该类(例如,FW / package1 / package2 / HelloWorld.php)。
我受Java的强烈影响,因此我选择了这种方式。
答案 3 :(得分:0)
看看nWire for PHP。它是Eclipse PDT的一个插件,提供代码探索和可视化。
它可以很容易地用于跟踪应用程序中的依赖项,它对于OO项目非常方便,使您可以可视化类层次结构等等。
它不支持重构,但它可以通过向您显示给定组件(例如函数或字段)的引用来提供帮助。