zoukankan      html  css  js  c++  java
  • Drupal启动阶段之三:数据库

    Drupal在数据库启动阶段仅仅是简单地包含了database.inc文件,然后再注册类加载器:

    function _drupal_bootstrap_database() {
      // Initialize the database system. Note that the connection
      // won't be initialized until it is actually requested.
      require_once DRUPAL_ROOT . '/includes/database/database.inc';
    
      // Register autoload functions so that we can access classes and interfaces.
      // The database autoload routine comes first so that we can load the database
      // system without hitting the database. That is especially important during
      // the install or upgrade process.
      spl_autoload_register('drupal_autoload_class');
      spl_autoload_register('drupal_autoload_interface');
    }

    为什么要在database.inc之后注册类加载器?这是因为Drupal的类加载器使用了后台数据库一个名为registry的表,在加载类时会查询该表,所以必须放在database.inc之后。关于Drupal的类加载器可以参考《Drupal如何实现类的自动加载?》。

    必须要注意关于database.inc的这段备注:

    // Initialize the database system. Note that the connection
    // won't be initialized until it is actually requested.

    当前数据库还没有连接,只有真正的请求到来时才会执行连接。

  • 相关阅读:
    【Lintcode】91 最小调整代价
    【LintCode】29 交叉字符串
    十二、动态规划
    HttpClient的简单使用
    ajax跨域请求
    session共享
    八大排序算法
    MAC 脚本批量启动应用
    知识点整理-bio、nio的简单demo
    知识点整理-数组如何实现随机访问?
  • 原文地址:https://www.cnblogs.com/eastson/p/3363635.html
Copyright © 2011-2022 走看看