[英]what i need to consider when building phar file from php application use php framework like laravel
我是 php 開發人員,使用 laravel-4 作為構建 web 應用程序的框架,在過去的幾天里,我想從在 laravel 框架上創建的 web 應用程序創建 phar 文件。
我在網上搜索了工具 build php archive files (.phar),我找到了PHP box ,這個工具非常好,使用 json 配置文件來構建 phar 文件,但我無法使用它來創建我的 phar 文件,因為有從 web 應用程序創建 phar 文件時的許多注意事項使用像 laravel 這樣的框架。 我的問題是:
laravel 使用 composer autoloader 作為自動加載機制
1-如何處理composer自動加載機制?
2-如何處理框架引導過程? '像laravel'
3- 我需要什么才能讓瀏覽器從 phar 文件中讀取我的索引頁?
4- 如何使用 phar 文件中的框架命令行工具? '像laravel-工匠'
您可以在應用程序中使用 composer.json 並在那里使用 require 框。 當你的應用程序在 laravel 上運行時,你知道你的引導程序可以工作並且也可以在 phar 中工作。
我相信 Box 本身帶來了很多作曲家自動加載的東西,所以你不會遇到麻煩。 我認為 class_map 會自動包含在內。
需要考慮的一件事是,必須傳入配置細節!
通常,您需要“轉發”到您的應用程序,它位於 phar 內部,如下所示:
<?php
require_once "phar://myapp.phar/frontcontroller.php"; // maybe index.php
$config = array('dsn' => 'database-config');
Application::run($config);
在 PHAR 中訪問 PHAR 也是一個問題!
您不能直接訪問打包在 PHAR 中的 PHAR。 首先,您需要提取打包的 PHAR,其次進行轉發調用並傳遞 CLI 命令。 問題在這里解決: https : //stackoverflow.com/a/13537329/1163786
完整示例
box.json.dist
{
"main": "bootstrap.php",
"output": "application.phar",
"compactors": ["Herrera\\Box\\Compactor\\Composer"],
"chmod": "0755",
"directories": ["src/"],
"stub": true
}
引導程序
<?php
require 'vendor/autoload.php'; //<-- this is autoload.php generated by Composer
use MyApp\Application;
$config = parse_ini_file(__DIR__.'/config.ini');
$app = new Application();
$app->run($config);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.