【问题标题】:Composer - installing packages in parent folder path not a new folderComposer - 在父文件夹路径中安装包而不是新文件夹
【发布时间】:2013-12-10 05:22:29
【问题描述】:

每当我执行composer create-project slim/slimcomposer require slim/slim + composer update 时,composer 都会将项目文件上传到我已经父项目目录中的新目录中,所以我最终会得到

myProject -> slim -> 我的项目文件在这里。

我想做的是

myProject -> 我的项目文件在这里

我尝试通过 composer 安装的大多数框架都会发生这种行为。我无法将新创建的目录中的文件移动到父目录中,因为这会扰乱自动加载以及令人头疼的问题。有时我必须在父 myProject 目录中工作,因为我喜欢克隆 git repos 并在其中使用 composer。

【问题讨论】:

    标签: php dependency-management composer-php


    【解决方案1】:

    我想知道你真正想要什么文件布局,但这是我得到的:

    mkdir projectDir
    cd projectDir
    

    那是你要填充的空目录。

    composer require slim/slim "2.3.*"
    

    这会将 slim 框架添加到您的空目录中,即添加一个新创建的 composer.json 文件,同时添加该要求并安装它。

    此时此目录看起来非常像您的myProject -> my project files here

    【讨论】:

    • 您所做的工作流之后的目录实际上看起来像这样 myProject -> vendor -> slim -> files
    • 无论如何要让它成为 MyProject -> 文件并且仍然让 vendor/autoload.php 工作?
    • 没错,但您的文件不必进入vendor/slim/slim,是吗?这是不寻常的,docs 中没有提到它。您所要做的就是在代码中包含vendor/autoload.php,通常是在引导程序的早期。
    • 不不,我不希望文件进入 MyProject/vendor/slim/ :) 这就是我想要避免的。因此,在完成 composer install 并将它们顽固地放入 vendor/slim 之后,我必须手动将文件取出并将它们放在 Myproject 目录中,这会破坏自动加载,因为我不能再使用类。
    • 为什么要更改 Slim 文件的位置?您不必这样做,您所要做的就是在您的第一个 PHP 脚本开始时调用自动加载器文件,以使所有类都可用。
    【解决方案2】:

    这是你生成这个结构所需要的:myProject -> 我的项目文件,将所需的目录传递给composer,它将生成它。

    composer require slim/slim "2.3.*" myProject
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-27
      • 1970-01-01
      • 2020-01-30
      • 2014-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多