何受倩
(廣東科貿(mào)職業(yè)學院,廣東 廣州 510640)
基于企業(yè)網(wǎng)站項目的PHP高級編程的教學實施
何受倩
(廣東科貿(mào)職業(yè)學院,廣東 廣州 510640)
PH P的優(yōu)越性體現(xiàn)在其語法簡單、易懂,容易入門,其運行速度快,開發(fā)周期短,還可實現(xiàn)跨平臺。在PH P4后,PH P在面向?qū)ο蠓矫嬗辛撕艽蟮母倪M,它完全勝任用來開發(fā)大型商業(yè)程序,越來越多的大型網(wǎng)站選擇使用PH P進行開發(fā)。PH P人才缺口大,學習和掌握好PH P,其就業(yè)前景非??捎^。很多學校也相繼開設了以PH P為主線的課程體系,如何讓學生在短期內(nèi)快速地掌握PH P開發(fā)技術,其中一個重要的因素是教師的教學實施過程,文章論述了以企業(yè)網(wǎng)站項目貫穿PH P高級編程的教學實施。
企業(yè)網(wǎng)站項目;教學實施;M VC模式;項目評估
PHP,是英文超級文本預處理語言Hypertext Preprocessor的縮寫。PHP作為一門簡潔、安全、高效和跨平臺的Web開發(fā)語言,它和Linux、Apache、MySQL緊密結合,形成LAMP的開發(fā)黃金組合,不僅降低使用成本,還提升了開發(fā)速度。PHP應用程序的集成開發(fā)環(huán)境Komodo和Zend Studio,很好地實現(xiàn)了跨平臺,滿足最新的互動式網(wǎng)絡開發(fā)的應用,PHP因而也成為Web技術最流行的語言之一。如:阿里巴巴、唯品會、YY語音等大型的互聯(lián)網(wǎng)站都是使用PHP開發(fā)的。由于互聯(lián)網(wǎng)本身的快速發(fā)展、不斷創(chuàng)新的特點,決定了只有以最快開發(fā)速度和最低成本,才能取勝,PHP的必將成為未來Web開發(fā)領域的主流技術體系。
2.1 PHP就業(yè)與發(fā)展前景
在TIOBE 2016年1月編程語言排行榜中,PHP排名第四。由于PHP開發(fā)效率高、安全可靠、可跨平臺等自身的優(yōu)點,一方面,越來越多企業(yè)的Web項目使用PHP技術開發(fā),PHP崗位人員的需求也越來越大。據(jù)統(tǒng)計,目前全球5000萬互聯(lián)網(wǎng)網(wǎng)站中,有60%以上使用PHP技術;國內(nèi)80%以上的動態(tài)網(wǎng)站都是使用PHP開發(fā);Alexa TOP500中國網(wǎng)站排名,有394家使用了PHP技術,比例為78.8%。另一方面,由于國內(nèi)PHP人才貯備不足、培訓體系不健全,以及國內(nèi)Web開發(fā)人員對PHP的價值認識不夠,近幾年各類企業(yè)發(fā)布的招聘人才信息中對PHP人才的需求超過60000名,但應聘累計人數(shù)大約只有6000名,人才缺口達到10:1??梢姡琍HP人才缺口是非常大的,學習并掌握好PHP,其就業(yè)前景是非常可觀的。
2.2 PHP的優(yōu)勢
PHP獨特的語法混合了C、Java、Perl以及PHP自創(chuàng)新的語法。用PHP做出的動態(tài)頁面與其它編程語言相比,PHP是將程序嵌入到Html文檔中去執(zhí)行,執(zhí)行效率比完全生成Html標記的CGI要高許多;PHP還可以執(zhí)行編譯后代碼,編譯可以達到加密和優(yōu)化代碼運行,使代碼運行更快。最重要的是PHP可以用C、C++進行程序的擴展。
和ASP相比,PHP兼容性較好,ASP只能在WINDOWS機器上使用,PHP可以適用于各類操作系統(tǒng)的服務器,特別適合在互聯(lián)網(wǎng)廣泛運用的LINUX系統(tǒng);和JSP相比其入門容易,語法簡單,適合自學。
3.1 PHP課程體系設置
大多數(shù)高職院校是這樣開設PHP課程體系的:第一學期開設“網(wǎng)頁設計”,第二學期開設“PHP程序基礎”和“網(wǎng)絡數(shù)據(jù)庫”,第三學期開設“PHP高級編程”?!癙HP程序基礎”課程介紹PHP的基本語法;“網(wǎng)頁設計”課程介紹HTML的基本元素和網(wǎng)站的靜態(tài)頁面設計;“網(wǎng)絡數(shù)據(jù)庫”課程介紹標準的SQL語句、數(shù)據(jù)庫的基本知識以及數(shù)據(jù)庫的日常維護操作。而“PHP高級編程”則是囊括了以上三門課程的內(nèi)容,它是一門綜合了網(wǎng)頁設計、數(shù)據(jù)庫,同時支持面向?qū)ο笈c過程,并可向下兼容的課程。
3.2 PHP高級編程的教學思路
教學內(nèi)容結構要比教學內(nèi)容本身更重要。在第一次課上可以用思維導圖或關系圖等將課程內(nèi)容框架呈現(xiàn)給學生,這有利于學生更好地把握課程的整體架構。
圖1 PHP高級編程課程所涉及的內(nèi)容
“PHP高級編程”課程所涉及的內(nèi)容如圖1所示。左邊的三個圖形表示了“PHP高級編程”的先修課程。在“PHP高級編程”課程教學中會涉及到PHP基本語法、Html頁面元素及分頁技術、數(shù)據(jù)庫設計、數(shù)據(jù)庫連接以及查刪改等編程實現(xiàn)。除此之外,還有面向?qū)ο筇卣?、MVC設計模式等。
3.3 PHP高級編程課程教學實施過程
3.3.1 項目教學準備階段
PHP高級編程教學按項目開發(fā)的步驟來展開,其效果比傳統(tǒng)的教學模式能取得更好的效果。首先是項目準備階段。教師可以通過一些小案例來給學生復習PHP基本語法,強化SQL操作數(shù)據(jù)庫的命令。接著,介紹PHP開發(fā)環(huán)境(如:Appserv、Zend Studio或NetBeans)。搭建后開發(fā)環(huán)境,要讓學生知道,開發(fā)的項目是可以部署到任意PHP服務器的(如:appserver或wampserver都可以),IDE也可以任意選用,它們是可以遷移、互相替換的。
3.3.2 項目教學實施階段
項目教學實施階段可分為五個步驟:
(1)分組準備階段。按3-4人為一組,以組為單位進行網(wǎng)站項目開發(fā),每個組的網(wǎng)站項目應各不相同。如果選題一樣,最后作品風格和代碼也不能雷同。
(2)尋求企業(yè)項目。以小組為單位,小組成員自己聯(lián)系企業(yè),確定網(wǎng)站項目選題。確定選題對學生來說是一次挑戰(zhàn),也是一個很好的鍛煉。選題各不相同,可以是書店、蛋糕店、電腦銷售店、學校協(xié)會、政府部門等等。
(3)確定小組內(nèi)組員分工。組員分工可以采用模擬公司來進行,如項目經(jīng)理、前端設計人員、數(shù)據(jù)庫數(shù)據(jù)人員、后臺開發(fā)人員等。每個崗位人員負責不一樣的工作任務,如頁面設計、CSS、數(shù)據(jù)庫設計、后臺編碼等。在確定好組員分工后,小組要設計“需求分析調(diào)研問卷”對企業(yè)進行需求調(diào)研,“需求分析調(diào)研問卷”有助于幫助用戶確認需求,可以通過面談、電話或網(wǎng)上交流等形式方便地進行,以便更好地確定網(wǎng)站主題和網(wǎng)站風格。
(4)完成“網(wǎng)站系統(tǒng)架構圖”、“網(wǎng)站功能模塊劃分(或系統(tǒng)用例圖)”和“數(shù)據(jù)庫及表結構設計”。每小組要把以上的資料提交并經(jīng)教師審批后才能進行下一步的代碼設計環(huán)節(jié)。因為根據(jù)軟件項目開發(fā)原則,問題要越早發(fā)現(xiàn)越好,越到后期發(fā)現(xiàn)的問題所花費的人力物力越大。
數(shù)據(jù)庫設計環(huán)節(jié)也是學生出現(xiàn)較多問題的環(huán)節(jié),根據(jù)數(shù)據(jù)庫設計規(guī)范,要求達到3NF(范式)。但這對學生來說有一定難度。在具體的數(shù)據(jù)庫設計中,很多組都沒有達到3NF,也就是沒有消除數(shù)據(jù)冗余,這在進行記錄的刪除或插入時將會導致數(shù)據(jù)的不一致。對不合理的數(shù)據(jù)庫,要求學生按照修改意見重新設計,再次提交,審核通過后才能進入下一階段。一般來說,經(jīng)過返工修改后基本都能達到3NF要求。
(5)編碼階段。將功能與UI(用戶界面)相分離,這有利于系統(tǒng)的擴展和維護。PHP的MVC框架有很多,如Yii、CodeIgniter、ThinkPHP等都是目前流行的框架,其原理都是MVC模式。利用MVC進行Web頁面的開發(fā),可以非常方便地編寫Web程序。MVC架構圖如圖2所示。
圖2MVC架構圖
MVC有三層架構,用戶界面包也稱為視圖view,主要是PHP頁面(如登錄頁面login.php、注冊頁面reg.php等);業(yè)務邏輯包是業(yè)務邏輯層,也稱為controller,起中間橋梁作用,如當運行l(wèi)ogin.php時,由post方法將數(shù)據(jù)傳到dologin.php頁面(dologin.php文件里包含有登錄驗證邏輯),實現(xiàn)了登錄。(注冊原理相同)。在編碼階段學生容易出現(xiàn)的問題是:
(1)目錄路徑問題
如:header(location:../error.php?)指包含此文件或目錄的上一級目錄,跳到上一級目錄中查找error.php;header(location:error.php?)指包含此文件或目錄的同一級目錄上查找error.php;header(location:./error.php?)表示根目錄,返回根目錄中,查找文件error.php。
(2)數(shù)據(jù)庫訪問層代碼的整合與優(yōu)化問題
在數(shù)據(jù)庫訪問層學生編寫的代碼是比較亂的。此時,通過將公共資源、公共函數(shù)抽取到一個單獨的comm.php文件中;進行數(shù)據(jù)庫服務器參數(shù)配置;將用戶表操作程序函數(shù)進行整合,通過這三個步驟來完成數(shù)據(jù)訪問層代碼的整合與優(yōu)化。
(3)沒有加入會話session技術和error錯誤處理
學生開發(fā)的項目,為了方便實現(xiàn),他們在用戶登錄后,并沒有加入會話session,以及在登錄出錯時,沒有設計error頁面進行處理。在實際項目開發(fā)中,比如某個帳號登錄了,在登出前是需要保存會話的。
項目評估由三方進行:小組間評價、組員內(nèi)評價、教師評價。每組組員上臺演示他們的最終作品,由教師對每個組員完成的部分提出問題,進行答辯。評價體系中詳細標明具體的項目和得分,對有創(chuàng)新、創(chuàng)意的項目酌情加分。通過這種基于企業(yè)真實項目的教學,讓學生一開始便有明確的目的性,能大大提高學生的學習熱情和主觀能動性。
要掌握好一門語言,最好的方法是開發(fā)一些實際的項目。基于企業(yè)項目的教學方法不僅適合于PHP教學,同樣適合于其它語言。教師引導學生循序漸進,培養(yǎng)學生自我分析問題、解決問題的能力。同時,基于企業(yè)項目的教學方法也符合崗位分工,有利于提高學生的團隊合作意識,是一種效果顯著的教學方法。
[1](美)贊德斯徹.深入PHP:面向?qū)ο蟆⒛J脚c實踐(第3版)[M].北京:人民郵電出版社,2011.
[2]楊宇.PH P典型模塊與項目實戰(zhàn)大全[M].北京:清華大學出版社,2012.
[3]趙鶴芹.設計動態(tài)網(wǎng)站的最佳方案::Apache+PHP+MySQL[J].計算機工程與設計,2007,28(4):933-934.
[4]傳智播客高教產(chǎn)品研發(fā)部.PHP程序設計高級教程[M].北京:中國鐵道出版社,2015.
The Teaching Implementation of PHPAdvanced Programming Base on Enterprise Website Project
He Shouqian
(Guangdong Polytechnic of Science and Trade,Guangzhou 510640,Guangdong)
The grammar of PHP is simple and easy for learning.It also has advantages of high execution efficiency,short development cycle and crossing platforms.PHP makes great improvement after PHP4,which is fully qualified for the development of big commercial projects and large websites.Facing the current situation of the shortage of PHP talents,the employment prospect of graduates mastering PHP technology is considerable.The curriculum systems with PHP as the main thread are opened gradually in many universities.One factor for the students to master PHP technology in a short time is the teaching implementation process.This article discusses on the teaching implementation of PHP advanced programming with enterprise website projects.
enterprise website project;teaching implementation;MVC pattern;project evaluation
TP312
A
1008-6609(2016)12-0086-03
何受倩(19 79),女,廣東惠陽人,碩士,講師,研究方向為數(shù)據(jù)庫、算法及軟件開發(fā)技術。