bootstrap.php 文件被加载时, 所有 public _init 开头的函数都会被依次执行
bootstrap.php 文件里的函数执行是独立的, 框架无上下文使用
调用方法 bootstrap 会加载 Bootstrap.php文件, 默认路径: asf.root_path/application/(Bootstrap.php OR bootstrap.php)以下例子中 _initHow 方法, 会被第一个调用。 然后依次调用函数 _initAre
<?php
class Bootstrap
{
public function _initHow()
{
}
public function _initAre()
{
}
}
以下例子中的执行顺序为: Bootstrap类中 _initOne方法第一个调用, _initTwo方法第二个调用。
IndexService类中 indexAction方法是第三个调用
<?php
$configs = array(
'asf' => array(
'root_path' => realpath(dirname(__FILE__)),
)
);
class IndexService
{
public function indexAction()
{
}
}
class Bootstrap
{
public function _initOne()
{
echo '_initOne', PHP_EOL;
}
public function _initTwo()
{
echo '_initTwo', PHP_EOL;
}
}
$handle = new Asf_Application($configs);
$handle->bootstrap()->run();
In the function Bootstrap, Call with function Of Dispatcher
<?php
class Bootstrap
{
public function _initHow($dispatcher)
{
$dispatcher->setDefaultModule('api')->setDefaultService('index')
->setDefaultAction('check');
var_dump($dispatcher->getRequest()->getModuleName());
var_dump($dispatcher->getRequest()->getServiceName());
var_dump($dispatcher->getRequest()->getActionName());
}
/* Same to _initHow($dispatcher) */
public function _initTwo()
{
$dispatcher = Asf_Dispatcher::getInstance();
$dispatcher->setDefaultModule('api')->setDefaultService('index')
->setDefaultAction('user');
var_dump($dispatcher->getRequest()->getModuleName());
var_dump($dispatcher->getRequest()->getServiceName());
var_dump($dispatcher->getRequest()->getActionName());
}
}