有時候,在獨立的 PHP 程式中,為了方便,也想要使用 Laravel 的元件。
啟始相關設定
define('BASEDIR', __DIR__.'/../rtcou-src.axd');require BASEDIR.'/bootstrap/autoload.php';$app = require_once BASEDIR.'/bootstrap/app.php';$app->useStoragePath(__DIR__.'/storage');$dotenv = new Dotenv();$dotenv->load(BASEDIR);use Illuminate\Database\Capsule\Manager as Capsule;$la_container = new Illuminate\Container\Container;$la_container['config'] = new Illuminate\Config\Repository();// 啟始 DB 設定$conf = 'database';$conf_file = BASEDIR.'/config/'.$conf.'.php';if (file_exists($conf_file)) { $la_container['config']->set($conf, require $conf_file);}// Capsule\Manager will overwrite ['config.database.default']// Save the value and restore it later$default_conn = $la_container['config']['database.default'];$capsule = new Illuminate\Database\Capsule\Manager($la_container);// restore ['config.database.default']$capsule->getDatabaseManager()->setDefaultConnection($default_conn);$capsule->setAsGlobal();$capsule->bootEloquent();// // 註冊 resource,下列兩種作法皆可$la_container['db'] = $capsule;// 啟始 View 的設定use App\Lib\MyBlade as View;// 設定 view 的設定$viewPath = 'asp_func/views';$cachePath = 'asp_func/cache';$la_container['config']->set('view.paths', (array)$viewPath);$la_container['config']->set('view.compiled', $cachePath);$GLOBALS['view'] = new View($viewPath, $cachePath, $la_container);使用
$view = $GLOBALS['view'];echo $view->make('homepage', ['name' => 'John Doe'])->render();$rs = DB::select("select @@version");dump($rs);use Illuminate\Http\Request as Request;$request = Request::createFromGlobals();$base = $request->getBasePath();