我是 php 开发人员,使用 laravel-4 作为构建 Web 应用程序的框架,在过去的几天里,我想从在 laravel 框架上创建的 Web 应用程序创建 phar 文件。
我在网上搜索了构建 php 存档文件 (.phar) 的工具,我发现 PHP box ,这个工具非常好,使用 json 配置文件来构建 phar 文件,但我无法使用它来创建我的 phar 文件,因为使用像 laravel 这样的框架从 Web 应用程序创建 phar 文件时需要考虑很多因素。我的问题是:
laravel 使用 Composer 自动加载器作为自动加载机制
1-如何处理composer自动加载机制?
2- 如何处理框架引导过程? '像 Laravel'
3-我需要什么才能让浏览器从 phar 文件中读取我的索引页?
4-如何从phar文件使用框架命令行工具? '像 laravel-artisan'
最佳答案
您可以在应用程序中使用composer.json并在那里需要框。 当您的应用程序在 Laravel 上运行时,您知道您的 Bootstrap 可以工作并且也可以在 Phar 内工作。
我相信 Box 本身带来了很多 Composer 自动加载的东西,所以你不会遇到麻烦。我认为 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
}
bootstrap.php
<?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);
关于php - 从 php 应用程序使用像 laravel 这样的 php 框架构建 phar 文件时我需要考虑什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22731737/