### [phpcms有控制器吗](https://www.prosaas.cn/article/455) **Published:** 2023-02-17T02:37:47 **Author:** 5201314 **Excerpt:** phpcms有控制器。phpcms控制器是模块的类文件,储存在“phpcms/modules”下面,每个模块都… > phpcms有控制器。phpcms控制器是模块的类文件,储存在“phpcms/modules”下面,每个模块都是独立的命名方式,类名是“文件名+.php命名”格式;控制器类默认继承系统的函数库,可以直接使用。控制器类的类名称与控制器文件名必须相同。 ![](//zhiqipro.oss-cn-beijing.aliyuncs.com/2023/12/20231212114746649.jpg) 本教程操作环境:windows7系统、phpcms v9版,DELL G3电脑 **phpcms有控制器。** **phpcms中什么是控制器** phpcms控制器是模块的类文件,储存在phpcms/modules下面,每个模块都是独立的命名方式,类名是文件名+.php命名格式,控制器类默认继承系统的函数库,可以直接使用。控制器类的类名称与控制器文件名必须相同。 **新增一个控制器** 下面我们就在phpcms/modules下面新建一个test文件夹,在test文件夹里面新建一个名叫mytest.php的文件,在文件里面添加以下代码: defined('IN\_PHPCMS') or exit('No permission resources.');class mytest { function \_\_construct() { } public function init() { $myvar = '这是默认加载!'; echo $myvar; } public function mylist() { $myvar = '这是自定义list!'; echo $myvar; } } 然后我们在浏览器输入以下访问方式即可 `http://域名/index.php?m=test&c=mytest` 默认加载init()方法 `http://域名/index.php?m=test&c=mytest&a=mylist` 加载的是mylist方法 **模板介绍** **前台模板** 网站前台模板位置在phpcms/templates/default/模块下面 我们在控制器mytest.php文件init()方法里面加入加载模板方法 include template('test', 'mytest', 'default'); 在phpcms/templates/default/目录下面新建一个test文件夹和mytest.html文件即可。 **后台模板** 后台模板文件在phpcms/modules/模块名称/templates 目录中 **带权限的控制器** 后台控制器 在phpcms/modules/admin/下面新建一个mytest\_admin.php文件,文件代码如下: defined('IN\_PHPCMS') or exit('No permission resources.'); pc\_base::load\_app\_class('admin','admin',0); class mytest\_admin extends admin{ function \_\_construct() { } public function index(){ echo "后台控制器"; } } 访问地址:http://域名/index.php?m=admin&c=mytest\_admin&a=index **phpcms自定义模型** 在类上面引入模型 pc\_base::load\_sys\_class('model', '', 0); 然后类extends继承model 在\_\_construct方法里面添加以下代码: $this->db\_config = pc\_base::load\_config('database'); $this->db\_setting = 'default'; parent::\_\_construct(); **查询语句** function init(){ $sql = 'select \* from v9\_news '; $data = $this->get\_array\_by\_sql($sql); var\_dump($data); } public function sql\_query($sql) { if (!empty($this->db\_tablepre)) $sql = str\_replace('phpcms\_', $this->db\_tablepre, $sql); return parent::query($sql); } public function fetch\_next() { return $this->db->fetch\_next(); } //通过SQL语句查询一条结果 public function get\_one\_by\_sql($sql){ $this->sql\_query($sql); $res = $this->fetch\_next(); $this->free\_result(); return $res; } //通过sql语句查询数组 public function get\_array\_by\_sql($sql){ $this->sql\_query($sql); $res = $this->fetch\_array(); $this->free\_result(); return $res; } //释放数据库结果资源,调用底层完成 public function free\_result() { $this->db->free\_result(); } PHP中文网,大量的免费PHPCMS教程,欢迎在线学习! 以上就是phpcms有控制器吗的详细内容,更多请关注知企PROSAAS其它相关文章! **Tags:** default, html, http, php, PHPCMS, 继承 **Categories:** PHPCMS ---