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
ecos的app生命周期的更多相关文章
- 微信小程序APP生命周期
小程序APP生命周期需要先从app.js这个文件开始,App() 必须在 app.js 中调用,必须调用且只能调用一次,app.js中定义了一些应用的生命周期函数 onLaunch----当小程序初始 ...
- 微信APP生命周期、页面生命周期
目录 小程序的启动流程 app生命周期 页面的生命周期 页面的生命周期(图) 小程序的启动流程 我们画一个图来表示一下,整个小程序的启动流程,我们就知道了: app生命周期 执行App()函数也就是注 ...
- 微信小程序-APP生命周期与运行机制
QQ讨论群:785071190 开发微信小程序之前需要先了解微信小程序运行机制以及其生命周期,小程序APP生命周期需要先从app.js这个文件开始. 阅读过"微信小程序-代码构成" ...
- 14 - XML、JSON、PLIST对比和APP生命周期
XML中间的 数据表达/传输数据的语言 优点:特别强大 强大到很多平台都有基于XML的独立语言,如MXML.HTML 缺点:传输小型数据时,特别啰嗦 size / speed = time JSON ...
- iOS进阶——App生命周期
State Description Not running The app has not been launched or was running but was terminated by the ...
- ios app 生命周期
https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/The ...
- app生命周期之即将关闭
需求:当软件正在进行任务还未结束时,如果用户强制退出软件,需要将一些数据进行保存等处理. 策略:当用户使用多任务将软件挂起,并滑掉软件时,接下来有5妙钟的时间留给软件做处理.会调用- (void)ap ...
- Android App的生命周期是什么
怎么说呢 看Android一般指的是 Activity的生命周期, 关于app的生命周期, 有明白的大神请告诉我 上面这张图是 网上搜到的一张关于app生命周期的图, 在我看来, 其实就是一个Acti ...
- OS开发之旅之App的生命周期【转载】
原文链接 http://www.360doc.com/content/15/0918/14/27799428_499912639.shtml 在iOS App中,入口函数并不在根目录下,而是在“Sup ...
随机推荐
- raise()函数
kill和raise函数用来发送信号, 区别在于: kill把信号发送给进程或进程组. kill(pid_t pid, int signo) raise把信号发送给进程自己,相当于 raise(ing ...
- MySQL外键的作用和创建
MySQL外键的作用: 保持数据一致性,完整性,主要目的是控制存储在外键表中的数据.使两张表形成关联,外键只能引用外表中列的值! 我们来建两个表 CREATE TABLE `example1` ( ` ...
- Eclipse 安装最新SVN插件
本文来源:http://liujianqiao398.blog.163.com/blog/static/181827257201331194610634/ Eclipse 安装最新SVN插件 2013 ...
- python socketserver实现客户端多并发
直接看代码 server #!/usr/bin/env python # -*- coding:utf-8 -*- import socketserver import subprocess clas ...
- Content-Type小解
在Http请求中,经常用Content-Type来定义网络文件的类型和网页的编码,在发送请求,返回数据时决定浏览器将以什么形式,什么编码来读取此文件. 常用类型: text 文本类型 1.text/p ...
- HttpServletResponse对象
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象. request和response对象即然代表请求和响应,那我们 ...
- android打成apk
用的软件是这个 D:\软件备份\adt-bundle-windows-x86_64-20140321\adt-bundle-windows-x86_64-20140321\eclipse file-- ...
- [转]用android LinearLayout和RelativeLayout实现精确布局
先明确几个概念的区别: padding margin都是边距的含义,关键问题得明白是什么相对什么的边距. padding是控件的内容相对控件的边缘的边距. margin是控件边缘相对父控件的边距. a ...
- JS-运动基础(一)续
2.淡入淡出的图片 用变量存储透明度 <title>无标题文档</title> <style> #div1{width:293px; height:220px; b ...
- 高性能IO模型浅析(转)
转自:http://www.cnblogs.com/fanzhidongyzby/p/4098546.html 是我目前看到的解释IO模型最清晰的文章,当然啦,如果想要详细的进一步了解还是继续啃蓝宝书 ...