我正在为开发人员构建一个SDK,用于为电子商务平台构建模块,这些模块将使用我们的API进行新的启动.
显然,使用作曲家是理想的,我现在正在做.但是,当我现在检查大多数电子商务平台,或者至少是最受欢迎的电子商务平台时,他们不会使用作曲家.
所以我想知道什么是获得我当前所有软件包所需的所有依赖项的最佳方法,并将它们构建为独立的SDK.
这样我就可以拥有一个适用于作曲家和非作曲家启用平台的版本.
在设计模式方面有没有标准化的方法来做到这一点?我将如何以任何有组织的方式布置所有依赖包?
最佳答案 因为那些电子商务平台不使用composer,所以这并不会强迫你将composer排除在等式之外.您不能将您的软件包作为插件/模块/分发给特定的电子商务平台,但您仍然可以在生产中使用composer的自动加载器.
您可以准备程序包以在计算机或构建服务器上进行部署,归档结果并分发存档.
为简单起见,我的示例将假设您将在本地计算机上准备包:
>创建临时工作目录:
$mkdir -p ~/.tmp && cd ~/.tmp
>克隆你的包裹:
$git clone <package>
>安装依赖项1
$cd ~/.tmp/<package> && composer.phar install --no-dev --optimize-autoloader
或者如果您使用自动化工具执行此操作:
$cd ~/.tmp/<package> && composer.phar install --no-ansi --no-dev --no-interaction --no-progress --no-scripts --optimize-autoloader
>删除.git目录.
>从〜/ .tmp /< package>创建zip / tar存档
>分发档案.
假设您的软件包已经是该电子商务平台的插件/模块,它可以像往常一样从该zip / tar存档安装.
1)关于–optimize-autoloader,请阅读Sven的this answer,这解释了为什么在某些情况下无法帮助您的应用程序变得更快.