在类中包含类是不好的做法吗?

时间:2012-11-28 05:03:56

标签: php oop class

假设我有一个名为smallBox.php的类文件:

<?php
class SmallBox {

    public function boxMethod() {}

}

然后我使用'require'将smallBox.php文件包含到另一个类中:

<?php
class BigBox {

    public function __construct() {

        require 'smallBox.php';
        $box = new SmallBox();
        $box->boxMethod();

    }

}
?>

我是PHP OOP和MVC的新手,并且想知道在BigBox类中包含smallBox.php是否被认为是不好的做法?

3 个答案:

答案 0 :(得分:4)

您应该使用autoloading of classes而不是手动require - PHP文件。基本上,它是一种基于类名加载适当的PHP文件的机制。

答案 1 :(得分:2)

使用require_once和include_once。在类声明之前使用include结构

include_once 'path/to/class/a.php';

class B extends A
{
  public function __construct()
  {
     // your code
  }

}

答案 2 :(得分:1)

这将有效,但请记住,当您包含或需要其他文件时,这些文件变量将在其包含的范围内运行。我曾经尝试使用“loader”类来模拟javas导入行为,但遇到了这个问题,因为我加载的类在主类的范围之外是不可用的。查看手册以获得更清晰的信息。