BFWSOA框架创建一个小应用

首先我们来新建一个控制器,控制器就是一个继承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

{{collectdata}}

网友评论0