ecos的app生命周期
5种变迁,安装、更新、启动、暂停、卸载,每个app都可以自行维护每种变迁
方法简单,只需要在app/$app_name目录下定义task.php文件
<?php class desktop_task{ }
日志记录,关键节点记录log日志,记录方式是kernel::log();
install 安装
在app安装时需要基本的外部参数,例如 base,需要db_host db_user 等参数,根据参数进行配置文件的生成和数据库的连接。
如果安装过程需要参数,需要些回调函数install_options(),返回值为二维数组,一维key表示参数
class desktop_task{ function install_options(){ return array( 'admin_uname'=>array('type'=>'text','vtype'=>'required','required'=>true,'title'=>'用户名','default'=>'admin'); 'admin_password'=>array('type'=>'password','vtype'=>'required','required'=>true,'title'=>'密码'); 'admin_password_re'=>array('type'=>'password','vtype'=>'required','vtype'=>'samePas','required'=>true,'title'=>'重复密码'); ); } }
注意!'vtype'=>'samePas'两次密码必须相同
type 输入方式text/select/password
default 默认值
options 选项,当type设置为select时,会从options中取得需要选项
options_callback 选项的函数回调,当type设置为select,当选项不能通过枚举的形式列举出来时,需要回调函数来返回相应的options数组。
title 标题名
检测参数是否正确,通过回调函数checkenv()来实现
<?php class base_task{
function checkenv($options){ if(!$options['db_host']){ echo app::get('base')->_("Error: 需要填写数据库主机")."\n"; return false; } if(!$options['db_user']){ echo app::get('base')->_("Error: 需要填写数据库用户名")."\n"; return false; } if(!$options['db_name']){ echo app::get('base')->_("Error: 请选择数据库")."\n"; return false; } } }
options安装参数,内容为install_options函数返回值
安装过程
安装一个app分三步
pre_install
install 安装系统当前状态下所支持的所有app资源
post_install
pre_install 系统安装前完成,通过回调函数pre_install()实现 (准备)
通常不需要
参数$options,内容为install_options函数返回值
返回null
post_install 系统安装后完成,通过回调函数post_install()实现 (事后)
初始化安装的过程基本在此回调函数内实现
dbeav-meta注册
app数据库初始化数据,需要使用类库base_initial
设置setting初始化数据
为pam app注册账号类型
uninstall 卸载
有install函数,就应该有uninstall函数
pre_uninstall 参数无 返回null
post_uninstall 参数无 返回null
update 更新
pre_update 参数无 返回null
post_update 参数$version 返回null
active 启用
pre_enable
post_enable
pause 暂停
pre_disable
post_disable
active pause 参数无 返回null