创建好应用程序之后才能创建控制器。

如下是一个基础控制器类的例子。在Phpcmf中,所有的控制器都继承了控制器基类。

dayrui/App/Test/Controllers/Home.php

  1. <?php namespace Phpcmf\Controllers;
  2.  
  3. class Home extends \Phpcmf\Common {
  4.  
  5. public function __construct(...$params) {
  6. parent::__construct(...$params);
  7. }
  8.  
  9. public function index() {
  10.  
  11. echo 'hello php7cms';
  12.  
  13. }
  14. }

路由访问

/index.php?s=test&c=home&m=index

自定义路由地址

开发者可以自定义路由的访问URL,配置文件根目录/config/rewrite.php(/表示根目录)

  1. #在[]内部增加下面代码,表示/test.html指向本控制器
  2. 'test.html' => 'index.php?s=test&c=home&m=index',

非常清晰的路由映射关系。

PHPCMF控制器分为三种类型:前端控制器、用户控制器Member、后台控制器Admin。

1、前端控制器:浏览者访问的动作,例如网站首页等

dayrui/App/Test/Controllers/Home.php

  1. <?php namespace Phpcmf\Controllers;
  2.  
  3. class Home extends \Phpcmf\Common {
  4.  
  5. public function __construct(...$params) {
  6. parent::__construct(...$params);
  7. }
  8.  
  9. public function index() {
  10.  
  11. \Phpcmf\Service::V()->assign([
  12. 'meta_title' => dr_lang('测试页面'),
  13. ]);
  14. \Phpcmf\Service::V()->display('test.html');
  15. }
  16. }

访问地址:index.php?s=应用程序目录&c=控制器名称&m=方法名称

2、用户控制器:需要用户登录账号的操作,例如密码修改等

dayrui/App/Test/Controllers/Member/Home.php

  1. <?php namespace Phpcmf\Controllers\Member;
  2.  
  3. class Home extends \Phpcmf\Common {
  4.  
  5. public function __construct(...$params) {
  6. parent::__construct(...$params);
  7. }
  8.  
  9. public function index() {
  10.  
  11. \Phpcmf\Service::V()->assign([
  12. 'meta_title' => $this->lang('测试页面'),
  13. ]);
  14. \Phpcmf\Service::V()->display('test.html');
  15. }
  16. }

访问地址:index.php?s=member&app=应用程序目录&c=控制器名称&m=方法名称

3、后台控制器:管理员的操作

dayrui/App/Test/Controllers/Admin/Home.php

  1. <?php namespace Phpcmf\Controllers\Admin;
  2.  
  3. class Home extends \Phpcmf\Common {
  4.  
  5. public function __construct(...$params) {
  6. parent::__construct(...$params);
  7. }
  8.  
  9. public function index() {
  10.  
  11. \Phpcmf\Service::V()->assign([
  12. 'meta_title' => $this->lang('测试页面'),
  13. ]);
  14. \Phpcmf\Service::V()->display('test.html');
  15. }
  16. }

访问地址:admin.php?s=应用程序目录&c=控制器名称&m=方法名称

运用视图模板

  1. \Phpcmf\Service::V()->assign([
  2. 'test_var' => '这是一个变量',
  3. ]);
  4. \Phpcmf\Service::V()->display('test.html');

上面代码是将变量赋值给模板输出,那么我们输出的模板是test.html

1、前端控制器模板文件

  1. /template/pcmobile/default/home/应用目录/test.html

2、用户控制器模板文件

  1. /template/pcmobile/default/member/应用目录/test.html

3、后台控制器模板文件

  1. ./Views/test.html

./表示当前的应用目录

全局调用控制器

可以在自定义函数或者类中调用控制器中的方法和变量

  1. \Phpcmf\Service::C(); 当前的控制器对象
  2. \Phpcmf\Service::C()->member; 当前已经登录的用户信息,数组存储

文档最后更新时间:2017-09-27 03:14:28