我正在用PHP编写一个网站,目的是允许用户输入一些月度数据,这些数据存储在MySQL中,并且用户可以随时查看统计数据。我已经完成了所有的基础知识,但是我的代码完全不可读,它是大量的if语句,没有明显的结构,即使它的注释非常不透明。我应该如何优雅地构造我的代码,以及如何利用PHP的OOP功能。PHP构造技术
PHP构造技术
回答
嗯..我只能告诉你我一般做,而不是是否是“最好”的办法或者有更透明的工作流程...只是,它为我的作品非常好;)
第一事情和最重要的: 摆脱您的PHP中的所有非php代码,为html显示使用模板或者自己制作一个模板系统或获得一个现成的(例如smarty)。
尝试确定您经常使用的结构(如sql conenction和access)并将它们放入类文件中(如果需要,可以通过编辑一个文件而不是其他数量的文件来轻松更改您的sql系统) 现在找到重复的代码流(主要是相同的if-else结构等) 并为它们创建函数以用所述函数替换原始代码。 甚至可能为属于某个任务的函数创建更多的类。
所以,你最终与一类为DB,一个用于用户信息和编辑,一个添加,编辑和删除信息,一个用于HTML输出(甚至更多)
现在设置你的文件系统(将类文件放到子文件夹中,模板放在另一个文件夹中,模板放在另一个文件夹中,图像相同,javascripts等)
下一页:查找所有“设置” 所有预定义值可能需要更改,到一个设置文件(例如init.php)甚至可能是一个类构造。
作为最后一部分,清理单个phps内的所有混乱,你不能进一步减少。 第一:所有的设置,包括你需要的文件(类)设置定义你将需要这个脚本的常量等。 第二:所有脚本功能按字母或逻辑顺序。 并保存代码流。
就是这样(很多工作......)但是你最终会得到一个我觉得易于维护的结构。如果你需要编辑一个设置,而不是在init.php中,你想要改变一些数据库结构或者改变你的数据库,那么你只需要更新你的sql.php等等。
如果其他人也必须维护代码,那么您很可能也必须正确评论每个文件,因为我个人也使用自己的评论,因为我有一些脚本需要在五或更多年,这样我仍然知道什么去哪里;)
祝你好运!
您可以使用某种PHP框架,如Yii,Zend,Symfony或Kohana。 MVC分离将是你的好朋友。
我推荐阅读代码内聚和松散耦合,如果您要构建优秀的可维护应用程序,则需要熟悉这些重要概念。
如果不是所有的设计模式和常见使用案例 - 至少是IMO:singletons,工厂,DI和IoC(您会看到全面的),那么您还应该追上设计模式和常见使用案例。
一旦你有了理想的思维,你应该开始以一种indsutry标准的方式编写你的代码,对于PHP来说是MVC--你可以使用一个框架,无论哪一个都不重要,一次你已经学习了一个框架 - 阅读其他项目的代码很容易,因为它通常遵循相同的模式,其中一些代码比其他代码写得更好。
祝你好运!
你需要一个框架来构造你的代码。幸运的是,这个问题已经被许多人解决了。 CodeIgniter,Cake,Zend,Kohana,Symfony,Yii,Slim,Laravel,Fuel等等。
我强烈建议您查看CodeIgniter作为您的第一个PHP框架。文档和社区都是首屈一指的。
- 1. php缓存技术
- 2. PHP通讯技术
- 3. SNS和SQS技术架构
- 4. 灯架构和推技术
- 5. 模板(或其他技术)是否支持以下构造?
- 6. 在pyparsing中构造ParseResults可以接受这种技术吗?
- 7. PHP邮件sanitisation技术
- 8. PHP上的node.js-like技术
- 9. URL生成技术与PHP
- 10. 可推技术/彗星伪造?
- 11. 使用UI技术的网络技术
- 12. MVC架构中的最新技术?
- 13. 技术或数据结构加快Javascript?
- 14. 需要来自PHP技术架构师的意见
- 15. HTML5技术
- 16. .NET“推”技术?
- 17. GetDeviceCaps技术
- 18. 跟踪技术
- 19. 分类技术
- 20. ajax技术
- 21. Mongomapper - bootstrapping技术
- 22. WPF技术栈
- 23. Java WebService技术
- 24. AS3 - Autocrop技术?
- 25. Sharepoint技术
- 26. 猜测技术
- 27. 解决技术
- 28. openmp reduce技术
- 29. Android NFC技术
- 30. Prism CRM技术
这个问题是广泛的答复。获取一本书并阅读OOP的含义,尝试理解概念,然后尝试一下。如果您遇到任何特定问题,请回来。 – Niko 2013-02-10 09:43:21