技術交流

人事系統 App 也能夠擁有高效能的秘密

人事系統變身手機 App 功能齊全輕鬆升級

人事系統在手機上的應用越來越為普及,為了順應人事系統潮流 HCP Mobile(Human Capital Planner Mobile;人力資源規劃系統行動版)因而誕生。主要擷取原本 ESS 人事系統(Employee Self-Service)部分功能模組,規劃成更符合手機應用的 App。HCP Mobile 目前已建置 7 種功能項目,分別為「我的訊息」、「我的排班」、「請假申請」、「加班申請」、「請假簽核」、「加班簽核」和「請假查詢」,未來預計新增電子薪資條、勞健保查詢、扣繳憑單查詢等功能。

HCP Mobile 人事系統 App 是採 CodeIgniter 開發框架與工具包 - 輕型 PHP MVC 架構(Model-View-Controller;模型—視圖—控制器模式) 附註1,依據既有的功能模組,加上原有 ORACLE 處理程式,重新建置 ESS 人事系統。並應用 Android 及 IOS 的框架 API(Application Programming Interface;應用程式介面)包裝技術,將 ESS 人事系統(CodeIgniter 版)打包,重新編譯成為手機 App 程式。

採用高效能技術 作業快速不間斷

現行 ESS 人事系統是採用 Smarty 模版引擎,為了讓系統移植到手機上也能擁有高效能,因此使用 CodeIgniter 開發框架。與現今需要大量資源的 Framework 相比起來,CodeIgniter 核心系統只需有幾個非常小的 Library。此外,函式庫是根據需求才會讀取進來,所以基礎系統非常小且快速。

什麼是 CodeIgniter 開發框架呢?

CodeIgniter 是 PHP 網站開發者使用的應用程式開發框架和工具包,它提供一套豐富的標準庫以及簡單的接口和邏輯結構,其目的是使開發人員更快速地進行項目開發。

CodeIgniter 是免費的

CodeIgniter 是授權在 Apache/BSD-style 中,並且 開放原始碼 license, 你可以盡情地使用它。

CodeIgniter 是網站應用程式框架

CodeIgniter 網站應用程式框架 - 給運用 PHP 開發網站工程師的一個工具。當在開發專案需要使用一般功能時,提供一群豐富的函式庫、函式庫介面以及存取函式庫的邏輯結構,使你在開發一般功能時比從頭造輪子還快許多。CodeIgniter 能讓你專注於專案之上,使你寫出最小化的程式碼並達到所需要的功能。

CodeIgniter 應用程式溝通流程

CodeIgniter 應用程式溝通流程同 Smarty 模版引擎,可根據以下圖片,了解資料在系統中是如何運行:

CodeIgniter 應用程式溝通流程
  • index.php 檔案是最一開始的 controller,初始化 Codeigniter 基礎資源。
  • Router 解釋 HTTP 請求,去找到這個請求該往哪裡走。
  • 如果 cache 檔案存在,將會直接通過一般系統執行回傳給瀏覽器資料。
  • Security 在傳給 application controller 讀取之前,HTTP 請求以及所有使用者送出的資料會通過它來過濾。
  • Controller 載入 model、core libraries、helpers,以及程式需要的所有特殊資源。
  • 最後 View 是最終的呈現結果,會送回給瀏覽器。如果快取是啟動的,View 會在第一次快取一份,之後使用者在發 HTTP 請求的時候,就會直接回傳這份快取,不需要再通過 Router 了。
  • 程式運行示意圖
    CodeIgniter

CodeIgniter 特性

  • MVC 架構
  • 超輕量級(載入所需 RAM 不到 2MB)
  • 支援多種資料庫平台
  • 支援 Active Record
  • 表單與數據驗證
  • 安全性與 XSS 過濾
  • Session 管理
  • 郵件發送類,支持附件、HTML 或文本郵件,多種協議(sendmail、SMTP 和 Mail)等等。
  • 圖像處理類庫(剪裁、縮放、旋轉等)。支持 GD、ImageMagick 和 BetPBM
  • 文件上傳類
  • FTP 類
  • 模板引擎類
  • 分頁
  • 數據加密
  • 基準測試
  • 全頁面緩存
  • 錯誤日誌
附註1 MVC 架構:
  • MVC(Model-View-Controller,模型—視圖—控制器模式)用於表示一種軟件架構模式。它把軟件系統分為三個基本部分:資料庫(Model),畫面(View)和程式邏輯(Controller)。
  • MVC 由 Trygve Reenskaug 提出,最早被應用在 SmallTalk-80 環境中。
  • Model—View—Controller 模式是為了實現一種動態的程式設計,能簡化後續對程序的修改和擴展,並使程序某一部分可以重複利用;透過複雜度的簡化使程序結構更加直覺,軟體系統能在自身基本部份分離的同時,賦予各個基本部分應有功能。
閱讀更多