【问题标题】:Composer install package in front of vendor folder not inside as a third partyComposer 将包安装在供应商文件夹前面,而不是作为第三方安装在里面
【发布时间】:2018-02-13 23:22:10
【问题描述】:

我正在开发一个 PHP 包,我已经向 packagist 添加了一个测试版本,所以现在我可以像这样简单地安装我的包composer require timino/timino dev-master 包安装正确但是包安装在供应商文件夹中,就像这样

timino
└── vendor
    ├── composer
    └── timino
        └── timino
            ├── App
            │ 
            └── pub

所以它与我想要的结构完全不同,在这种情况下,我需要将server root 指向一条很长的路径,此外我需要在里面生成另一个作曲家自动加载。所以如果有可能我想让作曲家在供应商之外安装包,使其看起来与我的本地项目版本完全相同,就像这样

   timino
    ├── App // business logic
    │   
    ├── pub  // public root dir for servers (apache or nginx)
    │
    └── vendor // 3rd party 

到目前为止,我已经看到了 get composer website documentation on how to install a package in a custom location,但我似乎无法找到解决我的问题的实际示例。

我怎样才能让作曲家这样做?谢谢。

【问题讨论】:

  • 要创建一个基于timino/timino的项目吗?

标签: php composer-php


【解决方案1】:

运行

$ composer create-project timino/timino foo-bar-baz "dev-master"

foo-bar-baz目录下基于timino/timino:dev-master创建一个新项目。

参考见:

示例

我跑了

$ composer create-project timino/timino foo-bar-baz "dev-master"

导致

Installing timino/timino (dev-master 3db1cda092af6bdf9bdb754c353f97d7e3121141)
  - Installing timino/timino (dev-master master): Cloning master from cache
Created project in foo-bar-baz
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Writing lock file
Generating autoload files
Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? Y

然后

$ tree -L 1 --dirsfirst foo-bar-baz

导致

foo-bar-baz
├── App
├── pub
├── vendor
├── README.md
├── composer.json
└── composer.lock

3 directories, 3 files

【讨论】:

  • 非常感谢,这正是我想要的!
猜你喜欢
  • 2019-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-23
  • 1970-01-01
  • 2019-12-25
  • 2015-09-27
  • 2014-09-08
相关资源
最近更新 更多