php - 从 php 应用程序使用像 laravel 这样的 php 框架构建 phar 文件时我需要考虑什么

标签 php laravel-4 composer-php phar

我是 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/

相关文章:

php - 无法使用带有统一服务器的 Chrome 连接到本地主机

php - MySQL Partitioning Join Table(双PK)

php - 测试设计 : How do I simulate the passage of time to test the detection of and response to events scheduled in the future?

php - 隐藏 Composer 安装命令的输出

composer-php - Symfony 演示应用程序安装失败 - pdo_sqlite 丢失

laravel - 没有输出的 Composer 创建项目

php - 链接 CSS 根据 URL 变化并保持子 URL 的样式

javascript - 自动完成建议输入框填充条形码扫描仪

laravel - 如何防止使用 phpunit 触发模型事件?

php - 如何在 Laravel 4 中选择相关模型计数为 0 的模型?