Bootstrap

Bootstrap是指在应用开始解析并处理接受请求之前,一个预先准备环境的过程。所有请求执行之前都会按照顺序逐个调用Bootstraop初始化_init*方法,Bootstrap类必须继承Star_Application_Bootstrap_Bootstrap。 见例子如下:

  1. <?php
  2. require "Star/Application/Bootstrap/Bootstrap.php";
  3. class Bootstrap extends Star_Application_Bootstrap_Bootstrap
  4. {
  5. protected function _initLayout()
  6. {
  7. if ($request->isAjax() == true)
  8. {
  9. return ;
  10. }
  11. //启动布局
  12. Star_Layout::startMvc(array(
  13. "base_path" => APPLICATION_PATH . "/layouts",
  14. "script_path" => "default",
  15. ));
  16. }
  17. protected function _initTheme()
  18. {
  19. //初始化主题 默认scripts
  20. $this->view->setTheme("scripts");
  21. }
  22. protected function _initRoute()
  23. {
  24. //添加路由
  25. }
  26. protected function _initSession()
  27. {
  28. //初始化SESSION
  29. }
  30. protected function _initLog()
  31. {
  32. //初始化日志存放目录 默认存放application/logs
  33. Star_Log::setLogFilePath($log_path);
  34. }
  35. protected function _initCsrfToken()
  36. {
  37. $user_agent = $this->request->getUserAgent();
  38. $ip = $this->request->getIp();
  39. $token = Star_Config::get("resources.csrf_token");
  40. $arr_temp = array($user_agent, $ip, $token);
  41. sort($arr_temp, SORT_STRING);
  42. //初始化csrf_token值
  43. $this->view->csrf_token = sha1(implode($arr_tep));
  44. }
  45. }
建议:引导工作必须在处理每一次请求之前都进行一遍,因此让该过程尽可能轻量化就异常重要,请尽可能地优化这一步骤。