• 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: 需要填写数据库主机")." "; return false; } if(!$options['db_user']){ echo app::get('base')->_("Error: 需要填写数据库用户名")." "; return false; } if(!$options['db_name']){ echo app::get('base')->_("Error: 请选择数据库")." "; 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

  • 相关阅读:
    【More Effective C++】Item 4
    【More Effective C++】Item 3
    【More Effective C++】Item 2
    【More Effective C++】Item 1
    ”win7笔记本共享无线网络,手机连接成功却无法上网“的解决之道【亲身经历】
    【RFID防碰撞协议/算法】动态二进制搜索算法
    【RFID防碰撞协议/算法】二进制搜索防碰撞算法
    总结ASP标准控件
    总结ASP控件属性
    ..........
  • 原文地址:https://www.cnblogs.com/motian06/p/3450055.html
Copyright © 2020-2023  润新知