PHP包含子类路径

问题描述:

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

// 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 

的问题是,由于需要路径是相对于some_request.php,也不会找到A.class.php因为路径将结束是/model/entity/A.class.php,它应该是/class/model/entity/A.class.php

您可以使用相对路径要做到这一点(你已经在那里):如果你想上去两个目录

你会怎么做:

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

从您的结构,它看起来像你想是这样的:

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

我缺少从你的问题的东西吗?

使用

$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