您将如何构建或在PHP中构建代码的最佳方法?

时间:2010-06-26 11:00:34

标签: php frameworks structure

我想知道在PHP中构建代码的最佳方式(更快更好)

有些人将具有函数,子类和var的Master类保存到一个唯一的全局变量中,如$ modx CMS case。

你的结构技术是什么?
你如何连接到你的数据库? 你们都喜欢像PHPCake这样的PHP框架吗? 你如何构建Plubic vars(配置)和Private vars(临时或程序运行变量)?

我的问题的原因是我不会开始静态编程,具有强大的基础。目前我正在使用ModX framework / CMS进行编程。

注意:每次在答案上投票-1时,请证明合理!

先谢谢 (抱歉我的英语不好)

4 个答案:

答案 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模式的框架。这样,您的代码将分为模型,视图和控制器。

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