Php 使用Composer时如何处理配置文件和默认设置?

Php 使用Composer时如何处理配置文件和默认设置?,php,composer-php,config,Php,Composer Php,Config,我想知道在使用Composer时,处理脚本配置文件的最佳实践是什么 更详细地说,如果我有一个脚本,它有几个选项或设置,我通常只会将它们作为变量或常量添加到config.php文件或类似的文件中,然后需要我的脚本文件。或者,如果脚本是一个简单的类,那么只需使用类属性。。。基本的东西,对吗 所以,我的问题是,随着PSR-4、自动加载、作曲家等的出现,做这件事的首选方式是什么 要求用户直接编辑供应商中的文件(例如:编辑配置文件或类中的属性等)感觉是错误的。另外,这些编辑不会在更新时被覆盖吗 我考虑在脚

我想知道在使用Composer时,处理脚本配置文件的最佳实践是什么

更详细地说,如果我有一个脚本,它有几个选项或设置,我通常只会将它们作为变量或常量添加到
config.php
文件或类似的文件中,然后需要我的脚本文件。或者,如果脚本是一个简单的类,那么只需使用类属性。。。基本的东西,对吗

所以,我的问题是,随着PSR-4、自动加载、作曲家等的出现,做这件事的首选方式是什么

要求用户直接编辑供应商中的文件(例如:编辑配置文件或类中的属性等)感觉是错误的。另外,这些编辑不会在更新时被覆盖吗

我考虑在脚本中使用
defined()
来查找某些常量,用户可以在自己的配置文件中设置这些常量。这可能适用于较小的项目,但可能会变得繁琐且难以扩展。对于某些脚本,如果用户未定义常量,则可能很难给出合理的默认值

我还考虑使用Composer的一个“钩子”来触发一个脚本,该脚本将配置文件移动到项目的根目录中。但是我不喜欢在用户的项目中随意放置一个配置文件


我是不是想得太多了?你们通常如何处理这种情况?

没有配置文件。让包含项目的代码在运行时设置配置值


如果您使用面向对象的php,您可能希望将任何必需的配置参数作为构造函数或工厂方法的参数,并为可选参数或存在合理默认值的参数提供setter方法。

您的问题是什么?正如帖子所说,我想知道在使用自动加载(例如使用Composer)时,处理外部配置文件的最佳做法是什么。通常,它通过配置绑定到框架,并具有配置类。在使用框架的情况下,这是有意义的。但我问了更多关于小脚本的问题,或者当框架没有被使用时,我用了不正确的词。我会使用一些DependencyInjection组件(通常是1-2个包,而不是整个框架)来处理这种配置加载。像这样的