【问题标题】:Is it bad practice to include classes within classes?在类中包含类是不好的做法吗?
【发布时间】:2012-11-28 05:03:56
【问题描述】:

假设我有一个名为 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 是否被认为是不好的做法?

【问题讨论】:

标签: php oop class


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    使用 required_once 和 include_once。在类声明之前使用包含结构

    include_once 'path/to/class/a.php';
    
    class B extends A
    {
      public function __construct()
      {
         // your code
      }
    
    }
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-03-23
        • 2011-09-22
        • 2019-04-06
        • 1970-01-01
        • 2021-05-07
        • 2011-02-14
        • 2020-05-19
        相关资源
        最近更新 更多