除了标准的OO概念之外,还有哪些其他策略可以在不使用框架时生成良好,干净的PHP代码?
请记住:MVC,OOP和层是设计概念,不是语言结构,也不是文件结构.
对我来说,这意味着当不使用框架时,以及没有不同的团队进行编程和设计时; 在PHP(这是一种模板语言)之上使用另一个模板系统没有任何价值.此外,将代码与布局分离并不一定意味着在不同的文件上进行.
这就是我以前用于一次性,很少扩展的PHP Web应用程序的方法:
写一个'通用实用程序'文件,我在那里放了一些格式化/消毒功能,以及一些数据库访问功能:
getquery():给定一个SQL,返回一个结果对象
getrecord():给定一个SQL,返回一个记录对象(并关闭查询)
getdatum():给定一个SQL,返回一个字段(并关闭查询)
将所有配置(数据库访问,一些URL前缀等)放在'config.php'文件中
为您存储在DB上的每个对象写一个模型层,一个文件或一个文件.在那里,将是所有SQL常量,基于概念对象呈现更高级别的API,而不是基于DB记录.
那是你的'框架',然后你写''presentation'层:
每个页面有一个PHP文件,从一些简单的代码开始,用于获取所需的对象,然后是带有插入的PHP代码的HTML,只是为了"填补漏洞".除了极少数例外,最复杂的代码应该是循环.我规定只使用单行,?>
应该与开口在同一行
每个数据输入表单应指向一个没有任何HTML的小PHP,只需获取POST数据,进入数据库,然后转发到调用页面.
就是这样.如果单独工作,它会将您需要的所有意图分开,而不会淹没在用于单个用户操作的大量文件中.用户看到的每个页面都由一个PHP文件管理.
在几个月没有查看代码之后,它甚至很容易维护,因为它很容易测试应用程序,记录浏览器URL字段中的文件名.这将直接指导您使用相关代码.
(现在,当然,我几乎把所有东西都用在Django上......)
我会说与其他任何语言几乎相同:
不要过早优化
保持方法小
练习DRY
练习数据驱动的编程
使用明智的捷径(例如三元运算符)
格式化您的代码,以便其他人可以理解
不要盲目使用OO
始终检查返回代码是否有错误
启用最高警告级别并确保您的代码不会产生任何警告
在键入问题时要非常小心(这适用于所有弱类型语言).'==='运算符是你的朋友.
如果你发现自己混合HTML和代码,只需停止.你是,好吧...... 你做错了!http://dennisjudd.com/albums/cute_cats/wrong_mike.jpg
实际上这个问题与语言无关,因为它适用于您选择"自己动手"的大多数语言.我要提出的两个建议是:
首先,仅仅因为你没有使用框架并不意味着你不能采用分离代码的模式.MVC模式是您在安排源代码时应该考虑的最小值 - 它使得源代码集合更加清晰和易于维护,即使应用程序不完全遵循与框架相关的路由进程,代码" "事物与"代表"事物是非常有益的.
其次,仅仅因为你选择不使用完整的框架,并不意味着你需要重新发明轮子.合理利用预先打包的库以解决特定问题.两个很好的例子是日志框架(log4php)和前端渲染/模板解决方案(Smarty).
尽可能远离全局:-D
如果您确实遵循OO概念,例如关注点分离,您的代码将会非常好,但这里有一些建议:
框架与否,使用MVC.
我不能强调永远不要将你的逻辑与HTML混合是多么重要.在HTML文件中,PHP应仅用作模板语言,仅此而已.
使用DBAL.
将您的设计与您的内容分开.执行此操作的常用方法是大量使用CSS并具有包含大量站点布局的页眉和页脚文件.
有一个用于选项常量的文件,如DB凭据,FTP凭据等.