0

我遇到了包含/需要路径的问题。由于代码风格是 OOP,所以子类化时会出现问题,因为路径是相对于第一个包含文件的。例如:

// path: /class/entity/A.class.php
class A { /*definition*/ }


// path: /class/widget/B.class.php
require_once("../model/entity/A.class.php");
class B extends A { /*definition*/ }


// path /ajax/some_request.php
require_once("../class/widget/B.class.php");
//.. some code to execute

问题是,由于 require 路径是相对于some_request.php,它不会找到A.class.php,因为路径最终会/model/entity/A.class.php在它应该在的位置/class/model/entity/A.class.php

4

2 回答 2

2

您可以使用相对路径来执行此操作(您已经在其中):

如果你想上两个目录,你会这样做:

require_once("../../path/to/my/file.php");

从您的结构来看,您似乎需要以下内容:

require_once("../../../classes/model/entity/A.cass.php");

我从你的问题中遗漏了什么吗?

于 2013-11-05T01:01:37.350 回答
1

利用

$path = dirname(dirname(__FILE__))."/my/path";

尊重当前文件的父目录。以您的代码为例...

// path: /class/model/entity/A.class.php
class A { /*definition*/ }

// path: /class/widget/B.class.php
require_once(dirname(dirname(__FILE__))."/model/entity/A.class.php");
class B extends A { /*definition*/ }


// path /ajax/some_request.php
require_once(dirname(dirname(__FILE__))."/class/widget/B.class.php");
//.. some code to execute
于 2013-11-05T01:04:04.553 回答