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