2013-10-31 26 views
0

我有后续composer.json作曲更新不反映资源库改变

{ 
    "name": "mjohnson/transit", 
    "type": "library", 
    "description": "A file uploader, validator, importer and transformer library.", 
    "keywords": [ 
     "transit", "file", "uploader", "validator", "importer", "transformer", "transporter", 
     "image", "audio", "video", "text", "application", "archive", "s3", "glacier" 
    ], 
    "homepage": "http://milesj.me/code/php/transit", 
    "license": "MIT", 
    "authors": [ 
     { 
      "name": "Miles Johnson", 
      "homepage": "http://milesj.me" 
     } 
    ], 
    "require": { 
     "php": ">=5.3.0", 
     "ext-curl": "*", 
     "ext-mbstring": "*", 
     "aws/aws-sdk-php": "2.0.*" 
    }, 
    "support": { 
     "source": "https://github.com/milesj/php-transit" 
    }, 
    "autoload": { 
     "psr-0": { "Transit": "src/" } 
    } 
} 

当我运行一个composer update源代码不更新,以反映当前的库:https://github.com/milesj/transit

我试图删除锁定文件whitout成功。试图composer [update|install}

举例来说,我现在的(本地)代码:

src/Transit/File.php

[...] 
public function __construct($path) { 
    if (!file_exists($path)) { 
     throw new IoException(sprintf('%s does not exist', $path)); 
    } 

    $this->_path = $path; 
} 
[...] 

当前repository code

[...] 
public function __construct($path) { 
    if (is_array($path)) { 
     if (empty($path['tmp_name'])) { 
      throw new IoException('Passing via array must use $_FILES data'); 
     } 

     $this->_data = $path; 
     $path = $path['tmp_name']; 
    } 

    if (!file_exists($path)) { 
     throw new IoException(sprintf('%s does not exist', $path)); 
    } 

    $this->_path = $path; 

    // @version 1.3.2 Rename file to add ext if ext is missing 
    if (!$this->ext()) { 
     $this->rename(); 
    } 

    // @version 1.4.0 Reset the cache 
    $this->_cache = array(); 
} 
[...] 
+0

你是否在github中配置'packagist hooks'?如果是,当你的composer.json错误时,packagist不会更新composer包,你需要在packagist网站上强制上传,看看有什么不对。 –

+0

@PierreEmmanuelLallemant它不是我的存储库。我只是一个“消费者”.. –

+0

好的。每5分钟更新一次Composer软件包(这些存储在packagist上)(如果软件包已被推送不到5分钟前,如果你在这种情况下,这是正常的,你不能使用它,现在可以)。否则,你应该通知开发者有这个问题。 –

回答

1

你打错composer.json。你提到的那个是用于名为“mjohnson/transit”的库 - 如果你不开发这个确切的软件,那么这是错误的。

您应该创建至少包含此行一个新的composer.json文件:

{ "require": { "mjohnson/transit" : "*" } } 

然后运行composer install

我不知道你做了什么来得到那个composer.json文件,但是如果你最初克隆了其他的存储库,现在编辑那个文件,事情就会破坏!如果有的话备份你的代码。如果不撤销自己的代码,请尝试撤销你做错了什么。

+0

嘿,我认为每个作曲家都更新依赖关系和自身,所以,我访问了我的供应商文件夹并在其中执行了'composer update'。 –

+0

不,您为您的项目定义一个'composer.json',然后安装并更新它。无需更新您单独使用的每个库。事实上,它是反生产的,因为所有东西的依赖都必须一次性评估,而不是单独评估。 – Sven