a-blog cms PHP API Reference

bootstrap.php

a-blog cms 共通 bootstrap (closure return 形式)

Web リクエスト以外 (CLI / cron / Symfony Console) からアプリケーションを起動するときの 共通前処理を closure として返す。$ablogcmsRoot (= config.server.php / index.php / php/config/* が置かれた CMS ルートディレクトリ) は 呼び出し側で決定 する。

呼び出し側のシナリオ別の解決例:

  • cron/example.php (symlink デプロイ対応): $bootstrap(dirname($_SERVER['SCRIPT_FILENAME'], 2));

  • phpstan/bootstrap.php や PHPUnit のように Web docroot を介さないケース: $bootstrap(DIR . '/../ablogcms');

このファイルが提供するもの:

  • REQUEST_TIME / START_TIME の定義
  • config.server.php (DB 接続情報など) の読み込み
  • php/config/app.php / polyfill.php / config.user.php の読み込み
  • setPath() で SCRIPT_DIR / DOCUMENT_ROOT / LIB_DIR 等を確定
  • composer autoload + 独自 autoload の登録
  • .env (Dotenv) の読み込み
  • env() 関数の定義
  • $_SERVER のフォールバック
  • 各種グローバル定数 (BID / EID / ... 等) のデフォルト値

Application::init() は呼ばないので、closure 実行後に呼び出し側で起動する:

$bootstrap = require DIR . '/php/bootstrap.php'; $bootstrap('/var/www/html/302x'); $config = appConfig(); $app = new \Acms\Application(); $app->init($config['aliases'], $config['providers']);

注意: 呼び出し側は require_once ではなく require (もしくは include) を使うこと。 require_once はキャッシュ後の 2 度目で true を返し、closure を取り出せない。

Table of Contents


        
On this page
  • Table Of Contents

Search results