php - 如何以兼容的方式包含 PHP 文件,以便在有和没有 Phar 的情况下进行打包?

标签 php require phar

给定一个具有以下结构的 PHP 应用程序:

/
    lib/
        mylib.php
    web/
        index.php // includes "mylib.php" with: require_once __DIR__ . "/../lib/mylib.php"

我试图用相同的源代码库同时涵盖以下情况:

  1. No Phar:能够按原样使用应用程序,DocumentRoot 指向 web/ 并将所有请求重定向到 index.php.
  2. Minimal Phar:能够生成仅包含 web/index.php 的 phar,并将保存为:web/application-minimal。 phar.
  3. Full Phar:能够生成包含 lib 目录和 web/index.php 内容的 phar,这将保存为:web/application-full.phar

对于 phar 文件,所有请求都将被重定向到 phar 文件本身。

是否可以在不必更改 *require_once* 的情况下实现所有这些用例?

我尝试了不同的方法(相对/绝对)从 *web/index.php 中包含 lib/mylib.php,并尝试使用 Phar::mount( )。我的尝试都没有成功。

最佳答案

只需依赖您的包含路径。

不要做:

require_once __DIR__ . "/../lib/mylib.php";

但是:

require_once "mylib.php";

并在脚本开头设置包含路径:

set_include_path(__DIR__ . '/../lib/' . PATH_SEPARATOR . get_include_path());

关于php - 如何以兼容的方式包含 PHP 文件,以便在有和没有 Phar 的情况下进行打包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15274211/

相关文章:

php - XAMPP PHP偶尔失败数据库连接

javascript 要求在 html 中不起作用

php获取文件的根目录

PHP Phar - file_exists() 问题

javascript - 在 ActionPerformed 上添加 Div 响应

php - android 仅允许购买该应用程序的用户访问该应用程序

ruby - 我如何从 `require' : no such file to load in ruby? 中拯救

PHAR 和 ZLIB 的 PHP 问题

php - 使用 php PharData 提取带有空目录的 tar 存档

php - 我的服务器被黑客入侵,注入(inject)了编码代码。我不知道这段代码的目的是什么?请任何人帮助我