构建自己的PHP框架--抽象Controller的基类_PHP教程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了构建自己的PHP框架--抽象Controller的基类_PHP教程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2183字,纯文字阅读大概需要4分钟。
内容图文
![构建自己的PHP框架--抽象Controller的基类_PHP教程](/upload/InfoBanner/zyjiaocheng/189/4a2a288338164cc99e0f60ad4d405a1e.jpg)
构建自己的PHP框架--抽象Controller的基类
我们将简单的路由解析和执行,从入口文件public/index.php中移入到框架中。入口文件顿时变得清爽无比~~ 但是,去我们的controller里看一下,会看到如下的code: public function actionView() { $body = 'Test body information'; require '../views/site/view.php'; } 难道我们每写一个要去渲染页面的action,都要去找相应路径的view,然后把它require进来。肯定不能这样,所以我们要抽象出一个Controller的基类,实现一个渲染页面的方法,让其他的controller继承,就可以使用相应的方法。 不用说,这个controller的基类肯定要写到框架里。而且也要写两个,一个放在base中,一个放在web中,web中的Controller继承base中的。 先来看在base中的*/ class Controller { }
只有一个空类,等待添加内容。 再来看web中的
*/ class Controller extends \sf\base\Controller { /** * Renders a view * @param string $view the view name. * @param array $params the parameters (name-value pairs) that should be made available in the view. */ public function render($view, $params = []) { extract($params); return require '../views/' . $view . '.php'; } }
可以看到,我们首先从数组中把变量导入到当前的符号表中,然后引入相应的view页面。 然后,在SiteController,我们只需要这么写就可以了。
render('site/view', ['body' => 'Test body information']); } }
然后,访问www.Bkjia.com,就可以看到跟之前一样的页面了。 我们来完善一下base中的Controller
*/ class Controller { /** * @var string the ID of this controller. */ public $id; /** * @var Action the action that is currently being executed. */ public $action; }
添加了两个属性,分别来记录当前的controller和action。 然后,我们要在解析router之后,将其赋值,code如下:
*/ class Application extends \sf\base\Application { /** * Handles the specified request. * @return Response the resulting response */ public function handleRequest() { $router = $_GET['r']; list($controllerName, $actionName) = explode('/', $router); $ucController = ucfirst($controllerName); $controllerNameAll = $this->controllerNamespace . '\\' . $ucController . 'Controller'; $controller = new $controllerNameAll(); $controller->id = $controllerName; $controller->action = $actionName; return call_user_func([$controller, 'action'. ucfirst($actionName)]); } }
然后我们就可以在controller和view中拿到相应的controller名字和action名字了,将view.php修改如下:
title id;?>
action;?>
内容总结
以上是互联网集市为您收集整理的构建自己的PHP框架--抽象Controller的基类_PHP教程全部内容,希望文章能够帮你解决构建自己的PHP框架--抽象Controller的基类_PHP教程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。