Hush Framework框架配置(續) 轉自《Android和PHP最佳實踐》官方站


圖書資源下載

微博實例源碼安裝步驟(for Windows)

  • 下載 “圖書資源下載” 列表中前兩項的內容。
  • 解壓下載到的 Xampp 開發環境(xampp.zip)到 D:\xampp 目錄下。
  • 點擊 D:\xampp 目錄下的 setup_xampp.bat 文件,輸入1,然后回車,安裝好 Xampp。
  • 把 D:\xampp\php 和 D:\xampp\mysql\bin 目錄加入到 Windows 系統環境變量 Path 中去。
  • 解壓下載到的微博實例完整源碼包(android-php-source.zip),並拷貝目錄 android-php-source 下的所有文件到 D:\workspace 目錄下,比如:D:\workspace\hush-framework。
  • 使用源碼目錄(D:\workspace)下的 httpd-vhosts.conf 文件覆蓋 D:\xampp\apache\conf\extra 目錄下的同名 Apache 配置文件。
  • 在 Xampp 控制台(D:\xampp\xampp-control.exe)啟動 Xampp 的 Apache 和 MySQL。
  • 打開系統命令提示符,進入 D:\workspace\hush-framework\hush-app\bin 目錄,運行“hush sys init”命令初始化 Hush Framework 框架實例。
  • 打開系統命令提示符,進入 D:\workspace\android-php-weibo\server\bin 目錄,運行“cli sys init”命令初始化微博應用服務端的實例。
  • 修改 Windows 系統本地 hosts 文件(C:\WINDOWS\system32\drivers\etc\hosts),在文件末尾加入以下虛擬站點配置:
     
  • Hush Framework 實例前台:http://hush-app-frontend
  •  
  • Hush Framework 實例后台:http://hush-app-backend
  •  
  • 本書微博實例 API 調試后台:http://127.0.0.1:8001
  •  
  • 本書微博實例 WEB 站點:http://127.0.0.1:8002
  •  
  • 使用 ipconfig 命令獲取本機的局域網地址,比如 192.168.1.28(也可以直接用 Android 模擬器的映射地址 10.0.2.2),然后找到服務端源碼中的 etc/app.config.php 文件,以及客戶端源碼 com.app.demos.base 包中的 C.java 文件,將 192.168.1.2 替換成本機的局域網地址(或者 10.0.2.2)。
  • 將客戶端源碼安裝到 Android 模擬器上,即可運行!

特別說明(幫助理解源碼)


 

說明1:如果遇到網絡問題導致 Google 上的類庫代碼無法下載,可以使用 hush/cli sys uplib 嘗試下載更新,如果還不成功就只能到 Hush Framework 項目網站的 Downloads 頁面手動下載了。

說明2:如果本機已經安裝過 Apache 和 MySQL 服務,應該注意以下幾點:

  • 執行初始化命令“cli sys init”命令前,請修改 bin/cli.php 中的 MYSQL_USER 和 MYSQL_NAME 為本地 MySQL 的用戶密碼。
  • 如果是 Hush Framework 無法導入數據庫,請手動把 doc/sql/ 下面的兩個 sql 文件導入到數據庫中,然后再修改數據庫配置文件即可(見下點)。
  • 運行系統之前,請先修改 etc/database.mysql.php 配置文件中的 self::DEFAULT_USER 和 self::DEFAULT_PASS 為本地 MySQL 的用戶密碼。

 

說明3:以下是服務端主要配置文件的說明,可能對理解框架有比較大的好處:

  • app.config.php:源碼配置的入口文件
  • app.mapping.ini:URL路由配置文件,這里主要針對 Debug 后台
  • database.mysql.php:數據庫配置文件,可以在這里手動修改數據庫的用戶/密碼
  • global.datamap.php:協議配置文件,定義 M 方法來定制 JSON 協議的返回數據結構
  • global.defines.php:全局配置文件,主要用於配置類庫(基礎/Hush類庫)的路徑
  • global.message.php:國際化配置文件,定義 L 方法用於獲取國際化文字
  • global.session.php:會話配置文件,定義服務器 Session 會話的配置

 

 

常見問題解答(沙龍精選)


問題1:本書的客戶端實例是基於Android哪個版本開發的,使用新版SDK是否會有問題?

考慮到向上的兼容性,本書所有客戶端實例都是基於Android2.2來開發的。客戶端實例源碼的安裝過程很簡單,只需要把客戶端實例源碼導入到 Eclipse中,然后在“項目屬性”中設置Android的SDK版本為Android2.2版,即可運行。本書的實例均經過專門的測試,都是可以正常 運行的;如果在實例源碼安裝過程中遇到問題,請到作者博客(http://blog.csdn.net/shagoo)進行提問。

 

問題2:我是Android的初學者,可以些學習的建議嗎?

從Androider的角度,建議按照以下步驟學習本書:

  1. 閱讀《第2章.Android開發准備》學習Android開發基礎精要。
  2. 閱讀4、5兩章了解本書微博實例的項目架構和規划。
  3. 閱讀《第3章.PHP開發准備》學習PHP開發基礎精要。
  4. 閱讀《第6章.服務端開發》學習使用PHP開發服務端接口。
  5. 閱讀《第7章.客戶端開發》學習如何結合PHP服務器API開發移動互聯應用。
  6. 閱讀8到10章,學習服務端和客戶端的壓力測試和優化方法。
  7. 閱讀剩下的進階章節學習Android特色功能開發、游戲開發以及其他擴展知識。

本書不僅能讓你學到Android客戶端開發的技巧精要,還可以學到流行腳本語言PHP的用法以及服務端開發的知識,准備篇、實戰篇、優化篇、進階篇的內容層層遞進、由淺入深,非常適合初學者進行系統的學習。另外,本書的內容也十分豐富,可以當作參考手冊來使用。

 

 

問題3:如果只會一點PHP,不會Android的開發,如何同時學好PHP和Android?

從PHPer的角度,建議按照以下步驟學習本書:

  1. 閱讀《第3章.PHP開發准備》學習PHP開發基礎精要。
  2. 閱讀4、5兩章,了解本書微博實例的項目架構和規划。
  3. 閱讀《第6章.服務端開發》學習使用PHP開發服務端接口。
  4. 閱讀《第2章.Android開發准備》學習Android開發基礎精要。
  5. 閱讀《第7章.客戶端開發》學習如何結合PHP服務器API開發移動互聯應用。
  6. 閱讀8到10章,學習服務端和客戶端的壓力測試和優化方法。
  7. 閱讀剩下的進階章節學習Android特色功能開發、游戲開發以及其他擴展知識。

PHP和 Android(Java)畢竟是兩種不同的語言,學習的時候注意多類比,多思考;相信對你的編程之路會很有幫助。就本書的內容比重而言,Android 和PHP各占一半左右,比較合適對移動互聯網有興趣的讀者來拓寬思路,當然如果你對作架構有興趣的話,本書也是不錯的選擇。

 

 

問題4:應用服務端開發和常見WEB站點的開發有什么不同?

應用服務端開發確實和開發普通的WEB站點不大一樣。最直觀的不同點就是應用服務端都是API形式的,而web站點是有界面的。從調試的角度來看,API的調試會更加麻煩一些,恰好本書的PHP服務端框架提供了一套很方便的調試框架,有興趣的話可以多研究一下~

 

問題5:運行初始化命令(hush/cli sys init)后提示數據庫導入失敗如何解決?

 

  • 錯誤提示1:提示 Can't connect to MySQL server on '127.0.0.1'
  • 解決方法1:原因是本地 MySQL 沒有啟動。請確認一下 Xampp 的 MySQL 服務是否已啟動。
  • 錯誤提示2:提示 Access denied for user 'root'@'localhost'
  • 解 決方法2:原因是MySQL密碼不對。如果不想改變原有密碼,可以修改數據庫配置文件 etc/database.mysql.php,將文件中的 self::DEFAULT_PASS 修改成現有的 root 密碼;或者直接使用 mysqladmin -u root -p password passwd 將 root 密碼改為 passwd。

 

 

問題6:微博客戶端為何無法連接服務器(提示“網絡錯誤”)?

首先,請確認本機的微博服務端是否已經啟動,即 http://127.0.0.1:8001 是 否可以訪問;如果可以,請再確認本機的局域網地址是什么(Windows 下可使用 ipconfig 命令獲取,比如:192.168.1.28;或者直接使用 Android 模擬器的映射地址 10.0.2.2),然后,找到客戶端源碼 com.app.demos.base 包中的 C.java 文件,將 192.168.1.2 替換成本機的局域網地址(或者 10.0.2.2),重新安裝運行微博客戶端即可。此外,最好把服務端代碼中的 etc/app.config.php 中的 HOST_SERVER 和 HOST_WEBSITE 常量也替換掉,這樣不至於出現其他問題。

 

問題7:服務端代碼報錯提示:Strict Standards: Non-static method MysqlConfig::getInstance() should not be called statically ...?

與PHP新版本沖突導致的報警信息,請從SVN更新最新的Hush Framework代碼,或者按照以下方式修改代碼:1、找到Hush/Db/Config.php,將179行注釋掉,“//abstract public function getInstance();”。2、找到etc/database.mysql.php,把57行改為“public static function getInstance()”。

 

問題8:為何運行“cli doc build”提示報錯,無法生成文檔?

這是書本代碼使用的 Hush Framework 版本較老的問題(新版本 Hush Framework 沒有此問題),可以到官網的 Downloads 頁面下載微博實例源碼修正包(weibo-patch-20130502.zip),解壓並覆蓋到原來的源碼目錄(android-php-weibo) 下即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM