2017-07-23 109 views
-1

我正在學習如何更好地維護我編寫的代碼。我有兩個目前正在開發的項目 - 都在開發中,並且都被推送到GitHub。作曲家自動加載後部署不工作

我想包括一個項目在另一個(通過聲明它依賴於一個項目的composer.json文件) - 但它被包括後,它缺少正確的自動加載配置。

我會解釋更好一點:項目A的composer.json文件中是否有「PSR-4」的命名空間映射到「src」目錄的自動加載線 - 在我運行所有好和工作:

composer install 

然後,我可以包含/vendor/autoload.php文件,並立即開始使用該項目。當我查看該項目供應商目錄中生成的「autoload_psr4.php」文件時,我可以看到該數組包含每個composer.json文件的映射命名空間/目錄的引用。

當我嘗試在項目B中包含項目A作爲依賴項時,問題就出現了 - 在運行作曲家安裝後,所有東西都看起來工作 - 供應商目錄被創建並且文件被複制到那裏 - 但是當我查看生成的項目B中的「autoload_psr4.php」文件缺少每個項目A的composer.json文件的映射命名空間/目錄。

有人能指點我的方向嗎?我可能錯過了將自動加載行轉移到項目B的方向?

這裏有兩個composer.json文件:

項目A:

{ 
    "name": "jfreynik/hydra-net", 
    "description": "Network classes for the Hydra framework.", 
    "type": "library", 
    "keywords": [ "http", "net", "rest" ], 
    "license": "MIT", 

    "require": { 
     "php": ">=5.3.0" 
    }, 

    "autoload": { 
     "psr-4": { 
      "hydra\\net\\": "src/" 
     } 
    } 
} 

項目B:

{ 
    "name": "jfreynik/simple-mvc", 
    "description": "A pretty simple MVC framework for building websites.", 
    "type": "framework", 
    "keywords": [ "MVC", "Website Framework" ], 
    "license": "MIT", 

    "repositories": [ 
     { 
      "type":"package", 
      "package": { 
       "name": "jfreynik/hydra-net", 
       "version":"*-dev", 
       "source": { 
        "url": "https://github.com/jfreynik/hydra-net.git", 
        "type": "git", 
        "reference":"master" 
       } 
      } 
     } 
    ], 
    "require": { 
     "jfreynik/hydra-net": "*-dev" 
    }, 
    "minumum-stability": "dev" 
} 

謝謝!

回答

0

問題是我把項目A作爲一個「包」包含在項目B中。我相信「軟件包」不會掃描其包含的composer.json文件。 (如果我錯了,請糾正我) - 通過更改項目B的composer.json文件將項目A引用爲「vcs」,然後自動加載再次運行。 - 這裏是項目B.

{ 
    "name": "jfreynik/simple-mvc", 
    "description": "A pretty simple little MVC framework for building websites.", 
    "type": "framework", 
    "keywords": [ "MVC", "Website Framework" ], 
    "license": "MIT", 

    "repositories": [ 
     { 
      "type":"vcs", 
      "url": "https://github.com/jfreynik/hydra-net" 
     } 
    ], 
    "require": { 
     "jfreynik/hydra-net": "dev-master" 
    }, 
    "minumum-stability": "dev" 
} 

我真的很難找到工作的例子,因爲我真的剛開始使用作曲家,在此之前,原本只包括來自packagist專業包調整composer.json文件。我有很多東西需要學習(即使是在術語方面) - 所以如果任何人都可以添加其他相關信息,以正確的方式將1個開發項目包含在另一箇中,我會接受您的答案。