配置smarty/命名空间/验证码

Posted on Posted in thinkphp
Tips: 本文创建于2014年5月16日,已超过 2 年,内容或图片可能已经失效!

目录

ThinkPHP中配置smarty

相关文件:
ThinkPHP/Library/Behavior/ParseTemplateBehavior.class.php
$class = 'Think\\Template\\Driver\\'.ucwords($engine);

Common/Conf/config.php 添加数组(配置smarty)

[code lang="php"]
'TMPL_ENGINE_CONFIG' => array(
'left_delimiter' = '{{',
'right_delimiter' = '}}',
)
[/code]

 

命名空间

命名空间针对"类、常量、函数"起作用,三种统称为"元素"。
防止类常量或者函数名等冲突

[code lang="php"]
<?php
/**
* 命名空间
*/
namespace bj;
function getInfo() {
return 'D1';
}
class Person {
public static $name = 'tom';
}
namespace sh;
use \bj\Person;
function getInfo() {
return 'D2';
}
class Animal {
public static $name = 'dog';
}
echo Animal::$name;
echo Person::$name;
?>
[/code]

子空间

[code lang="php"]
<?php
//多级空间使用
namespace china\sicuan;
class Animal{
public static $name = "panda";
}

namespace china\heilongjiang;
class Animal{
public static $name = "tiger";
}

namespace china\northeast\whitehill;
class Animal{
public static $name = "waterguai";
}

namespace usa\west;
class Animal{
public static $name = "efish";
}
//获得heilongjiang的动物信息
//[完全限定名称]
echo \china\heilongjiang\Animal::$name; //tiger
echo \china\northeast\whitehill\Animal::$name;
[/code]

include包含情况

① 相同请求的不同文件允许使用同名的"命名空间"
② 根据第①个结论,不同文件的同名空间里边不能有同名的元素
③ include包含进来的文件对当前空间没有影响
元素还是会在当前脚本文件里边获得空间元素

[code lang="php"]
<?php

namespace usa\west;
class Animal{
public static $name = "efish";
}
class Person{
public static $name = "indianren";
}

namespace china\heilongjiang;
class Animal{
public static $name = "tiger";
}

namespace china\northeast\whitehill;
class Person{
public static $name = "caoxianren";
}
function getBaby(){
return "renshen";
}

include "088.php";

//echo actInfo(); //not found china\northeast\whitehill\actInfo
echo getBaby(); //renshen

/**
结论:
① 相同请求的不同文件允许使用同名的"命名空间"
② include包含进来的文件对当前空间没有影响
元素还是会在当前脚本文件里边获得空间元素
*/
[/code]

[code lang="php"]
<?php

namespace usa\west;
function actInfo(){
return "dubo";
}
[/code]

【公共空间】
1.php 和 2.php
1文件 include 2 文件
如果1文件有namespace,2文件没有namespace,则2文件的元素就是公共空间的元素。
如果1文件没有namespace,2文件有namespace,则1文件的元素就是公共空间的元素。
对公共空间元素进行访问,为了避免混淆统一在公共元素前边设置"\"反斜线。

» 转载请注明来源:呢喃 » 配置smarty/命名空间/验证码

Leave a Reply

Your email address will not be published. Required fields are marked *

1 × 1 =