php - 如何解决require_once中的致命错误
问题描述
我的项目有两个入口点
project (root-folder)
/config(folder)
config.php
/service(folder)
service.php
index.php
例如
文件 1:/index.php(第一个入口点) - 这里我们包含配置文件夹中的配置
<?php
require_once('config/config.php');
require_once('service/service.php');
?>
文件 2:service/service.php - 这里我们包含配置文件夹中的配置
<?php
require_once('../config/config.php');
?>
如果我调用文件 2:service/service.php 没有致命错误
但是当我调用文件 1:/index.php 时,它变成了致命错误,因为它无法要求 'service/service.php' 因为它再次需要并且配置路径无效
如何解决这个问题。
解决方案
原因:
出现此问题是因为您的执行从开始index.php
,然后您需要service/service.php
. 现在,service.php
当您这样做时../config/config.php
,PHP 会尝试从index.php
角度解析目录路径,但它没有找到任何这样的文件或目录。因此,错误。
解决方案:
在 中声明一个常数index.php
。检查此常量是否存在于service/service.php
. 如果没有,则需要它,否则像下面这样跳过它:
索引.php:
<?php
define('INDEX_ENTRY_POINT',true);
require_once('config/config.php');
require_once('service/service.php');
?>
服务.php:
<?php
if(!defined('INDEX_ENTRY_POINT')){
require_once('../config/config.php');
}
?>
注意:最好使用__DIR__
绝对路径而不是相对路径来避免此类问题。
推荐阅读
- oracle - 使用卷时,将文件从 url 添加到 docker 图像以不同的结果结束
- docker - 如何在 gitlab ci/cd 中不使用“docker build/daemon”命令为 vue.js 应用程序构建 docker 映像?
- python-3.x - 为什么花基本身份验证总是弹出登录表单
- android - 如何删除 TabLayout 工具提示?
- python - 带有附加键的字典理解
- python - PyOpenGL glDeleteBuffers 和 glDeleteVertexArrays 产生错误
- tabs - 添加 Buddypress 选项卡以显示成员(添加朋友选项卡)
- ios - 收到推送通知时,ReactNative 应用程序可能会在后台振动,但本机 iOS 应用程序(Swift)无法在后台振动
- python-3.x - 有没有办法提高 KivyMD MDDatatable 的效率?
- python - 如何确保反应来自用户而不是机器人本人?