我可以采用什么样的apraoches来重写相当大的程序性php 大约2000行代码应用程序作为oo应用程序。我应该尝试这样做,还是应该建立在现有应用程序之上?我在学习编程的时候写过它,现在我想扩展它。
答案 0 :(得分:2)
没有银弹。但是,你可能比拿起这本书要糟糕得多: http://www.amazon.co.uk/Working-Effectively-Legacy-Robert-Martin/dp/0131177052
答案 1 :(得分:2)
我可能会执行以下操作,将应用程序转换为MVC:
对于每个函数,尝试找到一个合适的顶级对象/类,它可以包含此函数作为方法
function addUserRecord($dbHandle, $userData) {[...]}
// Becomes
class User {
private $db;
public function addUser($data) {
[...]
}
}
对于可从外部访问的每个单独的* .php文件,将其转换为相应控制器的操作:
http://foo.bar.com/user/addUser.php //成为
http://foo.bar.com/user/add-user
对应的控制器,使用Zend_Framework
class UserController extends Zend_Controller_Action {
public function addUserAction () {
[...]
}
}
将所有输出特定内容(例如回显)移动到视图中。
最难的部分可能是创建合适的模型,但它非常重要,并且将成为您应用的基础。
答案 2 :(得分:1)
如果您希望添加新功能或显着扩展应用程序,请随时改进现有代码库。始终检查代码比检查更好。但是重写一次并不是很好的时间利用。
编写测试证明现有遗留代码库满足了重要的业务需求,这对您也有帮助。然后,您可以在不破坏应用程序的知识中更改遗留代码。如果你确实破坏了什么,你会知道什么,大概是为什么,并且能够快速解决它。
答案 3 :(得分:0)
精心设计的 OOP的优势在于您的组件易于重复使用,并且简化了团队工作。然后Ant再次支持代码更简单,你知道在哪里,在OO你可以通过类名找到它。所以你决定是否需要它。有时更少 ......