- 入口
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 );
目录 | 说明 | |
/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 | |
表 | 实体 | |
application, app_cache_view | Case | |
应用了 Luracast Restler 框架 (http://restler3.luracast.com)
API Services 目录: src\workflow\engine\src\ProcessMaker\Services
经过代码分析, 获知由 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 */
标题 | 说明 | 备注 |
sql查询日志 | src\gulliver\thirdparty\propel\util\BasePeer.php | doSelect 方法 |