对于如何开始修复老式的PHP脚本有什么建议吗?
几天前,我收到了开发一个旧的PHP项目的邀请,而且老式的我的意思是结构没有使用OOP编码方法,而且它没有明确的框架。
我对从何处开始感到困惑,并想知道开发旧脚本的方法有哪些。
注意:他们不想在开始新项目上花很多钱。
那么你建议用什么方法更新旧的PHP脚本?
答案 0 :(得分:3)
“[Netscape制造]是任何软件公司都可以犯下的最严重的战略错误:他们决定从头开始重写代码。”
因此,无论您采取何种行动,优先考虑的是使用现有代码。重构将是您可以使用的最佳方法之一。
如果代码库没有更新,你不能做什么,你绝对必须做什么?升级该行动需要多少,特别需要什么?考虑这两个问题。
答案 1 :(得分:2)
这取决于你所说的“老”。在为PHP 4编写的旧版本?或者像非OOP一样老? (或两者兼而有之?)
旧的,如PHP4:
只要你筛选它并抑制警告或实际修复已弃用的函数调用,一切都应该没问题。这只是无聊的工作。简单又便宜。
旧的非OOP:
从理论上讲,可以在没有OOP或明确的MVC(或其他)框架的情况下开发出非常稳定且可扩展的应用程序。事实上,如果应用程序规模较小,则没有理由添加OOP或框架的意大利面条和肉丸复杂性。用一些框架重写OOP中的所有内容既困难又昂贵。而且很可能是矫枉过正。
答案 2 :(得分:1)
你能给我们提供更多细节,也许是一个例子。
即使是程序代码也包含OOP元素。您可以识别与同一实体相关的变量和过程。你可以去改写它,但是它们很难找到它的价值,特别是如果它们节俭,就像你建议的那样。
答案 3 :(得分:1)
当我这样做时,这是一个多步骤的过程。通常,现有产品可以继续运行。从头开始重写很少是一种选择,即使你最终会这样做。
然后我看一下项目并确定我将如何改变逻辑本身。通常,如果根本没有函数,我的第一步是将常见行为包装到静态方法中。在没有太多努力的情况下获得尽可能多的重用,所以我还不关心组织。
减少冗余后,我进入组织。正是在这个阶段,我开始计划我的类模型并将函数重构为干净的方法。这也是自动化测试的时间(phpunit)。一旦我有理由相信,我会添加一些控制器并整合模板,然后我就完成了......除了一两次传球。
对我来说,一切都是为了确定我在哪里,在哪里,以及制定一个可以通过几个小步骤执行的计划。每个人都有自己的目标,所以除了你自己的目标之外,没有任何神奇的计划可以追随。
答案 4 :(得分:0)
也许你的代码现在看起来像这样
你希望它看起来像这样
好吧,如果它只是一个脚本,而不是整个项目,我会将其转换为OOP编码标准。
答案 5 :(得分:0)
阅读他们的代码。和他们谈谈。
查看现有代码所要求的更改。和他们谈谈。
决定你改变什么做什么想做什么。和他们谈谈。
那样做。和他们谈谈。
当他们要求通过重写比通过修改更容易完成的功能时,请执行此操作。
使用可以帮助重构的IDE。