php - Composer : how to add a dependency without network connection?

标签 php composer-php autoload

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

我自定义的 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 更新了我的主 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,其中包含我要添加的库。

然后只需启动一个 composer update 命令!

注意,zip 的根目录必须包含一个 composer.json 文件,并且这个 composer.json 文件必须包含一个版本!

关于php - Composer : how to add a dependency without network connection?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26378840/

相关文章:

php - 如何设置仅针对用户当前使用的语言的国家/地区显示的产品费用

php - 使用 laravel 拒绝 .composer/config 文件权限

codeigniter - Composer破坏了Codeigniter中现有的自动加载功能

php - 如何检查自动加载是否只加载使用过的类?

php - jQuery 使用延迟加载插件从外部文件加载图像

php - 为什么一个系统中有很多php.ini文件?

找不到php命名空间类 - Twig Composer

ruby-on-rails - 在 Rails 4 中引发自定义错误

php - Composer、Laravel 和本地包

php - php 中的浏览器名称?