【问题标题】:Can I include composer.phar in my project like a class library?我可以像类库一样在我的项目中包含 composer.phar 吗?
【发布时间】:2013-02-09 00:09:09
【问题描述】:

我想使用该功能通过网络界面设置依赖关系。

我在Using Phar Archives: Introduction 教程中发现可以进行下一步操作:

<?php
include 'composer.phar';
?>

但是当我尝试做同样的事情时,我得到了下一个错误:

phar "/var/www/.../composer.phar" is API version 0.0.0, and cannot be processed

#0 /var/www/.../composer.phar(13): Phar::mapPhar('composer.phar') 
...

我的 phpinfo 输出显示下一条信息:

Phar EXT 版本 2.0.1, Phar API 版本 1.1.1

【问题讨论】:

    标签: php composer-php phar


    【解决方案1】:

    你需要做的:

    require 'vendor/autoload.php';
    use <NAMESPACE>\<LIBRARY>;
    

    加载您的作曲家库。 composer.phar 是根据您的 composer.json 文件的内容实际为您检索库的脚本。

    如果您想从 PHP 脚本实际运行 composer.phar,请保持简单,只需使用 shell(例如,使用反引号、shell_exec() 等)。

    $output = `<path_to_composer>/composer.phar [options]`;
    

    您尝试做的是针对已打包为 phar,而不是应用程序。

    【讨论】:

    • 我认为OP实际上想要执行与作曲家相关的动作。
    • @Evert 我会让他澄清一下 - 我不确定你为什么要从 PHP 脚本中执行此操作。嗯,再读一遍,我觉得你是对的。
    • 谢谢大家。 0.是的,@Evert 是对的。 1.我不能使用shell和shell_exec。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-07
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    相关资源
    最近更新 更多