操作命名空间

空操作:

方法1:

MainController.class.php:

        function _empty()
    {
        echo "网页不存在,请检查浏览器地址信息";
    }

方法2:

给空操作的名称制作一个同名的模板出来,系统会自动调用

 

空控制器:

创建EmptyController.class.php,以及对象调用指定的方法:

复制代码
<?php
namespace Home\Controller;
use Think\Controller;

class EmptyController extends Controller
{
    function _empty()
    {
        echo "访问的页面不存在";
    }
}
复制代码

 

跨控制器调用:

IndexController.class.php:

复制代码
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index()
    {
    }
    
    public function ShuChu()
    {
        return "教务";
    }
    
}
复制代码

MainController.class.php:调用Index控制器的Shuchu方法

复制代码
        function ShuChu()
    {
        //造对象
        /*$index = new IndexController();
        echo $index->ShuChu();*/
        
        //A方法
        /*$index = A(Index);
        echo $index->ShuChu();*/
        
        //R方法,造对象并调用方法
        //echo R("Index/ShuChu");
        
        //跨模块调用,需在控制器前加模块名称,例A("模块/控制器")或D("模块/控制器/方法")
        
    }
复制代码

 

系统变量;

复制代码
public function Text()
    {
        $attr = array("one"=>hello,"two"=>world);
        
        $this->assign("attr",$attr);//数组输出
        $this->assign("text",123);//变量输出
        $this->display();
    }
复制代码

Text.html:

复制代码
<body>
<h1>测试页面</h1>
<div><{$text}></div>
<div><{$attr[one]}></div>

<div>
<if condition="$text lt 5">
<div>错误</div>
<else />
<div>正确</div>
</if>
</div>
</body>
复制代码

 

父子模板:

MainController.class.php:

public function zi()
    {
        $this->display();
    }

fu.html:

复制代码
<body>
<block name="top">
<div>头</div>
</block>

<block name="content">
<div>中</div>
</block>

<block name="foot">
<div>尾</div>
</block>


</body>
复制代码

zi.html:

<extend name="fu" />
<block name="content">
<div style="height:100px; width:100px;  padding: 0px; color: rgb(0, 0, 255); line-height: 1.5 !important;">></div>
</block>

 

系统变量输出
例:
<{$Think.cookie.name}> //输出$_COOKIE["name"]变量
支持输出$_SERVE,$_ENV,$_POST,$_GET,$_REQUEST,$_SESSION,$_COOKIE变量

常量输出
<{$Think.const.MOOULE_NAME}>或<{$Think.MOOULE_NAME}>(注意:常量使用除了双下划线开头以外,双下划线可直接使用)

配置输出
<{$Think.config.url_model}>

默认值输出
<{$ceshi|default="默认"}>

使用运算符(不再支持点语法和常规的函数用法)
+ -  *  /  ++   --  %

模板继承:子模板类似是对父模板的重写,可简省代码

三元运算符:(不支持点语法)
<{$pd?"男":"女"}>

包含文件:(include标签)
<include file="控制器/操作" />

内置标签(==/eq;>/gt;<lt)
<if condition="$id eq 5">
<else />
</if>


foreach标签 (name 值为变量名,item值为循环出的每一项的值)
<foreach name="shuzuming" item="v">
<div><{$v}></div>
</foreach>


for标签
<for start="开始值" end="结束值" comparison="默认lt小于" step="步进值,默认1" name="循环变量名,默认i">
</for>

模板替换
1.__ROOT__:会替换成当前网站的地址(不含域名)
2.__APP__:会替换成当前应用的URL地址(不含域名)
3.__MOOULE__:会替换成当前页面的URL地址(不含域名)
4.__CONTROLLER__:会替换成当前控制器的URL地址(不含域名)
5.__ACTION__:会替换成当前操作的URL地址(不含域名)
6.__SELF__:会替换成当前页面的URL
7.__PUBLIC__:会替换成当前网站的公共目录,通常是/Public/

 

命名空间:

命名空间:
相当于一个虚拟的目录


正常管理文件使用文件夹--物理区分


TP框架的初始命名空间是:ThinkPHP\Library

在TP框架下命名空间里面使用\代表的是初始命名空间(ThinkPHP\Library)

1.系统目录下根命名空间是ThinkPHP\Library下面的文件夹名称命名的

2.模块的根命名空间是以模块名命名的

在定义命名空间的时候需要从根写起例如:Home\Controller 例如:Think\Model


如果要使用某个类文件,引入该类命名空间的时候:
使用use关键字,后面写该类的命名空间 后面加上 "\文件名"

如果不想引入命名空间:在造类的对象的时候可以使用\(初始命名空间)来找到对应的类
例如:new \Think\Page(30);

posted @ 2016-06-20 16:11  颠覆整个世界  阅读(489)  评论(0编辑  收藏  举报