如何在自定义PHP MVC中要求子目录中的文件


How to require the file in sub directory in custom PHP MVC?

我在php中创建了一个mvc结构,只是为了在php中学习。这是一个简单的成功,因为我遵循了在线教程。

当前mvc的目录结构:应用程序|-控制器1.php、2.php、3.php
|-libs1.php、2.php、3.php
|-视图1.php、2.php、3.php|-模型1.php、2.php、3.php|-公共

控制器的调用由libs文件夹中一个名为bootstrap.php的文件完成。

我对目录结构做了一些更改,如下所示:应用程序|-控制器|-模块11.php、2.php、3.php

  |- module2
       1.php , 2.php , 3.php 

|-libs|-视图|-模型|-公共

尝试集成bootstrap.php中的更改以调用控制器从调用的文件夹。

这是我的

private $_modulePath = app/controllers/
private function _loadExistingModuleController() {
      $module = $this->_modulePath . $this->_url[0];
        if(is_dir($this->_modulePath . $this->_url[0]) == true) {
        $_dirpath =  $this->_modulePath . $this->_url[0] .'/';
            $file = $this->_dirpath . $this->_url[1];           
                  if (file_exists($file)) {
                require '$file';
                $this->_controller = new $this->_url[1];
                $this->_controller->loadModel($this->_url[1], $this->_modelPath);
            } else {
                $this->_error();
                return false;
            }
        } else {
            $this->_error();
            return false;
        }
    }

我正在接收未定义的偏移:

关于如何做到以上的任何建议。谢谢

问题:

尚未定义$this->_dirpath,您正在定义$_dirpath

解决方案:

要修复您的最新问题更改:

$_dirpath =  $this->_modulePath . $this->_url[0] .'/';

$this->_dirpath =  $this->_modulePath . $this->_url[0] .'/';