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

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

dayrui/App/Test/Controllers/Home.php

<?php namespace Phpcmf\Controllers;

class Home extends \Phpcmf\Common {

   public function __construct(...$params) {
      parent::__construct(...$params);
   }

   public function index() {

        echo 'hello php7cms';
        
    }
}

路由访问

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

自定义路由地址

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

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

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


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

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

dayrui/App/Test/Controllers/Home.php

<?php namespace Phpcmf\Controllers;

class Home extends \Phpcmf\Common {

   public function __construct(...$params) {
      parent::__construct(...$params);
   }

   public function index() {

        \Phpcmf\Service::V()->assign([
            'meta_title' => dr_lang('测试页面'),
        ]);
        \Phpcmf\Service::V()->display('test.html');
    }
}

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


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

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

<?php namespace Phpcmf\Controllers\Member;

class Home extends \Phpcmf\Common {

   public function __construct(...$params) {
      parent::__construct(...$params);
   }

   public function index() {

        \Phpcmf\Service::V()->assign([
            'meta_title' => $this->lang('测试页面'),
        ]);
        \Phpcmf\Service::V()->display('test.html');
    }
}

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


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

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

<?php namespace Phpcmf\Controllers\Admin;

class Home extends \Phpcmf\Common {

   public function __construct(...$params) {
      parent::__construct(...$params);
   }

   public function index() {

        \Phpcmf\Service::V()->assign([
            'meta_title' => $this->lang('测试页面'),
        ]);
        \Phpcmf\Service::V()->display('test.html');
    }
}

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


运用视图模板

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

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

1、前端控制器模板文件

/template/pc或mobile/default/home/应用目录/test.html

2、用户控制器模板文件

/template/pc或mobile/default/member/应用目录/test.html

3、后台控制器模板文件

./Views/test.html

./表示当前的应用目录


全局调用控制器

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

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


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