人事系統變身手機 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 模版引擎,可根據以下圖片,了解資料在系統中是如何運行:
- index.php 檔案是最一開始的 controller,初始化 Codeigniter 基礎資源。
- Router 解釋 HTTP 請求,去找到這個請求該往哪裡走。
- 如果 cache 檔案存在,將會直接通過一般系統執行回傳給瀏覽器資料。
- Security 在傳給 application controller 讀取之前,HTTP 請求以及所有使用者送出的資料會通過它來過濾。
- Controller 載入 model、core libraries、helpers,以及程式需要的所有特殊資源。
- 最後 View 是最終的呈現結果,會送回給瀏覽器。如果快取是啟動的,View 會在第一次快取一份,之後使用者在發 HTTP 請求的時候,就會直接回傳這份快取,不需要再通過 Router 了。
CodeIgniter 特性
- MVC 架構
- 超輕量級(載入所需 RAM 不到 2MB)
- 支援多種資料庫平台
- 支援 Active Record
- 表單與數據驗證
- 安全性與 XSS 過濾
- Session 管理
- 郵件發送類,支持附件、HTML 或文本郵件,多種協議(sendmail、SMTP 和 Mail)等等。
- 圖像處理類庫(剪裁、縮放、旋轉等)。支持 GD、ImageMagick 和 BetPBM
- 文件上傳類
- FTP 類
- 模板引擎類
- 分頁
- 數據加密
- 基準測試
- 全頁面緩存
- 錯誤日誌
- MVC(Model-View-Controller,模型—視圖—控制器模式)用於表示一種軟件架構模式。它把軟件系統分為三個基本部分:資料庫(Model),畫面(View)和程式邏輯(Controller)。
- MVC 由 Trygve Reenskaug 提出,最早被應用在 SmallTalk-80 環境中。
- Model—View—Controller 模式是為了實現一種動態的程式設計,能簡化後續對程序的修改和擴展,並使程序某一部分可以重複利用;透過複雜度的簡化使程序結構更加直覺,軟體系統能在自身基本部份分離的同時,賦予各個基本部分應有功能。