只需要Composer中的某些文件夹并安装到自定义路径

时间:2016-05-23 12:46:40

标签: php composer-php

我开始研究一个新的,运行时间更长的php项目。我想尽可能地将我的文件与框架文件分开,以便能够更新框架而无需将我的文件与框架文件分开。

在Java中,我使用maven并将所有内容放在lib文件夹中。从那里,我将libs导入我的代码中。我了解到php的相同工具是作曲家(或者我怀疑如此;))但我很难开始使用它。

我在phpstorm中配置了项目和作曲家,并添加了一个composer.json文件,看起来像这样(我删除了个人信息):

    {
  "name": "example",
  "description": "description_text",
  "minimum-stability": "stable",
  "license": "proprietary",
  "authors": [
    {
      "name": "author's name",
      "email": "email@example.com"
    }
  ],
  "require": {
    "twbs/bootstrap": "v4.0.0-alpha.*",
    "laravel/laravel": "v5.2.*",
    "components/jquery": "2.2.*",
    "components/font-awesome": "4.6.*"
  },
  "config": {
    "vendor-dir": "laravel/laravel/public"
  }
}

正如您所看到的,我试图将所有内容移动到laravel的公共文件夹中,其中Bootstrap和jQuery属于AFAIK(路径基于观察,laravel本身位于vendor / laravel / laravel中)。但当然,laravel也会被放在那里。

最重要的是,作曲家的下载量超出了我的需要。例如,我只需要bootstraps dist文件夹的内容(css和js用于bootstrap 4(以及它们,只有min文件))但它也会安装文档等。

因为我没有这方面的经验,所以我不知道我想要的是什么,或者怎么做。我怀疑我的许多问题都来自于我尝试在同一个composer.json文件中安装laravel和其他东西。

你可以帮帮我吗? :)

此致

基督教

1 个答案:

答案 0 :(得分:0)

引用this Laravel文档,您希望放置所有"框架"在vendor目录中,是的,包括Laravel,请删除你的配置composer.json。

  

vendor目录包含您的Composer依赖项。

您尝试放置物品的地方是您的资源

  

public目录包含前端控制器和您的资产(图像,JavaScript,CSS等)。

app是您放置课程等的地方。

至于这些框架对于不需要的文件有点臃肿,我还没有找到一种很好的方法来清理它们,而不是手动删除它们。

我试图在maven和作曲家之间得出一个结论,但是它的发布方式比我更喜欢。你是对的,这是最接近PHP maven的。

修改

当我重新阅读它时,对你的问题的一个更好的答案是你的代码与框架版本一样需要它。我怀疑开发过程中的任何版本都会破坏向后兼容性。至少我希望不会,如果你知道一个新版本即将推出beta / dev / nightly版本。

至于我上面的陈述是,作曲家被设计成以所描述的方式使用这个结构。如果你想使用作曲家的psr-4自动加载部分,这将对你有很大帮助。

在任何情况下都将供应商视为您的.m2本地回购。