编程语言
首页 > 编程语言> > php – Composer:如何在没有网络连接的情况下添加依赖项?

php – Composer:如何在没有网络连接的情况下添加依赖项?

作者:互联网

我的profesionnal网络阻止互联网访问.一个月前,我从一个存档(包含composer.json文件)和composer.phar一个下载Silex框架,然后我通过硬盘将它们传输到桌面上.

我定制的composer.json:

{
    "name": "user/silex",
    "require": {
        "silex/silex": "1.2"
                , "twig/twig": ">=1.8,<2.0-dev"
                , "doctrine/dbal": "2.2.*"
                , "symfony/security": "~2.3"
                , "symfony/security": "~2.3"
    },
    "autoload": {
        "psr-4": {
            "Portal\\": "src/"
        }
    }
}

它工作正常,我的自动加载定制也是如此.

今天我想添加monolog / monolog包,所以我从其他计算机手动导入它.

我把它放到我的vendor文件夹中,我将以下行添加到我的composer.json文件中:

, "monolog/monolog": ">=1.0.0"

我在控制台上运行:

php composer.phar dumpautoload

它输出:
    生成自动加载文件

然后它会毫无错误地停止,但monolog命名空间不会出现在我的/vendor/composer/autoload_*.php文件中.

我错过了什么?

解决方法:

感谢edmondscommerce的评论,我找到了解决方案:

我使用artifact存储库更新了我的main composer.json文件(我禁用了packagist文件):

{
    "name": "user/silex",
    "repositories": [
        {
            "type": "artifact",
            "url": "artifact/"
        }, {
            "packagist": false
        }
    ], "require": {
        "silex/silex": "1.2"
                , "twig/twig": ">=1.8,<2.0-dev"
                , "monolog/monolog": "1.*"
                , "doctrine/dbal": "2.2.*"
                , "symfony/security": "~2.3"
    },
    "autoload": {
        "psr-4": {
            "Portal\\": "src/"
        }
    }
}

然后我根据composer.json文件中的url放置了一个名为artifact的文件夹.

我在这个文件夹中创建了一个名为monolog-monolog-1.8.zip的zip文件,其中包含我要添加的库.

然后只需启动一个作曲家更新命令!

小心,zip的root必须包​​含一个composer.json文件,而这个composer.json文件必须包含一个版本!

标签:autoload,silex,php,composer-php
来源: https://codeday.me/bug/20190830/1767960.html