這是一篇以iOS 開發人員的視角寫給廣大iOS 程式猿的PHP 入門指南.在這篇文章裡我努力去發掘objectiv-c 與php 之間的共性,來幫助有一定iOS 開發經驗的攻城獅來快速上手一門後台開發語言.後台開發語言,就是以"數據接口"的形式出現在我們的開發文檔的那個東西!掌握PHP,無論對自己目前的ios開發工作還是以後個人職場生涯的長久發展,都會大有裨益!最重要的是,PHP本身不是一個玩具語言,而是目前相當一部分公司仍然在用的後台開發語言,甚至包括你目前的公司;這篇文章,也不是一個簡單的基礎手冊,而是以一種更適合iOS 開發人員理解的方式來系統講解PHP 中最核心最重要最常用的概念和功能.閱讀並有效實踐本文,將有助於你擁有獨立編寫後台數據介面的能力. 必要的準備與說明首先,你需要下載最新版 XAMPP軟體,以在本地搭建一個 php 伺服器.下載位址: https://www.apachefriends.org/download.html. 下載完成後,雙擊安裝.安裝成功後,選擇Mange Servers-->Start All啟動本機伺服器.啟動成功後,在瀏覽器中輸入http://localhost,就可以看到一個預設的PHP頁面. 你的php伺服器檔案預設放在: 應用程式-->XAMPP-->htdocs 目錄下. 然後你還需要下載一款PHP編輯器,此時我使用Github的Atom編輯器.個人感覺界面很舒適,代碼高亮看著也很舒服,你可以到這裡下載: https://atom .io.下載完成後,點選安裝即可. 最後要說明的是:PHP版本很多,下面的講解支持目前最常用的 php 5.3.0 及其以上版本. Hello World!下面編寫最簡單的 Hello World 程式,請在以下步驟執行. 1.在 應用程式-->XAMPP-->htdocs 目錄下新建目錄 find_php.沒有特別的意思,純碎是為了示範方便,同時不干擾預設存在的php檔案. 2.開啟Atom編輯器,使用cmd N 新建檔案,並輸入以下程式碼,並cmd S 儲存至find_php目錄,檔案命名為index.php.
如果PHP無法如中一樣高亮顯示,可能就需要點擊檔案右下角,以手動指定目前問文件的語法高亮方式. iOS應用程式通常是以AppDelegate 檔案作為編碼的起始(準確地說的是main.m,在此不細究).在PHP中,你可以使用一個index.php 檔案作為你的php 程式的唯一入口.你的所有的php頁間的訪問與跳轉,都將是由此處開始.下面的程式碼可以先複製到你的index.php種,它實現了一個基本的頁面訪問與控制的框架:
然後在瀏覽器網址列,輸入: http://localhost/find_php/index.php?viewController=HomeViewController&model[id]= 42&model[name]=iOS122&model[age]=25
viewController=後面跟的是你你的表示你的視圖控制器, model是一個字典,用於存儲數據模型,支持輸入多個鍵值對.id,name,age等都是自定義的鍵,用於表示你想要傳給新頁面的資料,如果沒有可以不寫. 注意: 此處暫僅考慮簡單的GET請求,至於其他變體可在熟悉PHP語法後,自行書寫.學習新語言的初期,努力尋找新東西與已經掌握的東西的共通之處,總是可以事半功倍! MVC 設計模式我們仍然從常用的MVC模式來開始更進一步的討論.M,即Model資料模型,對應於我們在地址欄輸入的model;V,即視圖View,更直接地說是顯示資料,為了簡化討論,我們此處僅對行動端開發常用的JSON格式資料的顯示作一實現;C,即Controller控制器,也就是我們常說的視圖控制器,下面會具體討論如何在PHP中定義視圖控制器. 注意: 行動端資料介面只是PHP的應用場景之一.其實你日常接觸的絕對部分網站都是由PHP 驅動的,要想寫出佈局優美的網站,你需要學習HTML和JS相關的知識.如果有興趣,建議去這個網站: http://www.w3school.com.cn 改進後的index.php
這個方法可以實現根據使用者輸入自動跳轉至對應的介面.你直接把程式碼複製到index.php中即可,因為它暫時不再需要做變更了.一些說明的技術點是: 實現了 魔術方法 __autoload,以實現自動加載相關的類文件.這有些類似於我們在 .pch中全局引入某個頭文件,然後整個工程處處可用一樣. php 是一種弱型別語言,你定義變數時不必宣告型別,但是變數要以 美元符號 $開頭. php 使用 new 函數來建立一個物件,語法是 new 類別名稱(),這不禁讓我想起 oc 中的 new函數,它的語法是: [類別名稱 new]; php 中的函數,看起來更像是C語言函數,也許說更像 oc 中的block,可能更好理解些. php 存取屬性,使用的是 ->,而不是 .;另一種 php 存取屬性的方式是使用 obj['屬性名稱'],如$controller['model']. 複製程式碼
因為你還沒有定義視圖控制器 在find_php資料夾新建HomeViewController.php 檔案,並把下面的程式碼複製進去:
複製程式碼 此時你訪問http://localhost/find_php/index.php?viewController=HomeViewController&model[id]=42&model[name]=iOS122&model[age]=25,輸出應該是:
{"id":"42","name":"iOS122","age":"25"}
複製程式碼 說明,頁面的確跳到了HomeViewController控制器,並有效輸出;而且輸出的是我們行動端開發最常接觸的json 格式的資料.以上的程式碼,充分展示了php作為一門物件導向(OOP)語言最常用的幾個功能,如定義屬性,定義實例方法,在範例方法內存取屬性與實例方法等.PHP作為一門弱型態的OOP語言,也有一些非常強大的特性,推薦閱讀: 重載 魔術方法 後期靜態綁定 Model: 關於資料模型的幾點說明. 網路上關於MVC中M的討論,這裡我選取的是最基本的一種: M專指用於儲存某種資料的類別的實例.它可以用於資料的格式化儲存和傳遞,但不應包含發起網路請求和讀寫資料庫等操作;在本文討論的Model中,我們進一步簡化了Model,允許且只允許用於透過URL來定義某個控制器的Model; PHP 是一本弱型的語言,所以不必專門為某種控制器指定某種類型的Model. "PHP 中的數組實際上是一個有序映射。映射是一種把values 關聯到keys 的類型。此類型在很多方面做了優化,因此可以把它當成真正的數組,或列表(向量),散列表(是映射的一種實現),字典,集合,棧,隊列以及更多可能性。 🎜> View: 一個顯示HTML的實例. 返回JSON 格式的資料,已經達到了做行動端開發的需要,但此處仍然使用html語法來顯示資料,以便於更好地理解.用下面的程式碼替換HomeViewController.php 檔案的getContent 方法:
|