【问题标题】:where do I put composer.json我在哪里放 composer.json
【发布时间】:2014-03-04 04:50:00
【问题描述】:

我已经安装了作曲家。

我的项目目录树看起来像这样

/home/myproject/public_html/myproject.com

我最初将它安装在:

/home/myproject/public_html/myproject.com/bin/composer/

但后来移到:

/home/myproject/usr/local/bin/composer

问题:

  1. 在哪里创建 composer.json ?
  2. 在官方文档中,他们提到为了安装新包,我需要在该文件中编写一个 json 格式的 require 键,这是否意味着我不必通过 ftp 上传包?
  3. 文档进一步说我可以简单地安装依赖项,例如:

    php composer.phar 安装

我不明白这个过程的工作流程(我很新).. 我到底需要做什么才能让一些包运行(比如Respect

【问题讨论】:

    标签: php composer-php


    【解决方案1】:

    Composer 有 2 个基本要素供您考虑:

    1. composer.php 文件本身 - 它可以位于系统上的任何位置 - 通常将它放在搜索路径中很方便,因此您可以从命令行按名称(无路径)调用它。

    2. Composer.json - 此文件是您项目的配置。这通常最好位于项目的顶层。理想情况下,这是您的网络服务器范围之外的目录 - 这样它就永远不会被公开或提供。

    Symfony2 有一些很棒的文档和使用中的作曲家示例。

    另外请注意,您通过 composer 引用的某些包本身将具有 composer 文件 - 以确保它们与您所需的依赖项相匹配 - 它们也可能有自己需要考虑的依赖项。

    我会在下面安装composer.json

    /home/myproject/composer.json
    

    它将超出网络服务器的范围,可用于管理许多资产,例如

      public_html/
      libs/
      config/
      docs/
      vendor/
    

    【讨论】:

    • 好的,明白了。现在实际安装依赖项怎么样,我在 home/myproject/public_html/myproject.com/vendor/ 中有一个“供应商”文件夹,这是我上传包的地方吗?还是在 composer.json 中添加一个 require 键就足够了?
    • 供应商通常位于顶层 - 因为它可能包含您不希望通过 Web 服务器提供服务的代码和配置。虽然 composer 非常灵活,例如 Symfony2 将供应商排除在公共范围之外 - 但确实提供了资产管理功能,允许在需要时将文件/资产发布到 Web 目录中。
    • composer.json files 上的“优秀文档”记录在案。
    【解决方案2】:

    在哪里创建 composer.json ?

    您应该在项目根目录中创建composer.json,例如/home/myproject/public_html/myproject.com/composer.json。如果您的应用程序的所有文件都位于您的 myproject.com 文件夹中。

    在官方文档中,他们提到为了安装新的 我需要在其中写一个json格式的require键 文件,这是否意味着我不必通过上传包 ftp?

    可以,只要您不在共享主机中,因为其中大多数都不允许 CLI (SSH)。

    文档进一步说我可以像这样简单地安装依赖项

    php composer.phar install
    

    是的,你可以简单地输入上面的命令,composer.json 将安装你的包的最新版本。

    Composer.json(尊重包)

    {
        "require": {
            "respect/validation": "dev-master"
        }
    }
    

    现在运行composer install 将安装require 包。

    更多套餐

    {
        "require": {
            "respect/validation": "dev-master",
            "doctrine/orm": "2.*"
        }
    }
    

    现在运行更新composer update,它也会下载doctrine/orm

    【讨论】:

    • 我已经在 /home/myproject/ 中安装了 composer.json ,你是对的,我的应用程序的所有文件都在 /myproject/public_html/myproject.com/ 中,它还能工作吗?即我仍然可以在 /myproject.com/ 中使用依赖项吗?
    • 可以,只要您需要供应商autoload.php 到您的/public_html/myproject.com/ 应用程序文件中。
    猜你喜欢
    • 1970-01-01
    • 2017-11-06
    • 2019-03-27
    • 1970-01-01
    • 2011-07-16
    • 2012-10-14
    • 2012-04-04
    • 2013-09-21
    • 2020-09-30
    相关资源
    最近更新 更多