PHP Composer-如何与多个供应商合作



我正在进行的项目需要使用来自多个第三方的PHP SDK。其中两个是Amazon Web Services和Google API客户端(适用于Google+),它们都使用Composer来管理它们的文件/依赖项。不过,我不知道如何最好地设置代码/结构,因为我不需要同时加载AWS和谷歌。我可能在一个领域需要AWS,在另一个领域则需要谷歌,所以我不想每次都自动加载所有内容,并从我当时不需要的库中获得额外的开销。现在我有这样的结构设置:

  • awscode.php
  • 谷歌代码.php
  • libs
    • composer.json
    • composer.lock
    • 供应商
      • 自动加载.php
      • aws
      • 谷歌

因此,与Composer相关的所有内容都在一个共享的Composer.json文件中,所有供应商文件都在单个供应商目录中。但是,我似乎找不到一种方法来加载AWS。据我所知,它希望我使用autoload.php,它似乎想加载所有内容。

如果我想控制每个库,我需要把它设置得更像这样吗?

  • awscode.php
  • 谷歌代码.php
  • libs
    • aws
      • composer.json
      • composer.lock
      • 供应商
        • 自动加载.php
        • aws
    • 谷歌
      • composer.json
      • composer.lock
      • 供应商
        • 自动加载.php
        • 谷歌

很明显,我对Composer以及如何最好地利用它还很陌生,我想确保我正在为我的处境和未来的管理设置它。

使用Composer时,它只在代码中实际调用类时才加载这些类。据我所知,这使用了PHP spl_autoload_register。

因此,在回答您的问题时,不会有显著的额外开销(如果有的话)。

自动加载意味着定义类的文件在首次使用该类时会被读取。

您应该将所有项目依赖项包含在一个composer.json中,它们不会加载到您不使用它们的文件中。

相关内容

  • 没有找到相关文章

最新更新