繁体   English   中英

您将如何构造PHP或构造代码的最佳方法?

[英]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数据库层。

与从头开始编写所有内容相比,使用框架是一种更好的方法,因为您已经完成了许多您需要的工作。

最好使用基于MVC模式的框架 这样,您的代码将被分为模型,视图和控制器。

  • 在该模型中,您放置了用于管理数据的代码(db,...)
  • 该视图是您放置用户界面代码的位置
  • 控制器是您应用程序逻辑的去向。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM