我正在开发的项目需要使用来自多个第三方的PHP SDK。其中两个是Amazon Web Services和Google API Client(适用于Google+),它们都使用Composer来管理文件/依赖项。我不确定如何最好地设置代码/结构,因为我不需要同时加载AWS和Google。我可能需要在一个区域使用AWS而在另一个区域需要Google,所以我不想每次都自动加载所有内容,并且从那时我不需要额外的库。现在我的结构设置如下:
因此,Composer相关的所有内容都在共享的composer.json文件中,以及单个供应商目录中的所有供应商文件。但是,我似乎无法找到一种方法来加载说AWS。它希望我从我能说的内容中使用autoload.php,这似乎想要加载所有内容。
如果我想控制每个库,是否需要将其设置得更像?
我显然是Composer的新手,以及如何最好地利用它,并希望确保我为我的情况和未来的管理设置最佳方式。
答案 0 :(得分:3)
使用Composer时,它只会在代码中实际调用类时加载类。据我所知,这使用PHP spl_autoload_register。
因此,在回答您的问题时,不会有额外的重大开销(如果有的话)。
答案 1 :(得分:1)
自动加载意味着当您第一次使用该类时,会读取定义类的文件。
您应该将所有项目依赖项包含在一个composer.json中,它们不会被加载到您不能使用它们的文件中。