- 1
php闭包绑定
作者:admin 日期:2015-08-21
在PHP5.3中引入了匿名函数,当在PHP中定义一个匿名函数的时候会产生一个Closure对象,也就是闭包。在PHP5.4起这个对象加入了一些方法,用来对这个闭包对象进行更多的控制。主要是Closure的bind静态方法(Closure也有一个bindTo非静态方法,但功能基本上和bind方法一样)。
网上对PHP闭包的绑定的介绍比较少,我之前也没有怎么用过,只是自己查了一下手册,写了一些测试性质的代码,大致知道了闭包的绑定是怎么用的。
函数原型
public static Closure Closure::bind ( Closure $closure , object $newthis [, mixed $newscope = "static' ] )
第一个参数$closure就是一个闭包对象,第二个参数是这个闭包绑定的$this指针,第三个是闭包的新的作用域。
phpcmsv9 如何实现用户登录
作者:admin 日期:2014-10-25
phpcmsv9 phpsso无法同步退出
作者:admin 日期:2014-09-17
phpcmsv9自带了一个phpsso_server用于多站点同步登录,还可以整合ucenter。为了不改动太多的代码,今天整合ECSHOP和PHPCMS的时候还是用了这个phpsso。ECSHOP很方便,简单配置了一下就可以和ucenter通信了。这个phpsso搞了半天没有成功和ucenter通信。经过几个小时的琢磨,最终还是成功让他们通信了。注册,登录,都可以同步,唯独在phpcms中退出登录时ECSHOP没有退出,反之确可以。
问题出现的原因:
首页看到了PHPCMS的登出的代码里面有一句同步登出的语句:
$synlogoutstr = $this->client->ps_member_synlogout();
这个同步登出的代码是这样的
/**
* 同步退出
* @param string $uid
* @return string javascript用户同步退出js
*/
public function ps_member_synlogout() {
return $this->_ps_send("synlogout', array());
}
为什么phpcms的缓存不能失效
作者:admin 日期:2014-09-03
PHPCMS留言板模块
作者:admin 日期:2014-08-23
PHPCMS乱解读之 PHPCMS如何生成模型表单
作者:admin 日期:2014-06-23
PHPCMS有模型管理,定义好一个模型之后PHPCMS会自动生成一个编辑这个模型的内容的表单。看看PHPCMS是怎么做到这一点的。
首先找到表单页面的地址大致是这样的
/index.php?m=content&c=content&a=add&menuid=&catid=6&pc_hash=dVlnS2&pc_hash=dVlnS2
根据PHPCMSV9 乱解读 之 PHPCMS V9的MVC的介绍, 可以很方便的找到代码所在文件位于modules/content/content.php文件中。再从此文件中找到add方法,就可以看到生成表单和处理表单的代码。
这里我们不看处理表单的代码,直接看如何生成表单。
Phpcms V9 网站迁移更换域名方法
作者:admin 日期:2014-03-06
网站在发展的过程中,很可能多次的修改域名。那么在Phpcms V9中我们要怎么进行设置呢?
请进行以下步骤的修改:
- 1. 修改/caches/configs/system.php里面所有和域名有关的,把以前的老域名修改为新域名就可以了。
- 2. 进行后台设置-》站点管理 对相应的站点的域名进行修改。
- 3. 更新系统缓存。点击后台右上角的“更新缓存”按钮。
- 4. 进入内容-》附件管理-》附件地址替换。把附件地址批量的替换为新的地址。
- 5. 内容-》批量更新URL 。把所有的文章的地址都更新一下。
- 6. 下面就是把全站都生成一次了。
再进一步,怎么转移空间,并且更换域名呢?
这种情况比更换域名更加复杂一点,涉及到数据库的迁移。
Tags: phpcms
PHPCMS添加自定义设置
作者:admin 日期:2014-03-04
phpcms v9 根据栏目id( catid ) 获取栏目名称
作者:admin 日期:2014-02-17
phpcms v9 根据栏目id( catid ) 获取栏目名称、url等等
调用方法:
{$CATEGORYS[栏目ID][catname]}
注意别掉了“S”。
以此类推,调用url:
{$CATEGORYS[栏目ID][url]}
除了url外,还有一些其它的属性也可以参考:
array (
"catid' => '26',
'siteid' => '2',
'type' => '0',
'modelid' => '18',
'parentid' => '24',
'arrparentid' => '0,24',
'child' => '0',
'arrchildid' => '26',
'catname' => '网络营销案例',
'style' => '',
'image' => '',
'description' => '',
'parentdir' => '/',
'catdir' => 'wangluoyingxiao',
'url' => 'http://www.zeroplace.cn/cms/index.php?m=content&c=index&a=lists&catid=26',
'items' => '0',
'hits' => '0',
'setting' => 'array (
\'workflowid\' => \'\',
\'ishtml\' => \'0\',
\'content_ishtml\' => \'0\',
\'create_to_html_root\' => \'0\',
\'template_list\' => \'site\',
\'category_template\' => \'category\',
\'list_template\' => \'list\',
\'show_template\' => \'show\',
\'meta_title\' => \'\',
\'meta_keywords\' => \'\',
\'meta_description\' => \'\',
\'presentpoint\' => \'1\',
\'defaultchargepoint\' => \'0\',
\'paytype\' => \'0\',
\'repeatchargedays\' => \'1\',
\'category_ruleid\' => \'6\',
\'show_ruleid\' => \'16\',
)',
'listorder' => '26',
'ismenu' => '1',
'sethtml' => '0',
'letter' => 'wangluoyingxiaoanli',
'usable_type' => ',56,57,',
'additional' => '',
'commenttypeid' => '0',
'create_to_html_root' => '0',
'ishtml' => '0',
'content_ishtml' => '0',
'category_ruleid' => '6',
'show_ruleid' => '16',
'workflowid' => '',
'isdomain' => '0',
),
Tags: phpcms
PHPCMS乱解读之 pc标签的实现
作者:admin 日期:2013-07-31
标 题: PHPCMS乱解读之 pc标签的实现
作 者: web开发网[http://www.zeroplace.cn]
时 间: 2013/07/31 12:15:00
链 接: http://www.zeroplace.cn/article.asp?id=855
说 明: 转载请保留本段文字
最近电脑硬件出了点问题,现正在修理中呀,敢问各位有没有会修主板那种电路的...
前面在写 PHPCMSV9 乱解读 之 PHPCMS V9的MVC 的时候有写到phpcms模板解析引擎的部分,但只是解释了一下模板是怎么编译的,没有具体讲其中的每个标签的实现细节。实际上多数的标签都很常规,并没有什么好说的。这里我来写写PC这个标签的实现方法。
首先还是看到libs/classes/template_cache.class.php这个文件中template_parse这个方法,发现里面有一句代码是用来编译pc这个标签的
$str = preg_replace("/\{pc:(\w+)\s+([^}]+)\}/ie", "self::pc_tag("$1','$2', '$0')", $str);
Tags: phpcms
PHPCMS乱解读之phpcmsv9中的缓存
作者:admin 日期:2013-07-09
在 PHPCMSV9 乱解读 之 PHPCMS V9的MVC 这篇文章中有看到一组global.func.php中的函数,但是那时候没有细讲。
/**
* 写入缓存,默认为文件缓存,不加载缓存配置。
* @param $name 缓存名称
* @param $data 缓存数据
* @param $filepath 数据路径(模块名称) caches/cache_$filepath/
* @param $type 缓存类型[file,memcache,apc]
* @param $config 配置名称
* @param $timeout 过期时间
*/
function setcache($name, $data, $filepath="', $type='file', $config='', $timeout=0) {
pc_base::load_sys_class('cache_factory','',0);
if($config) {
$cacheconfig = pc_base::load_config('cache');
$cache = cache_factory::get_instance($cacheconfig)->get_cache($config);
} else {
$cache = cache_factory::get_instance()->get_cache($type);
}
return $cache->set($name, $data, $timeout, '', $filepath);
}
/**
* 读取缓存,默认为文件缓存,不加载缓存配置。
* @param string $name 缓存名称
* @param $filepath 数据路径(模块名称) caches/cache_$filepath/
* @param string $config 配置名称
*/
function getcache($name, $filepath='', $type='file', $config='') {
pc_base::load_sys_class('cache_factory','',0);
if($config) {
$cacheconfig = pc_base::load_config('cache');
$cache = cache_factory::get_instance($cacheconfig)->get_cache($config);
} else {
$cache = cache_factory::get_instance()->get_cache($type);
}
return $cache->get($name, '', '', $filepath);
}
PHPCMSV9 乱解读 之 PHPCMS V9的MVC
作者:admin 日期:2013-07-07
- 1

