当前位置: 首页 > 工具软件 > ProcessMaker > 使用案例 >

ProcessMaker学习笔记

刘昌翰
2023-12-01

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 公共目录,存放编译模板,缓存,日志,工作区相关文件 
/gulliverPM整合的一套工具箱,含多个助手类 
 /workflow工作流项目目录 
 /workflow/public_htmlweb访问目录,
- 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/ProcessMakerPM API 
   


3 主要表字典

 
实体 
application, app_cache_viewCase 
   
   
   
   
   


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) <brayan@colosa.com>
     * @copyright Colosa - Bolivia
     *
     * @url GET /participated/paged
     */

5 知识点

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


 类似资料: