PHP(几个问题)OO、重构、eclipse
我在eclipse中使用PHP。它工作正常,我可以连接到我的远程站点,有颜色编码的代码元素和一些代码提示 我意识到这可能太长了,无法回答所有的问题,如果你对其中一个部分有一个好的答案,只回答就可以了 首先是一般编码PHP(几个问题)OO、重构、eclipse,php,eclipse,eclipse-plugin,Php,Eclipse,Eclipse Plugin,我在eclipse中使用PHP。它工作正常,我可以连接到我的远程站点,有颜色编码的代码元素和一些代码提示 我意识到这可能太长了,无法回答所有的问题,如果你对其中一个部分有一个好的答案,只回答就可以了 首先是一般编码 我发现这很容易做到 松散跟踪包含的文件和 他们的变量。例如,如果 这是一个数据库$cursor 很难记住甚至不知道 它是在包括在内的文件中声明的 文件(这会变得更糟) 包括更多文件)。你好吗 处理这件事的人 人们如何记录他们的行为 代码-尤其是所需的 获取和发布数据 第二个OO开发:
感谢您提供OO开发部分: 我使用自动加载功能动态加载类。我的目录结构类似于java中的包。我的类在java中命名为like(例如HelloWorld.php)。但是该类是用该类的完整路径定义的(例如类FW_package1_package2_HelloWorld{…}) 如果调用一个类,则自动加载方法将替换所有的uu反对/并使用提取的路径(例如FW/package1/package2/HelloWorld.php)搜索该类
我深受Java的影响,所以我选择了这种方式 我发现使用PHP框架(如等)可以强制类结构和命名约定,同时通常也可以解决自动加载问题。大量使用格式有助于代码的完成和提示,以及记录特定的要求(例如方法定义)。首先是一般编码 1) OO可以帮你。当您封装变量和功能时,它们不会出现在名称空间中。假设我正确理解您暗示的问题,使用OO方法有助于缓解在无意中重新定义变量时可能出现的冲突。(注:缓解。不能完全自行预防。) 否则,我遇到的一种做法是在变量名前加上类似“包名”的东西——这只会将问题向上转移一个层次,而且也不是非常漂亮| 2) “无论如何都符合他们的目的”。PHPdoc是一个良好的开端;将有助于创建API文档 第二,面向对象开发: 3) 如前所述——“视情况而定”。需要的时候做。你不必为“hello world”写满OO。但是你可以。权衡两条路线的成本和收益,明智地选择。尽管我个人想建议,当有疑问时,支持OOP而不是“非结构化”方法。基本上,知道你的工具以及何时使用它们——然后你就可以轻松地自己打电话了。:) 4) 就我所见,目录“结构类似于包”。请注意,“目录”和“喜欢”。尽管如此,各种各样的框架已经为他们自己解决了这个问题;查阅其他答案 5) 再说一遍,随你怎么想。没有一个明确的方法,你必须这样做,否则。一旦你选择了你的道路,就要坚持下去;3. 除此之外,某些框架等都有自己的命名约定。例如,Symfony使用类似CamelCase的Java 第三,重构 我必须说这真的很痛苦 是的:3但是它会有回报 如果我在一个地方更改了一个变量的名称,我必须遍历整个过程 文档和包含此文件的每个文件,并更改其名称。 当然,到处都是错误的结果。人们是如何处理这些问题的 这个问题?在Java中,如果您在一个地方更改名称,它会在任何地方更改 不,没有。如果你得到了一个支持你的工具,你只需要使用重构工具一次;但是,如果你用java重命名一个类属性,就不会有神奇的机器人在互联网上行走,自动确保地球上的每个人都使用这个新名称 但至于如何预防,要聪明。遵守程序合同,即使用接口。不要使用不应直接使用的函数/成员。观察层次结构。使用合理的代码划分并尊重该划分的边界 但是人们如何处理这个问题呢?好吧,我想搜索并替换;) 至于Eclipse插件——PHP的动态特性使得自动重构代码更加困难;我们不能总是使用静态类型暗示等,而论证和返回类型的预言往往是不可能的。因此,就我所知,“自动重构”并不像Java世界那样受到工具的支持。虽然我确信这些情况是可行的,但应该有插件 看一看。它是EclipsePDT的插件,提供代码探索和可视化 它可以很容易地用来跟踪dependenc