Project

General

Profile

追加功能 #503

Updated by Xihua Fan 2 months ago

*Background* 
 # OTS4.0屡次系统奔溃 

 *具体问题* 
 * 1. *PHP GD库save* PHP GC库save 
      问题:OOM 
      原因:可能GD库函数,exif_read_data等,读取大文件,也会导致内存枯竭。 原因: 
      处置:正确使用库函数,并保证图片文件不要太大。 处置: 
      备注:由于第一时间没有完全彻底调查原因,可能遗漏了部分【可能性】。 备注: 

 * 2. *PHP PHP Upload Files* Files 
      问题:OOM 
      原因:AWS Liuux 2023默认tmpfs(内存文件系统),上传文件过大,导致内存枯竭(默认配置内存不足) 
      处置:自定义默认上传文件物理路劲(比如:/var/www/html/storage/upload/tmp),避免使用tmpfs 
      备注:AWS 从 Amazon Linux 2023 开始 /tmp 默认是挂载为 tmpfs(内存文件系统)。相比之前的 Amazon Linux 2 和更早版本,AL2023 是第一个默认把 /tmp 放到 tmpfs 上的 AWS Linux 版本。 

 * 3. *PHP CSV下载* PHP CSV下载 
      问题:OOM 
      原因: 
      处置: 
      备注: 

 *v4 coding standard:* 
 # Git提交 
   #xxx(redmine number): xxx(redmine title) - xxx(任意:补充内容) 
    
 # 代码规范 
  2.1: 结构:Public -> Protected -> Private 
  2.2: 其他代码规范同SBX 
    
 # MVCL的v3/v4物理分割 
  3.1: v3/v4的代码分为两个文件,比如: order.php, order_v3.php 
  3.2: system也分为两个文件,暂时只有一个user_v3 
     - Note: front的$this->user在v4中会替换为$this->customer, 即v4中需要清除$this->user 
  3.3: 代码中,区分v3/v4的调用,比如:new User_V3 
   
 # 前台代码 
   twig, js, css (js, css尽量写在单独的css文件中) 
     
 # 后台代码 
   MVCL    (L:en,cn) 
     
 # 注释 
 ## 类名: 
 <pre> 
 /** 
  * xxx 
  * 
  * @copyright RedBlue-OTS 2024 
  * @version v4 
  * 
  */ 
 </pre> 
 ## 函数名:参数类型 + 返回值类型 
 <pre> 
     /** 
      * xxx 
      * 
      * @param    xxx $xxx 
      * @param    xxx $xxx 
      * @return xxx 
      */ 
 </pre> 

 *Output* 
 * Report and Solution 

 *Others*

Back