- 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