首页 > 解决方案 > 如何为不同的部署环境更新 PHP 文件路径

问题描述

我希望根据环境更新模型/控制器的文件路径,或者就此而言,甚至将基本的 about.php 更新为没有 .php 扩展名的东西,如源代码中的 about/。

为什么?不想透露安全的实际路径和变量。

例如:

当我在 DEV 环境中调用 delete_user 控制器时,当前hrefin<a>标记指向delete_user.php将 User-ID 作为 GET 变量传递。然后有一个控制器运行 DELETE SQL 查询,并重定向回调用页面。

<a href="delete_user.php?delete_user_id=<?= $row['user_id'] ?>" class="table-action table-action-delete" data-toggle="tooltip" data-original-title="Delete">
</a>

在生产环境中,我希望将href其改为delete-user/user-id.

现在,应该跨环境无缝更新和解释 href 文件路径。

<a href="delete-user/<?= $row['user_id'] ?>" class="table-action table-action-delete" data-toggle="tooltip" data-original-title="Delete">
</a>

环境:NGINX,PHP7.4(LEMP)

在 PHP 中实现这一目标的最佳且可扩展的方法是什么?

标签: php

解决方案


您可以在 php-fmp 设置中添加环境变量并在代码中读取这些变量。这将取决于您的服务器设置,因此您可以搜索所需的内容。

https://www.digitalocean.com/community/questions/setting-environment-variables-in-php-fpm

然后在您的 php 中,您可以使用$_ENV或访问这些变量getenv()

https://www.php.net/manual/en/reserved.variables.environment.php

https://www.php.net/manual/en/function.getenv.php

或者,$_SERVER变量的某些字段可能可以满足您的需要,但这些字段将特定于您的设置,因此您需要var_dump($_SERVER)在开发环境和生产环境中找到适合您的字段。

https://www.php.net/manual/en/reserved.variables.server.php


推荐阅读