重建App / Controllers目录后加载控制器

时间:2017-03-03 10:25:46

标签: php

我将控制器保存到我项目的App / Controller目录中相应的子目录,

离。

1.App/Controller/Common for header,footer,home,top_column,left column。

2.App/Controller/User for user,user-permisson。

等等等等。

App / Controller目录保持不变,但每个控制器都有不同的子文件夹。

要加载这些控制器,我想我首先需要爆炸路径,删除子目录名,然后在App / Controller的目录中查找控制器,如果找到则实例化它。

以下是我工作的代码草案,以检查上述内容是否有效

<?php
$path = 'common/Left_Column';

$result = explode("/", $path);
array_shift($result);
$result = implode("/", $result);

echo $result; // Displays Left_Column
echo '<br>';

$file = 'App/Controller/' . $path . '.php';
echo $file; // Displays App/Controller/common/Left_Column.php
echo '<br>';

$class = $result;
echo $class; // Displays Left_Column

$controller = new $class(); // Error: Fatal error: Class 'Left_Column' not found in C:\xampp\htdocs\w3school\index.php on line 19

它正在工作,但我尝试实例化该类的最后一行我收到此错误“错误:致命错误:在第19行的C:\ xampp \ htdocs \ w3school \ index.php中找不到类'Left_Column'”。

为什么找不到类Left_Column?

修改:拼写为coulmn的列,现在已更改。

2 个答案:

答案 0 :(得分:1)

也许它被称为Left_Co lu mn你有错字吗?

答案 1 :(得分:0)

您是否忘记在调用类构造函数之前添加此行?

 require_once $file;