使用Composer仅在PHP中加载特定的依赖项

时间:2018-08-17 10:34:52

标签: php composer-php dependency-management

比方说,我有一个在自定义PHP环境(没有Laravel或Symfony)上运行的后端。大多数时候,它被用作API服务器。但是每天我需要发送一些邮件。假设我为此使用了专用工具:Twig创建邮件正文,PHPMailer发送邮件。我不需要这些都可以回答传入的前端请求。

我的问题是:编译代码以回答前端请求时,我可以要求Composer(用作依赖管理器)排除Twig和PHPMailer吗?

很明显,这里的示例将为我节省几分之一秒的时间,并为我节省了几分的RAM,但是如果我还有其他仅用于其他用途的依赖项呢?

2 个答案:

答案 0 :(得分:2)

  

很显然,这里的示例将为我节省几分之一秒的时间,并为我节省几分RAM

它实际上并不能为您节省任何费用。 Composer的自动加载器仅在您请求时才加载类。如果您从未在前端请求中使用Twig或PHPMailer,则它将永远不会加载它,因此将不使用RAM或CPU。

基本上,它已经可以按照您希望的方式工作。

答案 1 :(得分:1)

我认为您可以重新考虑应用程序的结构。如果您有2个独立的部分,则可以使用自己拥有的composer.json分为2个php应用程序。可以将公共代码作为依赖项加载。

无论如何,拥有未使用的依赖关系不是一个大问题,并且对性能的影响几乎为零。因此,从技术上讲,您要实现的目标更多是关于代码的纯度,而不是性能的优化。