ProcessMaker学习笔记

1 配置

- 入口

src/workflow/public_html/app.php

- 安装路径配置:

src/workflow/engine/config/paths_installed.php

- 数据库配置路径:

src/shared/sites/workflow/databases.php 
src/shared/sites/workflow/db.php


- 系统环境变量:

src\workflow\engine\config\env.ini

默认设置: src\workflow\engine\classes\class.system.php
array(
        'debug' => 0,
        'debug_sql' => 0,
        'debug_time' => 0,
        'debug_calendar' => 0,
        'wsdl_cache' => 1,
        'memory_limit' => "256M",
        'time_zone' => 'America/New_York',
        'expiration_year' => '1',
        'memcached' => 0,
        'memcached_server' => '',
        'default_skin' => 'neoclassic',
        'default_lang' => 'en',
        'proxy_host' => '',
        'proxy_port' => '',
        'proxy_user' => '',
        'proxy_pass' => '',
        'size_log_file' => 5000000,
        'number_log_file' => 5,
        'ie_cookie_lifetime' => 1,
        'safari_cookie_lifetime' => 1,
        'error_reporting' => "",
        'display_errors' => 'On',
        'enable_blacklist' => 0,
        'system_utc_time_zone' => 0,
        'server_protocol' => '',
        'leave_case_warning' => 0,
        'server_hostname_requests_frontend' => '',
        'load_headers_ie' => 0,
        'redirect_to_mobile' => 0,
        'disable_php_upload_execution' => 0,
        'disable_download_documents_session_validation' => 0
    );


2 主要目录结构

 目录 说明   
 /shared  公共目录,存放编译模板,缓存,日志,工作区相关文件  
/gulliver PM整合的一套工具箱,含多个助手类  
 /workflow 工作流项目目录  
 /workflow/public_html web访问目录,
- app.php为入口文件,决定访问端点。
- sysGeneric.php, 估计早期项目入口文件,堆叠了初始化/路由/逻辑功能,注意:在1043行调用了目标动作文件。 
 
 /workflow/engine

工作引擎目录,提供后台访问管理,比如:

http://processmaker.local.com/sysworkflow/en/neoclassic/cases/main

实质访问路径:

\src\workflow\engine\methods\cases\main.php

 
 /workflow/engine/methods 含 controllers & actions
参考: http://wiki.processmaker.com/index.php/Gulliver%3A_Programmer%2527s_Reference_Guide
 
/workflow/engine/templates 模板路径  
/workflow/engine/skinEngine/neoclassic 默认模板layout路径 (skin = neoclassic)  
/src/workflow/engine/xmlform 动态form 模板  
/workflow/engine/src/ProcessMaker PM API  
     


3 主要表字典

 
实体  
application, app_cache_view Case  
     
     
     
     
     


4 关于REST

4.1 概要

应用了 Luracast Restler 框架 (http://restler3.luracast.com)

API Services 目录: src\workflow\engine\src\ProcessMaker\Services


4.2 API 路由

经过代码分析, 获知由 src\vendor\luracast\restler\vendor\Luracast\Restler\Restler::addAPIClass() 与 src\vendor\luracast\restler\vendor\Luracast\Restler\Routes::addAPIClass 方法实现,具体原理是:

第一步:Restler获取API服务类路由缓存,如果没有则第二步,获取路由表后生成缓存;

第二步:Routes 扫描服务类方法,分析注释语法,从中获取路由url与方法对应关系,返回结果;

注:API服务类的url定义在该类的Comment节中,如 {URL}/api/1.0/workflow/cases/participated/paged,对应

src\workflow\engine\src\ProcessMaker\Services\Api\Cases.php

/**
     * Get list Cases Participated with paged
     *
     * @param int $start {@from path}
     * @param int $limit {@from path}
     * @param string $sort {@from path}
     * @param string $dir {@from path}
     * @param string $cat_uid {@from path}
     * @param string $pro_uid {@from path}
     * @param string $search {@from path}
     * @return array
     *
     * @author Brayan Pereyra (Cochalo) 
     * @copyright Colosa - Bolivia
     *
     * @url GET /participated/paged
     */

5 知识点

标题 说明 备注
sql查询日志 src\gulliver\thirdparty\propel\util\BasePeer.php doSelect 方法
     
     
     
     
     
     
     
     
     
     


你可能感兴趣的:(技术笔记)