gpt4 book ai didi

php - 如何使用 Composer 确定项目的根目录

转载 作者:可可西里 更新时间:2023-10-31 23:30:48 25 4
gpt4 key购买 nike

我有一个用 PHP 创建的应用程序(“foo”),它使用 composer 为其带来依赖性。依赖项之一是我们创建的另一个项目(“bar”)。

bar 由 composer 添加到 foo 应用程序时,bar 需要访问 foo 的 MySQL 数据库 应用程序。数据库凭据存储在 foo 应用程序的配置目录中。

foo 的文件结构看起来有点像这样:

app/# foo 应用程序的文件
config/#访问MySQL的配置信息
vendor/# Composer 管理的文件,包括我们的酒吧应用程序
composer.json # 将信息加载到 vendor/目录中

当我自己开发 bar 应用程序时,我需要能够在我的 bar 开发应用程序的根目录下放置一个 config/目录,并且 < em>bar 需要能够访问它。如果 bar 是另一个 Composer 项目(foo,在这种情况下)的一部分,我需要 bar 知道去 foo 用于 config/目录,而不是在 bar 的根目录中查找。

bar 如何确定 config/的正确目录?我想我需要找到 composer 安装的根目录,但我不知道该怎么做。

如果一个真实世界的例子会有所帮助...

我正在将此 foo 应用程序部署到 Amazon OpsWorks。 OpsWorks 将 opsworks.php 文件放置在已部署应用程序的根目录中。我需要我的子模块(bar 在我上面的示例中)知道从哪里访问 composer 项目根目录下的 opsworks.php 文件。我需要考虑这样一个事实,即 composer 可能被设置为不将 bar 放在/vendor/中,但可能具有不同的文件结构设置。

换句话说,我想询问 Composer 应用程序的根目录在哪里。

最佳答案

您可以使用 composer 自己的 \Composer\Factory::getComposerFile(); 进入项目根目录:

$projectRootPath = dirname(\Composer\Factory::getComposerFile());

对于您的案例,您可以通过以下方式访问您的 config/ 目录:

$configPath = $projectRootPath 。 '/配置'

不要忘记将 composer 添加到您的依赖项中,以便 \Composer\Factory::class 可用:

$ composer 需要 composer/composer

关于php - 如何使用 Composer 确定项目的根目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26513856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com