簡體   English   中英

從 php 應用程序構建 phar 文件時我需要考慮什么使用像 laravel 這樣的 php 框架

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM