[CodeIgniter4]-将控制器放入子目录中,这是一个小坑,CI4中文例子,目前我找的只有迅睿CMS(https://www.xunruicms.com/down/)一个示例,但是这丫已经魔改过了,还需要理解迅睿的思路。
将控制器放入子目录中
随着项目的变大就需要把控制器放在子目录中,废话不多说,上方法。
app/Config/Routes.php 文件我修改过的地方
因我讨厌Home作为默认,哈哈哈
/** * -------------------------------------------------------------------- * Router Setup * 路由器设置 * -------------------------------------------------------------------- */ $routes->setDefaultNamespace('App\Controllers'); $routes->setDefaultController('Index'); $routes->setDefaultMethod('index'); $routes->setTranslateURIDashes(false); $routes->set404Override(); $routes->setAutoRoute(true);
/** * -------------------------------------------------------------------- * Route Definitions * 路由定义 * -------------------------------------------------------------------- */ // We get a performance increase by specifying the default // route since we don't have to scan directories. //我们通过指定默认值来提高性能 //路由,因为我们不必扫描目录。 $routes->get('/', 'Index::index');
方法
在控制器目录新建一个子目录
如:app/Controllers/Admin
建立默认方式文件(DefaultMethod):Index.php文件
如下代码所示即可
<?php namespace App\Controllers\Admin;
// 采用命名空间的方式调用这个功能 use App\Controllers\BaseController; class Index extends BaseController { public function index() { echo 'admin'; } }
效果如下
附赠PHP命名空间解析
菜鸟教程:https://www.runoob.com/php/php-namespace.html
官方教程:https://www.php.net/manual/zh/language.namespaces.php