【问题标题】:Project Structure with composer带有作曲家的项目结构
【发布时间】:2018-09-11 08:05:05
【问题描述】:

我正在尝试使用 composer-file 创建一个项目。
Reason 主要是我不想上传到 git 的依赖项。
我的预期结构是这样的:

项目根文件夹
- 项目子文件夹
- 供应商(具有 required 依赖项)
- index.php
- 作曲家.json
- README.md

但是使用composer安装的结构是这样的:

项目根文件夹
- 供应商
- 供应商/作曲家
- 供应商/智能(依赖)
- 供应商/我的项目
- 作曲家.json

我知道许多不同的项目都有特殊的安装程序,但我只是不明白需要安装程序才能获得预期的结构,而且如果没有特殊的安装程序也不知道如何做到这一点。

这是我试过的一个作曲家文件的内容:

{   
    "name": "wdb/tutorial-oop",  
    "require": {  
        "smarty/smarty": "~3.1"  
    }
}  

当我在本地文件中尝试这个 composer-json 内容并执行 composer install 时,我得到了相同的结构:

{  
    "require": {  
        "wdb/tutorial-oop": "dev-master"  
    }
}  

所以我的问题是,一个作曲家文件必须如何看待项目结构的创建,就像我在这个问题的顶部所描述的那样。 基本问题是我不希望我的项目作为依赖项安装在供应商目录中,而是安装在项目文件夹的根目录中,另外我不想使用 composer 自动加载器。

编辑:
根据要求,我在项目根目录中的完整作曲家文件:

{
    "name": "wdb/tutorial-oop",
    "type": "project",
    "description": "Your package description goes here",
    "keywords": ["oop","mvc","tutorial"],
    "homepage": "https://barlians.com",
    "license": "GPL-3.0-or-later",
    "authors": [
        {
            "name": "David Bruchmann",
            "email": "david.bruchmann@gmail.com",
            "homepage": "https://barlians.com",
            "role": "Author, Developer"
        }
    ],
    "support": {
        "email": "david.bruchmann@gmail.com"
    },
    "require": {
        "smarty/smarty": "~3.1"
    }
}

【问题讨论】:

  • 您不应该将您的项目添加到require 部分。您已经拥有了,无需再次安装。
  • @rob006 我只在最后一个本地作曲家文件中这样做,并使用“作曲家安装”执行。这与我在命令行上的想法相同 composer require my/project
  • composer 只是处理和接触供应商文件夹。并直接提示:如果您是 composer 新手,请不要手动编写 composer.json。看看供应商/作曲家 - 它将是自动加载器
  • @NormanM 谢谢,你建议如何创建作曲家文件?
  • @NormanM 关于自动加载器我知道作曲家正在提供它。我刚刚专门为这个项目写了一个。

标签: composer-php


【解决方案1】:

您安装项目的方式不正确。 composer require 命令用于安装依赖项,所以它们会转到vendor 目录。

要安装项目,您应该使用create-project 命令:

composer create-project wdb/tutorial-oop

【讨论】:

  • 谢谢你成功了!由于我对进一步的答案感到好奇,我将等待分配赏金,直到 7 天期限结束。
  • 你今天为我保存了一个活动,所以无论如何你都应该得到赏金 ;-)
  • 这将从 Packagist 中提取项目,对吗?您可以执行create-project 命令从 github 或 bitbucket 或其他任何地方加载吗?
  • @Jakar 你可以使用--repository 开关。但是直接从源代码克隆存储库可能是更好的选择。
猜你喜欢
  • 2018-04-22
  • 2014-11-10
  • 2013-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-24
  • 1970-01-01
  • 2016-01-31
相关资源
最近更新 更多