• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • Yaf_Application::bootstrap()

    (Yaf >=1.0.0)

    调用bootstrap

    说明

    publicYaf_Application::bootstrap([Yaf_Bootstrap_Abstract$bootstrap]): void

    指示Yaf_Application去寻找Bootstrap,并按照声明的顺序,执行所有在Bootstrap类中定义的以_init开头的方法。如果没有提供变量bootstrap,Yaf默认会去application.directory中寻找Bootstrap。

    参数

    $bootstrap

    A Yaf_Bootstrap_Abstract instance

    返回值

    Yaf_Application instance

    范例

    Example #1 A Bootstrap()example

    <?php
    /**
     * This file should be under the APPLICATION_PATH . "/application/"(which was defined in the config passed to Yaf_Application).
     * and named Bootstrap.php,  so the Yaf_Application can find it 
     */
    class Bootstrap extends Yaf_Bootstrap_Abstract {
        function _initConfig(Yaf_Dispatcher $dispatcher) {
            echo "1st called\n";
        }
        function _initPlugin($dispatcher) {
            echo "2nd called\n";
        }
    }
    ?>
    

    Example #2 Yaf_Application::bootstrap()example

    <?php
    defined('APPLICATION_PATH')                  // APPLICATION_PATH will be used in the ini config file
        || define('APPLICATION_PATH', __DIR__)); //__DIR__ was introduced after PHP 5.3
    $application = new Yaf_Application(APPLICATION_PATH.'/conf/application.ini');
    $application->bootstrap();
    ?>
    

    以上例程的输出类似于:

    1st called
    2nd called
    

    参见

    • Yaf_Bootstrap_Abstract
    Here is an example of a Bootstrap loading a session class then loading a database class and using a db configuration from the application config.
    <?php
    class Bootstrap extends Yaf_Bootstrap_Abstract
    {
      public function _initSession(Yaf_Dispatcher $dispatcher)
      {
        $session = new Vendor\Session();
        $session->start();
      }
      public function _initDatabase(Yaf_Dispatcher $dispatcher)
      {
        $config = Yaf_Application::app() >getConfig() >application->database;
        Yaf_Registry::set('db', Vendor\Database($config));
      }
    }
    ?>