-
CanPHP在模板文件中调用模块方法
默认在模板文件中只能接受调用方法传过来的参数,需要调用模块(module)方法的话,对框架中的cpTemplate文件进行一些修改就很方便了,使用方法与开发文档中相同。
修改 CanPHP/core/cpTemplate.class.php 添加模块调用方法,使前台模板中可以调用指定模块中的方法
///查看 CanPHP/lib/common.function.php
//模块之间相互调用
public
function
module(
$module
)
{
static
$module_obj
=
array
();
static
$config
=
array
();
if
(isset(
$module_obj
[
$module
]))
{
return
$module_obj
[
$module
];
}
if
(!isset(
$config
[
'MODULE_PATH'
]))
{
$config
[
'MODULE_PATH'
]=cpConfig::get(
'MODULE_PATH'
);
$config
[
'MODULE_SUFFIX'
]=cpConfig::get(
'MODULE_SUFFIX'
);
$suffix_arr
=
explode
(
'.'
,
$config
[
'MODULE_SUFFIX'
],2);
$config
[
'MODULE_CLASS_SUFFIX'
]=
$suffix_arr
[0];
}
if
(
file_exists
(
$config
[
'MODULE_PATH'
].
$module
.
$config
[
'MODULE_SUFFIX'
]))
{
require_once
(
$config
[
'MODULE_PATH'
].
$module
.
$config
[
'MODULE_SUFFIX'
]);
//加载模型文件
$classname
=
$module
.
$config
[
'MODULE_CLASS_SUFFIX'
];
if
(
class_exists
(
$classname
))
{
return
$module_obj
[
$module
]=
new
$classname
();
}
}
return
false;
}
——————–补充——————————–
修改cpTemplate 文件之后,导致其他方法重新加载是网站出现异常 状况记录
。LANG::get() 多语言中的cookie 重设问题,修改lib/Lang.class.php 中85行附近的setcookie 代码,添加if 判断if($_COOKIE['cp_language'] != $lang) setcookie('cp_language',$lang,time()+3600*24*365,'/');
———————待完善———————–
-
memcache 入门一
php 使用memcache 将变量存储到内存中以加快程序运行速度,要使用memcache 需要先安装配置对应的模块,使用memcache不需要像session那样在实现多主机共享时进行负责的控制判断,实时性高效的memcache让分布 式架构处理共享信息更轻松。先看一个官网的实例吧
$memcache = new Memcache; $memcache->connect('localhost', 11211) or die ("Could not connect"); $version = $memcache->getVersion(); echo "Server's version: ".$version." \n"; $tmp_object = new stdClass; $tmp_object->str_attr = 'test'; $tmp_object->int_attr = 123; $memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server"); echo "Store data in the cache (data will expire in 10 seconds) \n"; $get_result = $memcache->get('key'); echo "Data from the cache: \n"; var_dump($get_result);
可以看到新建一个memcache对象后可以是用 set get 轻松的设置和获取内存中的变量,
Memcache面向对象的常用接口包括:
Memcache::connect — 打开一个到Memcache的连接
Memcache::pconnect — 打开一个到Memcache的长连接
Memcache::close — 关闭一个Memcache的连接
Memcache::set — 保存数据到Memcache服务器上
Memcache::get — 提取一个保存在Memcache服务器上的数据
Memcache::replace — 替换一个已经存在Memcache服务器上的项目(功能类似Memcache::set)
Memcache::delete — 从Memcache服务器上删除一个保存的项目
Memcache::flush — 刷新所有Memcache服务器上保存的项目(类似于删除所有的保存的项目)
Memcache::getStats — 获取当前Memcache服务器运行的状态
Memcache::getVersion 获取当前服务器memcache版本信息
memcache_debug() 开启或关闭调试
Memcache 类 相关信息如下Memcache {
bool add ( string
$key
, mixed
$var
[, int
$flag
[, int
$expire
]] )
bool addServer ( string
$host
[, int
$port
= 11211 [, bool
$persistent
[, int
$weight
[, int
$timeout
[, int
$retry_interval
[, bool
$status
[, callback
$failure_callback
[, int
$timeoutms
]]]]]]]] )
bool close ( void )
bool connect ( string
$host
[, int
$port
[, int
$timeout
]] )
int decrement ( string
$key
[, int
$value
= 1 ] )
bool
delete
( string
$key
[, int
$timeout
= 0 ] )
bool
flush
( void )
string get ( string
$key
[, int &
$flags
] )
array
getExtendedStats ([ string
$type
[, int
$slabid
[, int
$limit
= 100 ]]] )
int getServerStatus ( string
$host
[, int
$port
= 11211 ] )
array
getStats ([ string
$type
[, int
$slabid
[, int
$limit
= 100 ]]] )
string getVersion ( void )
int increment ( string
$key
[, int
$value
= 1 ] )
mixed pconnect ( string
$host
[, int
$port
[, int
$timeout
]] )
bool replace ( string
$key
, mixed
$var
[, int
$flag
[, int
$expire
]] )
bool set ( string
$key
, mixed
$var
[, int
$flag
[, int
$expire
]] )
bool setCompressThreshold ( int
$threshold
[, float
$min_savings
] )
bool setServerParams ( string
$host
[, int
$port
= 11211 [, int
$timeout
[, int
$retry_interval
= false [, bool
$status
[, callback
$failure_callback
]]]]] )
}
上面的翻译只罗列了一些常用的方法,需要具体资料的可以参考php官方文档http://cn2.php.net/manual/en/book.memcache.php