第三階段(2017年5月21—6月20日):主要開發內容重心轉向用戶業務管理層,業務邏輯是用PHP程序對數據庫表進行調用,知足業務管理需求。數據庫除了安裝PDO驅動外還須要安裝ODBC相應的驅動,便於之後使用ODBC數據源接口,在MySQL官網下載mysql-connector-odbc穩定5.3版本32位安裝,而後在啓動->windows文件管理->ODBC數據資源管理程序中添加相應的mysql驅動程序。主體開發可參考fastphp、ppphp輕量級開發框架、H-ui前端框架、敏捷框架、Medoo數據庫框架來自定義搭建項目骨架,理清項目開發主線,正式開始一步步開發完成整個項目主體內容,爲後期上線測試奠基堅實基礎。php
開發內容:前端
①cookie裏存的是加過aes加密後的用戶編號和salt鹽,驗證cookie時就是aes解密後拿出用戶編號查詢user表拿到該用戶的salt字段內容跟cookie裏的salt對比,一致則cookie有效,經過驗證,提取存儲用戶信息爲後臺傳遞參數,提供系統內頁使用。mysql
②系統初始化配置與內頁調用機制的代碼編寫。程序員
③加載common函數庫,用對應函數分裂前端框架靜態頁面的頁眉、頁腳、主菜單。把實用工具或解決方法集成到函數庫中或function.php文件中,在項目各功能模塊須要時直接引用,讓工具來去自由,快速破解各功能模塊中的疑難雜症,招之即來,揮之即去。sql
④用數據表存儲或自定義常量生成系統菜單。數據庫
⑤選擇合適前端開發框架,編寫控制層核心代碼,以確保組織機構維護、員工天然情況維護、工資人事數據維護、報表查詢及數據導出導入等平常業務功能的實現。編程
⑥數據處理及圖形查詢並另存爲網頁或電子表格式文件。json
⑦ODBC數據源接口生成報表,充分利用公司原有VFP數據庫資源。windows
⑧結合PHP安裝運行環境以官方文檔爲指導規範性選擇使用合適版本的medoo數據庫框架,快速解決medel層數據庫多樣化操做。數組
開發技巧:
①命名規範。由於遠程虛擬主機Linux運行環境對設置爲路徑和文件名是嚴格區分大小寫的,爲了安全穩定運行,項目文件夾、數據庫名、數據表名、表前綴、字段名統一用小寫字母或加下劃線命名,程序中注意嚴格區分大小寫。
②安全操做。考慮防止SQL注入等安全性操做問題,必須編寫完整的用戶註冊登陸加密驗證系統與單一入口文件配合使用。
③深入理解MVC和結構化編程。在MVC模式中Controller控制器是Model和View二者交互的中介,負責經過路由解析URL提交二者處理,Model模型層負責讀寫數據,View視圖層負責視圖處理輸出。說MVC是一種技術,不如說是一種藝術,MVC理念來源於工做和生活,又服務於工做和生活。MVC不是哪門開發語言的專利,也不侷限於哪一個項目之上,MVC思想理念普遍用於全部開發語言的各類項目開發中。用PHP開發MIS就是牢牢圍繞MVC三個層級關係用結構化編程思路方便快捷實現業務邏輯處理。結構化程序更容易編寫和測試,由於複雜的編程問題被劃分爲多個更小的、更簡單的任務。每一個任務由一段代碼或一個函數完成,而函數中的代碼和變量獨立於程序的其它部分。經過每次處理一個簡單的任務,編程目標定位將更快更準,還容易維護。
④多個瀏覽器交替調試。爲了提升瀏覽頁面速度,如今的瀏覽器緩存是愈來愈厲害了,編程過程當中特別要小心掉進緩存這個坑裏,被緩存矇蔽。必須採用兩個以上瀏覽器交替調試程序,並在明顯知道代碼真假的位置設置斷點有意變動變量或文件名反覆測試程序運行真假,繞過緩存假象這個坑。
⑤爲了防止批量盜鏈站點內容默認用自定義常量ROOT在任意子目錄下使用絕對路徑引入或包含文件。在遠程虛擬主機Lninux中,」.」表示當前目錄,」..」來表示上一級目錄。」-「表示上次所在目錄,」~」表示當前用戶的home目錄,也可用」pwd」查看當前所在的絕對路徑。從方便編碼和頁面跳轉穩定運行的角度考慮,經常使用相對路徑去include/require文件或跳轉,但上線安全測試時加以修改成絕對路徑,減輕服務器搜索文件壓力,提高產品性能和應用效率。
體會感悟:
①合理使用插件給力正能量。後臺這塊的難度主要在於二次開發中可能會涉及到數據的圖表展現,須要用到JS插件來完成,數據的表格、表單展現,用插件自帶的數據表格,實現了對錶單的排序和搜索,借外腦給力系統集成與開發,大大簡化了項目開發的工做量。
②自定義搭建適合開發框架。
框架(framework)是一個基本概念上的結構,用於去解決或處理系統性複雜的問題。說白了用框架就是使用別人造好的輪子。「來得輕鬆,去得易;出來混,遲早要還的」。用別人的輪子,總要爲莫名其妙的東東付出太多迷茫調試的代價。再說大型框架仍是重複用一堆代碼構建於 PHP 之上,因此追求極致性能的話,不建議過多重複用代碼搭積木。其實最優雅的框架就是PHP自己,本身原碼搭建框架與其說是在用框架,還不如說是梳理出項目開發思路和搭好項目架構,更重要的是,經過本身搭建適合項目須要的MVC架構,把本身的想法融入到框架中,不必定是最好的,但能夠按照本身的方式開發各類實用功能,讓本身深刻理解MVC開發模式,也讓本身可以在業務項目開發過程當中快速提高技能,培養獨立思考的能力,掌握MVC框架實質和PHP面向對象實例化應用,從中熟悉PHP的各類代碼優化方法,熟悉大部分PHP安全方面問題的解決辦法和熟悉基本的PHP運行機制原理。由於PHP自己就支持模板功能,因此也不必非使用第三方模板引擎不可,又由於PDO+SQL就已經能良好的抽象數據庫操做,用PHP數組就能方便地存儲和操做查詢結果,用自定義函數封裝項目功能模塊,函數式結構化編程使用靈活又容易維護。既然面對五花八門的各類框架,實在難以決擇,還不如原生結構化開發,既下降學習成本又能體驗高性能PHP服務,入門仍是先擺一擺大型專業框架之後再說。隨着手持設備的迅猛發展,帶動了HTML5行業標準的快速發展,爲了知足Web前端高度靈活開發須要,以適應不一樣的瀏覽器、平板、智能手機各類各樣的手持設備,非要用響應式策略開發框架不可,那就用輕量級前端框架如H-ui或敏捷框架之類。
總之,用PHP原生面向對象賦予MVC思想繞開諸多框架的喧囂,不被框架綁架,以最簡單的方式去詮釋高效纔是王道。
③堅持大道至簡的核心開發理念。PHP素來以簡單著稱,開發過中切莫刻意把PHP代碼編寫弄得莫測高深,只要「方法可取、運行穩定、知足需求」,編程中的每一個環節都要儘可能去繁就簡,易於上手,易於理解,都往簡單處想,越簡單越快樂,越簡單越有力量。
④站在巨人的肩膀上更容易摘到蘋果。Composer是一個出色的PHP依賴管理器,把項目的依賴列在composer.json文件中,而後經過一些簡單的命令,Composer就會自動的幫你下載這些依賴,並配置好自動加載路徑。根據項目擴展須要,用composer install/update 聲明依賴、安裝、更新自動加載第三方類庫或插件,大大提高了開發Web應用的效率與性能。
⑤快速入門突破難關。PHP+MySQL開發管理信息系統已經成爲你們追捧的潮流,管理信息系統注重業務實用性,難在功能實現和應用推廣上,緣由多半是程序開發與業務需求脫節,懂技術的程序員不懂業務,有業務需求的客戶又不懂技術,無形中增長了溝通難度,程序維護也很困難。無窮無盡的業務需求,期待實用易用的管理信息系統(MIS),Web Apps勢不可擋,順應時代召喚,不適合時代的操做習慣和應用方式將會逐漸被MIS所取代,只要堅決方向從從容容走下去,相信總會突破各類難題。