除了标准的OO概念之外,还有哪些其他策略可以在不使用框架时生成良好,干净的PHP代码?
答案 0 :(得分:25)
请记住:MVC,OOP和层是设计概念,不是语言结构,也不是文件结构。
对我而言,这意味着当不使用框架时,以及没有不同的团队进行编程和设计时;在PHP(这是一种模板语言)之上使用另一个模板系统没有任何价值。此外,将代码与布局分离并不一定意味着在不同的文件上进行。
这就是我以前用于一次性,很少扩展的PHP网络应用程序的方式:
那是你的'框架',然后你写''presentation'层:
每个页面的一个PHP文件,从一些简单代码开始,以获取所需的对象,然后是带有插入的PHP代码的HTML,只是为了“填补漏洞”。除了极少数例外,最复杂的代码应该是循环。我制定规则只使用单行,?>
应与开头<?php
就是这样。如果单独工作,它会将您需要的所有意图分开,而不会淹没在用于单个用户操作的大量文件中。用户看到的每个页面都由一个PHP文件管理。
在几个月没有查看代码之后,它甚至很容易维护,因为它很容易测试应用程序,注意浏览器URL字段中的文件名。这将直接指导您使用相关代码。
(现在,当然,我几乎都在使用Django ......)
答案 1 :(得分:12)
我说的几乎和其他语言一样:
答案 2 :(得分:12)
如果你发现自己混合HTML和代码,只需停止。你很好... You're doing it wrong! http://dennisjudd.com/albums/cute_cats/wrong_mike.jpg
答案 3 :(得分:9)
实际上这个问题与语言无关,因为它适用于您选择“自己动手”的大多数语言。我要提出的两个建议是:
首先,仅仅因为你没有使用框架并不意味着你不能采用分离代码的模式。 MVC模式是您在安排源代码时应该考虑的最小值 - 它使得源代码集合更加清晰和易于维护,即使应用程序不完全遵循与框架相关的路由进程,代码“ “事物与”代表“事物是非常有益的。”
其次,仅仅因为你选择不使用完整的框架,并不意味着你需要重新发明轮子。合理利用预先打包的库以解决特定问题。两个很好的例子是日志框架(log4php)和前端渲染/模板解决方案(Smarty)。
答案 4 :(得分:5)
尽可能远离全局:-D
答案 5 :(得分:5)
如果您真的遵循OO概念,例如关注点分离,您的代码会非常好,但这里有一些建议:
答案 6 :(得分:2)
确保遵循关注点分离的标准做法。这意味着尽量不要将业务和数据层与您的UI混合在一起。
答案 7 :(得分:1)
即使您不使用框架,也请使用模板引擎。通过使用模板,您将分离应用程序的逻辑和表示。然后设计,编码和格式化逻辑部分,就像使用任何其他语言一样。让“设计师”设计用户界面:)
答案 8 :(得分:1)
OO并不是绝对必要的:可以用PHP编写好的代码&lt; 5也是。良好的程序代码,通过“逻辑距离”很好地分隔成文件和目录也应该保证您的安全。但请注意,这是如何从远处开始类似于OO的。
最好的事情是保持一致:我已经看到一个项目,Smarty在大多数页面中使用,除了一个 - 最复杂的,去图 - 。
答案 9 :(得分:1)
利用PHP的内置扩展 - 例如MySQLi。随着这些变得更加面向对象,对框架的要求变得越来越少。
例如,我可以使用以下扩展创建一个有用的TwitterApp,除了核心类之外没有实际框架将实例绑定在一起。
我可能需要为Login之类的东西制作一些帮助类,但是我通常的一对类(DAL和TPL)已被两个非常好用的扩展程序淘汰了。