首先我们来新建一个控制器,控制器就是一个继承bocontroler的简单的类,是真个request请求的处理者。
例如,当访问下面这个 URL 时:
http://example.com/Cms/Article/Detail/id/1
经典模式下为http://example.com/index.php?cont=Article&act=Detail&dom=Cms&id=1
通过这个 URL 我们就可以推测出来,有一个叫做域为Cms下的名为 "Article" 的控制器,被调用的方法为 "Detail" , 这个方法的作用应该是查询 id为1的文章。格式如下:
http://example.com/【domianname】/【controllername】/【methodname】/【arguments】
[arguments]为key/value形式,在正式环境下 URL 的格式可能会更复杂,但是现在,我们只需要关心这些就够了。
新建一个文件 App/Cms/Controler/Controler_Article.php ,然后添加如下代码。
namespace App\Cms\Controler; use Lib\Bfw; use Lib\BoControler; use App\Cms\Client\Client_Article; class Controler_Article extends BoControler { function Detail($id){ echo "helloworld"; } }
在App\Cms\Points\下新建一文件Points_Article.php
namespace App\Cms\Points; class Points_Article { }
在浏览器中输入http://example.com/Cms/Article/Detail/id/1就会显示
helloworld
下面我们来给这段代码增加一个view
新建一个文件App/Cms/View/Article/Detail.php
<html> <head> <title>Bfw Tutorial</title> </head> <body> <h1>helloworld</h1> </body> </html>
然后将我们的控制器代码改成这样
namespace App\Cms\Controler; use Lib\Bfw; use Lib\BoControler; use App\Cms\Client\Client_Article; class Controler_Article extends BoControler { function Detail($id){ $this->Display(); } }
在浏览器中输入http://example.com/Cms/Article/Detail/id/1依然会显示
helloworld
那么接下来我们怎么将控制器的值传给view呢,先将控制器中代码改成如下
namespace App\Cms\Controler; use Lib\Bfw; use Lib\BoControler; use App\Cms\Client\Client_Article; class Controler_Article extends BoControler { function Detail($id){ $this->Assign("title","helloworld"); $this->Display(); } }
然后修改view
<html> <head> <title>Bfw Tutorial</title> </head> <body> <h1><?=$title?></h1> </body> </html>
在浏览器中输入http://example.com/Cms/Article/Detail/id/1依然会显示
helloworld
网友评论0