2017-08-28 24 views
1

我使用的是Laravel項目作爲Moodle的本地插件,使用composer/installer包。該項目的佈局是:作曲者掛在Moodle和Laravel之間的「解析SAT依賴」作爲本地插件使用

// Moodle Application 
- composer.json 
- local/ 
    - laravel-plugin/ <- here is the Laravel local plugin 
    - composer.json <- composer.json of Laravel plugin 

Moodle的應用Laravel本地插件

{ 
    "name": "moodle/moodle", 
    "license": "GPL-3.0", 
    "description": "Moodle - the world's open source learning platform", 
    "type": "project", 
    "homepage": "https://moodle.org", 
    "require": { 
     "composer/installers": "~1.0", 
     "Pursuittech/sam": "dev-master" <- here is the Laravel local plugin 
    }, 
    "require-dev": { 
     "phpunit/phpunit": "5.5.*", 
     "phpunit/dbUnit": "1.4.*", 
     "moodlehq/behat-extension": "3.33.1", 
     "mikey179/vfsStream": "^1.6" 
    }, 
    "repositories": [ 
     { 
      "type": "vcs", 
      "url": "[email protected]:Pursuittech/sam.git" 
     } 
    ] 
} 

composer.json的composer.json

{ 
    "name": "Pursuittech/sam", 
    "description": "The Laravel Framework.", 
    "keywords": ["framework", "laravel"], 
    "license": "MIT", 
    "type": "moodle-local", 
    "require": { 
     "php": ">=5.6.4", 
     "laravel/framework": "5.4.*", 
     "laravel/tinker": "~1.0", 
     "composer/installers": "~1.0" 
    }, 
    "require-dev": { 
     "fzaninotto/faker": "~1.4", 
     "mockery/mockery": "0.9.*", 
     "phpunit/phpunit": "~5.7" 
    }, 
    "autoload": { 
     "classmap": [ 
      "database/seeds", 
      "database/factories" 
     ], 
     "psr-4": { 
      "Api\\": "api/", 
      "App\\": "app/" 
     } 
    }, 
    "autoload-dev": { 
     "psr-4": { 
      "Tests\\": "tests/" 
     } 
    }, 
    "scripts": { 
     "post-root-package-install": [ 
      "php -r \"file_exists('.env') || copy('.env.example', '.env');\"" 
     ], 
     "post-create-project-cmd": [ 
      "php artisan key:generate" 
     ], 
     "post-install-cmd": [ 
      "Illuminate\\Foundation\\ComposerScripts::postInstall", 
      "php artisan optimize" 
     ], 
     "post-update-cmd": [ 
      "Illuminate\\Foundation\\ComposerScripts::postUpdate", 
      "php artisan optimize" 
     ] 
    }, 
    "config": { 
     "preferred-install": "dist", 
     "sort-packages": true, 
     "optimize-autoloader": true 
    } 
} 

當我嘗試安裝使用PHP composer.phar -vvv更新Laravel插件,我掛在「解決依賴通過SAT」。

我發現了一個similar question,它在單獨處理Laravel 4.2時存在問題。我沒有經歷過列表中的所有內容,並會在我有時更新。

我的問題是,在結合大型作曲家項目如Laravel和Moodle時,「通過SAT解決依賴關係」是否正常?我是否可以立即採取措施來降低問題的複雜性?

回答

1

嘗試這些步驟,也許你會得到更合理的輸出,它可能的軟件包版本(鎖定版本的軟件包不滿足其他包裝例如,一個)

嘗試沒有-dev的選項首次

衝突
composer update --no-dev -vvv 

嘗試更新包通過包

composer update some/package --no-dev -vvv 

試圖刪除文件夾的供應商和composer.lock

最後檢查每個包的composer.json和比較的要求尋找其排除自己從合作

+1

我通過去除一些沒有必要的發展依賴的解決了這個版本 – jsindos