使用 Composer 仅加载 PHP 中的特定依赖项
Loading only specific dependencies in PHP with Composer
假设我在自定义 PHP 环境(没有 Laravel 或 Symfony)上有一个后端 运行。它大部分时间用作 API 服务器。但是每天一次,我需要发送一些邮件。假设我为此使用了专用工具:Twig 来创建邮件正文,PHPMailer 将它们发送出去。我不需要这些来回答传入的前端请求。
我的问题是:在编译响应前端请求的代码时,我可以要求 Composer(我用作依赖管理器)排除 Twig 和 PHPMailer 吗?
显然,这里的示例可以节省几分之一秒和几分之一的 RAM,但是如果我还有其他仅用于其他目的的依赖项怎么办?
我认为您可以重新考虑您的应用程序的结构。如果您有 2 个独立的部分,它们可以拆分为 2 个 php 个应用程序,它们拥有 composer.json。公共代码可以作为依赖加载。
无论如何,有未使用的依赖项不是一个大问题,它对性能的影响几乎为零。因此,从技术上讲,您想要实现的目标更多是关于代码的纯度,而不是性能优化。
Obviously, the example here would save me fractions of seconds, and fractions of RAM
它实际上并没有为你节省任何东西。 Composer 的自动加载器仅在您请求时加载 class。如果您从不在前端请求中使用 Twig 或 PHPMailer,它永远不会加载它,因此不会使用 RAM 或 CPU。
基本上它已经按照您想要的方式工作了。
假设我在自定义 PHP 环境(没有 Laravel 或 Symfony)上有一个后端 运行。它大部分时间用作 API 服务器。但是每天一次,我需要发送一些邮件。假设我为此使用了专用工具:Twig 来创建邮件正文,PHPMailer 将它们发送出去。我不需要这些来回答传入的前端请求。
我的问题是:在编译响应前端请求的代码时,我可以要求 Composer(我用作依赖管理器)排除 Twig 和 PHPMailer 吗?
显然,这里的示例可以节省几分之一秒和几分之一的 RAM,但是如果我还有其他仅用于其他目的的依赖项怎么办?
我认为您可以重新考虑您的应用程序的结构。如果您有 2 个独立的部分,它们可以拆分为 2 个 php 个应用程序,它们拥有 composer.json。公共代码可以作为依赖加载。
无论如何,有未使用的依赖项不是一个大问题,它对性能的影响几乎为零。因此,从技术上讲,您想要实现的目标更多是关于代码的纯度,而不是性能优化。
Obviously, the example here would save me fractions of seconds, and fractions of RAM
它实际上并没有为你节省任何东西。 Composer 的自动加载器仅在您请求时加载 class。如果您从不在前端请求中使用 Twig 或 PHPMailer,它永远不会加载它,因此不会使用 RAM 或 CPU。
基本上它已经按照您想要的方式工作了。