【问题标题】:Composer and Yii作曲家和 Yii
【发布时间】:2013-07-12 22:52:24
【问题描述】:

我使用 composer 作为我的依赖管理器,因为我需要使用 Yii 框架进行开发,所以我将它添加到我的 composer.json 文件中,所以它看起来像这样:

//other properties...
"require": {
    //other dependencies...
    "yiisoft/yii": "dev-master"
}

Composer.json 没问题,Yii 下载正确,但是有一个功能我觉得 composer 漏掉了。 我的 yii 目录现在充满了“垃圾”、演示文件夹、构建文件等我并不真正需要的文件。 有没有办法告诉作曲家只保留一些目录而丢弃其他目录?

【问题讨论】:

    标签: php yii dependencies composer-php


    【解决方案1】:

    对于 composer,我们以不同的方式工作。使用 composer,我们的应用程序只关心它的代码。事实上,如果你用 git kork,你必须将 yii 文件夹添加到 .gitignore 因为不是你的应用程序文件夹。这是 symfony 的方式。

    Yii 呢!?首先我建议你开始 yii 项目:

    $ composer create-project yiisoft/yii path/to/your/project
    

    这是 Yii 与 yii 和 composer 一起工作的方式。之后,当你完成下载 yii 时,composer 会询问你是否要保留 yii 的 git 文件。您可以简单地说不,然后手动删除这些文件。您也可以尝试 fork yiisoft/yii 并改进此行为,以便自动删除内容。

    【讨论】:

    • 我有一个使用 Yii 的自定义应用程序结构,我的依赖项的供应商目录(将转到 yiisoft/yii,是的,它被忽略了 git)和我的“子应用程序”的应用程序目录,如后端,前端等。(非常类似于yii2结构)。但是我只想保留框架目录而不是整个存储库。
    • 不存在只有框架的存储库。只需 fork 1.1.14 项目并删除所有不需要的东西。这很容易。
    • 使用非官方的仓库似乎是一个糟糕的解决方案,我的意思是我可以只 fork 自己官方并删除所有“无用”的东西,然后我将依赖我自己的仓库!
    • 那是关于如何使用包依赖软件的反模式。只有当它可以管理现有项目的依赖关系时它才有用。所以 1) 获取 Composer 2) 获取 Yii 3) 创建应用程序应该只执行一次。并且 1) 更新你的应用程序源代码 2) 更新依赖项,应该是主要用途。
    • 是的,我有一个包含 yii 和一些扩展的作曲家项目。我不使用 create-project 创建 yii 应用程序。更新我的答案是有意义的。我邀请你看看github.com/sensorario/communityii@przemo_li
    【解决方案2】:

    我遇到了完全相同的问题,所以我最终选择了repackaging Yii,因此它只包含框架文件夹。它将封装减少了约 10Mb。这是link to the github repo

    只需将以下内容添加到您的 composer.json 文件中。

    {
        "require": {
            "square1-io/yii-framework": "1.1.14"
        }
    }
    

    然后运行:

    $ composer install
    

    我已经发布了一篇关于它的博客文章:http://blog.square1.io/post/60830077608/yii-1-1-14-via-composer

    【讨论】:

    • 这是一个解决方案,但它只是迫使我在每个新版本中重新打包 yii,但是为您的解决方案 +1。
    • 我们如何获得 1.1.14 以上的版本?
    猜你喜欢
    • 1970-01-01
    • 2021-08-07
    • 2012-10-06
    • 1970-01-01
    • 2015-07-05
    • 2014-01-10
    • 2020-05-30
    • 2016-01-08
    • 1970-01-01
    相关资源
    最近更新 更多