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) 下即可。

时间: 2024-11-18 11:30:10

Hush Framework框架配置(续) 转自《Android和PHP最佳实践》官方站的相关文章

Hush Framework框架配置(转)

在写这篇文章的时候,楼主已经饿的不行了,因为我从3点开始就在折腾Hush Framework,走了很多弯路,打铁要趁热,先把基本的过程记录下来,留待以后翻阅,同时记录其中容易走弯路的地方,特别是对于一个像我这样的newer,搞起来真的是巨折腾人的. 既然写到要配置Hush Framework框架,那么对于它的理解,我在这里就不再多说,总之,是一个建立在Smarty和Zend Framework的PHP开发框架,综合了两者的有点,摒弃了Zend Framework的笨重. 首先得学会在apache

Android企业级应用程序开发完整训练:精通Android商业级开发最佳实践的24堂课

从企业级商业实战的角度入手,24小时内通过23个动手实战案例,循序渐进的对Android商业级别的应用程序开发要点各个击破,依托于在多年的Android(6款完整的硬件产品和超过20款应用软件)开发和企业级培训经验(超过150期的次Android的企业内训和公开课),旨在在实务的基础之上帮助你完成任何复杂程序的高质量Android应用程序开发,让Android开发跟上想象的速度.最后,通过ActivityManagerService揭秘Android应用程序一切行为背后的核心根源,让你从此开发应

Android 应用兼容性最佳实践 | 中文教学视频

本期中文视频向各位开发者介绍如何现代化您的应用,其中包括 Android?O.Android P?(预览版)?的新特性.行为变更.应用开发中常见的兼容性最佳实践,以及测试.兼容系统时需要注意的一些事项.希望大家尽快将开发的应用兼容新的 Android 系统. ?我们一起来看下视频 讲解? 视频中提到的文档链接: >> targetSdkVersion 要求:https://goo.gl/XM9B5Z >> targetSdkVersion 升级指南:https://goo.gl/Y

Android组件化最佳实践 ARetrofit原理

简介 ARetrofit是一款针对Android组件之间通信的框架,实现组件之间解耦的同时还可以通信. 源码链接:https://github.com/yifei8/ARetrofit欢迎star.issues.fork 组件化 Android组件化已经不是一个新鲜的概念了,出来了已经有很长一段时间了,大家可以自行Google,可以看到一堆相关的文章. 简单的来说,所谓的组件就是Android Studio中的Module,每一个Module都遵循高内聚的原则,通过ARetrofit来实现无耦合

观察者模式在android 上的最佳实践

在上一篇文章中介绍了介绍了观察者模式的定义和一些基本概念,观察者模式在 android开发中应用还是非常广泛的,例如android按钮事件的监听.广播等等,在任何类似于新闻-订阅的模式下面都可以使用.从某种意义上面来说android有点像JAVA EE的WEB页面,在都需要提供View层用于进行操作,在多个页面之间传递数据发送通知都是一件很麻烦的事情. 在android中从A页面跳转到B页面,然后B页面进行某些操作后需要通知A页面去刷新数据,我们可以通过startActivityForResul

Android 轮询最佳实践 Service + AlarmManager+Thread

android中涉及到将服务器中数据变化信息通知用户一般有两种办法,推送和轮询. 消息推送是服务端主动发消息给客户端,因为第一时间知道数据发生变化的是服务器自己,所以推送的优势是实时性高.但服务器主动推送需要单独开发一套能让客户端持久连接的服务端程序,不过现在已经有很多开源的代码实现了基于xmmp协议的推送方案,而且还可以使用谷歌的推送方案.但有些情况下并不需要服务端主动推送,而是在一定的时间间隔内客户端主动发起查询. 譬如有这样一个app,实时性要求不高,每天只要能获取10次最新数据就能满足要

HTTPS理论基础及其在Android中的最佳实践

我们知道,HTTP请求都是明文传输的,所谓的明文指的是没有经过加密的信息,如果HTTP请求被黑客拦截,并且里面含有银行卡密码等敏感数据的话,会非常危险.为了解决这个问题,Netscape 公司制定了HTTPS协议,HTTPS可以将数据加密传输,也就是传输的是密文,即便黑客在传输过程中拦截到数据也无法破译,这就保证了网络通信的安全. 密码学基础 在正式讲解HTTPS协议之前,我们首先要知道一些密码学的知识. 明文: 明文指的是未被加密过的原始数据. 密文:明文被某种加密算法加密之后,会变成密文,从

Android 屏幕适配最佳实践

参考该文章理论知识加代码 Android 屏幕适配方案 但是呢,该篇博文里个人觉得代码封装的不是很好,于是自己封装了下,使用XStream生成xml.上面那篇文章里没有对横竖屏进行适配,代码里完善了这一点,对横竖屏进行了适配. 在开始码代码前,贴一张图,结合前面那篇文章的理论知识一起看. 然后呢看最终适配的效果,这里以320*480为基准,屏幕上放一个TextView,宽度为x160,高度为y240,效果图如下 然后呢,不要惊讶,你会发现里面的两个pad并没有适配,其实呢,我也母鸡呀,但是我开了

Android+PHP开发最佳实践

本书以一个完整的微博应用项目实例为主线,由浅入深地讲解了Android客户端开发和PHP服务端开发的思路和技巧.从前期的产品设计.架构设计,到客户端和服务器的编码实现,再到性能测试和系统优化,以及最后的打包发布,完整地介绍了移动互联网应用开发的过程.同时,本书也介绍了Android系统中比较有特色的功能,比如Google地图.LBS功能.传感器.摄像头.多媒体以及语音功能的使用等.此外,本书还介绍了Android NDK的开发以及Android游戏开发的相关内容,包括OpenGL的使用.流行游戏