我想知道在PHP中构建代码的最佳方式(更快更好)。
有些人将具有函数,子类和var的Master类保存到一个唯一的全局变量中,如$ modx CMS case。
你的结构技术是什么?
你如何连接到你的数据库?
你们都喜欢像PHPCake这样的PHP框架吗?
你如何构建Plubic vars(配置)和Private vars(临时或程序运行变量)?
我的问题的原因是我不会开始静态编程,具有强大的基础。目前我正在使用ModX framework / CMS进行编程。
注意:每次在答案上投票-1时,请证明合理!
先谢谢 (抱歉我的英语不好)
答案 0 :(得分:2)
更快更好不要一起去。
<强>更快强>
纯PHP更快,更兼容。您的发行版会更小。这是最容易维护的吗?好吧,如果做得好,也可以。像Drupal或Wordpress这样的大型软件项目表明基于框架的项目并不比纯PHP更容易维护。纯PHP仍然有一些内置类,但最终会回退到函数。自动加载很不错,但更大的代码库仍会受到性能影响。
<强>更好强>
从长远来看,基于框架的项目往往更好地维护和使用。它们的性质较慢(如果您的包含路径中有很多不同的路径,或者包含错误的包含路径,则自动加载会导致性能下降)。它还提供了一个预设结构,以便其他人可以快速进入并了解正在发生的事情。大多数Zend Framework项目看起来都一样,因此您将有更好的机会找到正在运行的代码段。这是一个性能损失,需要外部帮助程序,如操作码缓存。
我的意见
使用“更好”选项:具有自动加载功能的框架。已经为您做了很多工作,因此您将在生产时间方面更快地走出大门。现在我建议使用Zend Framework和Doctrine。它是最快的吗?不,但它更容易维护。
如果您需要平稳的速度,请使用核心PHP或自己动手的低级框架。 ZF,Code Igniter,symfony,与核心PHP相比,它们都会受到性能影响。
答案 1 :(得分:0)
使用autoload通过单例加载类和访问实例:
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(),它都将返回该实例。
答案 2 :(得分:0)
我想你会对dependency injection感兴趣 还使用自动加载:这是一个杀手级功能。 对于DB,使用PDO,它是本机PHP数据库层。
答案 3 :(得分:0)
使用框架比从头开始编写所有内容更好的方法,因为你需要的很多内容已经完成。
更喜欢使用基于MVC模式的框架。这样,您的代码将分为模型,视图和控制器。