LifeType后续开发心得
最近今天一直在改LifeType(原名plog,简称LT)的源代码.老外写的东西就是强,弄的一头雾水.就像它的LOGO一样,花开虽美,但色过艳,瓣过多,让人难以入手.经过一段时间的煎熬,终于找到了一些端倪.现就后台部分分享如下:
所有的后台操作都通过admin.php这个接口文件完成.在该文件后使用参数”op=xxx”的形式来决定具体的操作.
“xxx”代表某个动作,该动作以$actions[$key]=$value数组的形式定义在文件:
根目录/class/controller/admincontrollermap.properties.php 中.
数组$actions的键$key表示传进的动作”xxx”,值$value为该动作要执行的类.每个类以同名文件.class.php的形式保存在
根目录/class/action/admin 目录中.
比如要执行”admin.php?op=blogTemplates”,该动作对应的是$actions[“blogTemplates”] = “AdminEditBlogTemplatesAction”,则LT将要执行AdminEditBlogTemplatesAction这个类.这个类保存在文件根目录/class/action/admin/admineditblogtemplatesaction.class.php 中.
掌握了这个规律,我们以后就可以很容易的通过”op=xxx”这样的动作参数来找到对应的class文件,方便修改之.
在LT中,各个类之间有着千丝万缕的层级extends关系.如上面的AdminEditBlogTemplatesAction类扩展自BlogOwnerAdminAction类,BlogOwnerAdminAction类扩展自AdminAction类,AdminAction类又扩展自Action类,Action类最终扩展到Object类.
而模板变量多半是通过”$this->setValue( “templates”, $blogTemplateSets )”这种形式赋值,然后”$template->assign( $this->_params->getAsArray())”,最后”$template->fetch()”.
先到这里~