[英]How would you structure, or the best way to structure the code in PHP?
我想知道最好的方法(更快更好)来构造PHP中的代码。
有些人将带有函数,子类和var的Master Class保存到唯一的全局变量中,例如$ modx CMS case。
您的结构技术是什么?
以及如何连接到数据库?
你们都喜欢像PHPCake这样的PHP框架吗?
如何构造Plubic变量(配置)和私有变量(临时或程序运行变量)?
我提出问题的原因是,我不会以坚实的基础开始进行静态编程。 目前,我正在使用ModX框架/ CMS进行编程。
注意:每次对答案投票-1时,请说明理由!
在此先感谢(对不起,我的英语不好)
更快更好地不能在一起。
快点
纯PHP更快,更兼容。 您的发行版将会更小。 它最容易维护吗? 好吧,如果做得正确就可以。 大型软件项目(例如Drupal或Wordpress)表明,基于框架的项目并不比纯PHP易于维护。 纯PHP仍然具有一些内置类,但是最终它们会返回功能。 自动加载是不错的选择,但是较大的代码库仍然会降低性能。
更好
从长远来看,基于框架的项目倾向于更好地维护和使用。 由于其性质,它们速度较慢(如果包含路径中包含许多不同路径,或者包含路径排列不正确,则自动加载会降低性能)。 它还提供了一个预设的结构,以便其他人可以跳入并更快地了解发生了什么。 大多数Zend Framework项目看起来都是相同的,因此您将更有机会找到正在运行的代码段。 性能受到影响,并且需要诸如操作码缓存之类的外部助手。
我的意见
选择“更好”选项:具有自动加载功能的框架。 已经为您完成了许多工作,因此您可以在生产时间方面更快地完成任务。 现在,我建议使用Zend框架和原则。 是最快的吗? 不,但是更容易维护。
如果需要稳定的速度,请使用核心PHP或自带的低级框架。 ZF,Code Igniter,symfony,与核心PHP相比,它们都对性能产生了影响。
使用自动加载来加载类并通过单例访问实例:
class DB extends mysqli{
private static $instance;
private function __construct(){
parent::__construct(DB_HOST,DB_LOGIN,DB_PASS, DB_DB);
$this->set_charset("utf8");
$this->autocommit(false);
}
public static function i() {
if (!self::$instance instanceof self){
self::$instance = new self;
}
return self::$instance;
}
}
采用:
$res=DB::i()->query("SELECT * FROM whatever");
它将创建一个mysqli实例,并且每当您访问DB :: i()时,它将返回该实例。
我想您会对依赖注入感兴趣,也可以使用自动加载功能:这是一个杀手级功能。 对于数据库,请使用PDO,这是本地PHP数据库层。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.