1分钟部署网站📞AI智能客服,大模型训练自有数据,简单好用,有效降低客服成本 广告
## 命名: 控制器名.class.php 例如: index.class.php 没有对名称的大小写做限制,因此要特别注意 Linux 下的大小写问题;**建议全部使用小写** >[danger]注意控制器的命名空间和继承 <?php namespace c; //命名空间是 c use \z\controller; //导入controller类 class index extends controller{ //定义index控制器继承controller类 static function index(){ //index操作 echo '欢迎使用Z-php框架'; } } >[danger]2.0版本开始控制器的操作全部采用【**静态方法**】实现,全部控制器操作名均由 **static** 修饰 ## url访问规则: 上面所示的控制器操作的url:/index.php?c=index&a=index url中的参数 c 就是**控制器名**,a 就是**操作名** 控制器名和操作名是 index 的url中可以省略,因此 /index.php 实际访问的就是index控制器和index操作 ## 分配变量和渲染模板 <?php namespace c; use \z\controller; class index extends controller{ static function index(){ $str = '欢迎使用Z-php框架'; parent::assign('str',$str); //向模板文件分配$str变量 parent::display(); //渲染模板 } } ## 视图中的方法: parent::assign('a',$b); //将$b分配到模板中的变量$a中 parent::display('index'); //渲染当前模板目录下 index(当前控制器名)目录下的名为 index.html 的模板文件 parent::display(); //参数为空默认渲染 当前模板目录/控制器名/操作名.html文件 parent::fetch('index') //返回渲染index模板的字符串结果(不向浏览器输出) parent::json($arr) //输出Json数据 ## 跳转和重定向: parent::success('操作成功'); //提示 操作成功(默认1秒后跳转到之前页面) parent::success('操作成功','/index.php',2); //提示 操作成功,2秒钟后跳转到index.php parent::error('操作失败'); //提示 操作失败(默认3秒后跳转到之前页面),参数2和参数3同success() parent::redirect('/index.php'); //重定向到 /index.php >[danger]success() 和 error() 自动判断当前的请求是否是Ajax请求,如果是Ajax请求则返回Json数据,格式如下: {"status":成功是1失败为0, "info":"提示信息", "url":"跳转的url参数"} **关于跳转的模板文件:** 优先使用 应用模板目录下的 mess.tpl 文件 默认使用 core/tpl/mess.tpl 文件 ## 前置操作: **如果控制器中存在 init() 方法,则先执行 init() 操作,之后再执行指定操作** <?php namespace c; use \z\controller; class common extends controller{ static function init(){ //先执行的操作 if(empty($_SESSION['user'])) parent::redirect('/index.php?c=login&a=index'); } } ## 后置操作: **如果控制器中存在 after() 方法,执行完指定操作后会接着执行 after() 操作** <?php namespace c; use \z\controller; class common extends controller{ static function after(){ //执行完控制器的指定操作之后 执行此操作(其前提是之前操作没有中断脚本) } } >[danger]如果控制器操作直接 return 数据的话,则会直接输出Json数据并中断脚本 ## _404方法 parent::_404('404.html'); //输出指定的404页面 如果参数为空 默认文件名是:404.html 如果参数不包含路径,优先输出当前模板目录下的404.html;其次是根目录下的404.html;最后是 /core/tpl/404.tpl >[danger]非debug模式下:如果控制器类或方法不存在的时候直接输出404页面