Zend Framework controller输出json数据

这是一个非常基础的功能,在这里简单说一下:

在action里用

$this->_helper->getHelper('Json')->sendJson($result);

例子:

if ($rows > 0) {
	$result['code'] = 0;
	$result['ret'] = 'success';
} else {
	$result['code'] = -1;
	$result['ret'] = 'failed';
}
$this->_helper->getHelper('Json')->sendJson($result);

通过上面的代码就可以让controller输出json的数据了,是不是很简单?

Zend Framework 2.0在Windows上的安装配置

所有人都知道IT行业里技术更新速度非常快,Zend Framework 1还用得意犹未尽,Zend Framework 2又发布了。尽管如此,我们还是要学习Zend Framework 2,并开始使用它。今天讲讲Zend Framework 2在windows的上的安装,安装步骤如下:

1. 到https://github.com/zendframework/ZendSkeletonApplication下载zip包,解压到你服务器的根目录。

2. 打开windows的cmd,cd到刚刚解压的ZendSkeletonApplication的目录下,执行:D:\wamp\bin\php\php5.3.10\php.exe composer.phar self-update(这里的PHP可执行文件的路径修安排替换成你电脑上的路径),提示:

Updating to version ***********************************************************.
Downloading: 100%
表示更新完成。

3. 在cmd中输入D:\wamp\bin\php\php5.3.10\php.exe composer.phar install,这时候在下载Zend的类库文件等,需要耐心等待。

4. 下载完成之后,你要配置下虚拟主机了,要保证你的服务器rewrite的功能打开。以apache为例,在httpd.ini中加入:

<VirtualHost *:80>
   DocumentRoot "D:/wamp/www/Zend2/public"
   ServerName .local
   # This should be omitted in the production environment
   SetEnv APPLICATION_ENV development
   <Directory "D:/wamp/www/Zend2/public">
       Options Indexes MultiViews FollowSymLinks
       AllowOverride All
       Order allow,deny
       Allow from all
   </Directory>
</VirtualHost>

5.浏览器的地址栏中输入localhost,你就会看到以下页面,就表示Zend Framework 2安装成功了:

20130308215830

Zend Framework无法开启Apache服务器的mod_rewrite模块的解决办法

        Zend Framework的原理是把所有文件的访问都引向单一入口程序index.php,然后再由Zend_Controller_Router_Route进行路由转发,如果使用使用Apache服务器的.htaccess重写规则就必须打开Apache的服务器的mod_rewrite模块,但是很多的服务器是没有打开这个模块的,比如你买了一个空间,结果空间没有打开这个模块,那你又必须使用,怎么办呢?Zend Framework就不可以使用了吗?有的人说不可以,巧妇难为无米之炊。但是我想想觉得如果这个问题都没有解决Zend Framework怎么能在PHP界立足呢?
        后来我找到了解决的方法。方法其实很简单,就是在访问的时候加上index.php就可以了,例如:正常情况下的URL:http://www.youdomain.com/controller/action。现在我们只需把URL改成:http://www.youdomain.com/index.php/controller/action,并把.htaccess删除掉就可以了。

3. 开始学习Zend Framework(ZF框架的目录结构)

打开项目中的index.php文件,你应该能看到以下代码:
<?php
// Define path to application directory
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ?
getenv('APPLICATION_ENV') : 'production'));
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
get_include_path(),
)));
/** Zend_Application */
require_once 'Zend/Application.php';
// Create application, bootstrap, and run
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
->run();
    index.php文件为application目录和Zend类库文件夹设置了包含路径,设置了你现在正在开发的环境变量,加载了配置的设置信息,以及运行位于application目录中的引导文件。
    你可能已经猜到,你只是在一个标准的请求经过的路径。接下来要提的文件是Bootstrap.php,这个文件放置在application目录下。打开文件你会看到以下代码:
<?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
 
}
Bootstrap.php文件是将应用程序要使用的模块和组件进行初始化的主要文件。最后,让我们看看在应用程序的重要目录。在根目录下是library, application, public和test文件夹以及zfproject.xml文件。library文件夹包含Zend框架的文件,我建议以后可以把其他的第三方扩展和组件放在在这个位置。application目录包含许多子目录如controllers,views,configs和models:
  • controllers目录包含应用程序的所有控制器。
  • views目录包含应用程序的所有视图。
  • models目录包含应用程序的所有模型。
  • configs目录包含为应用程序设立的所有配置文件。
因为有很多的文件夹,我创建了一个表格来帮助你确定每个文件夹包含什么,有什么作用:
目录/文件 主要用途
application 包含核心应用程序代码,你可以在这里找到任何应用程序所有的controllers,model和views。
library 包含Zend框架的库文件,我建议将所有第三方的源代码放在这里。
test 包含控制器的单元测试用例,PHP的单元被使用。
public 包含.htaccess和index.php文件,我建议将所有应用程序的CSS、JavaScript、图片和任何静态内容放在这里。
.zfproject.xml 由Zend_Tool创建的文件来识别整个项目。
application/controller 所有应用程序的控制器都应该放在这里。
application/views 所有应用程序的助手和视图都应该放在这里。
application/models 所有应用程序的模型都应该放在这里。
application/configs 所有应用程序的配置文件都应该放在这里。
Bootstrap.php Bootstrap.php文件用于为应用程序初始化组件。

1. 开始学习Zend Framework(安装环境和下载工具)

    不管你的编程能力怎么样,现在博主Tony要和你一起进入Zend Framework(以后简写为ZF)的世界了。你可能是编程的菜鸟,也可能是经验丰富的开发人员。不管你的能力如何,你为什么想学习ZF,现在你在我的博客里,看着这个ZF的文章。现在你就要配置你电脑的环境并且和很多技术打交道,最终使用ZF驱动你的应用程序运行。

    你也许会问,为什么需要做这些事情?其实我刚刚开始学习PHP的时候,龚卫华老师就要我们配置环境,包括ApacheMySQLPHP,当时是弄得焦头烂额啊!回顾我的经历,我可以说,配置环境会让你马上学会一些东西。我们这样想想:如果我给你一箱工具,要求你要建一座房子,你究竟是怎么着手实现这个任务,如果你不知道如何使用在箱子里的每个工具是不是根本不知道如何下手?所以你也需要了解这些用来建造你的ZF应用程序的工具。

    需要的工具:

    如果你的电脑是Windows的,那么我建议你去下载集成环境WAMP服务器(Windows下的Apache+MySQL+PHP的简称吧应该),地址是http://www.wampserver.com/en/#download-wrapper,在这个炫酷的官方网站里面,你可以下载到最新版本的WAMP服务器,安装完成之后,在右下角变成绿色的图标之后就可以访问你的http://localhost了,里面有phpmyadmin可以查看和操作你的服务器,你也可以去下载Navicat for MySQL,这个工具跟phpmyadmin的区别就是它是软件,性能会比网页版的工具好一点并且还有生成E-R模型图等等的高级功能,它值得你拥有!Navicat的下载地址是:http://www.navicat.com/en/download/download.html

    完成了本地服务器的安装搭建之后,你现在需要去下载一个叫做Zend Studio的开发工具,百度百科说:“Zend StudioZend Technologies开发的PHP集成开发环境Integrated Development Environment IDE)。也支持HTMLjs标签,但只对PHP语言提供调试支持。因为是同一个公司的产品,所以提供的Zend Framework方面的支持比其他软件好。Zend Studio 5.5系列后,官方推出利用了Eclipse平台,基于PDTZend Studio for Eclipse 6.0,之后的版本也都构建于EclipseZend Studio是屡获大奖的专业PHP集成开发环境,具备功能强大的专业编辑工具和调试工具,支持PHP语法加亮显示,支持语法自动填充功能,支持书签功能,支持语法自动缩排和代码复制功能,内置一个强大的PHP代码调试工具,支持本地和远程两种调试模式,支持多种高级调试功能。”没错,这个开发工具牛逼得不行,博主我也为之倾倒!我们安装它就是为了搭建一个Zend Framework的程序,因为都是Zend公司的东西嘛,所以比较配套!我建议去下载8.0.0或者8.0.1版本的Zend Studio,因为他们对ZF的支持比较好!

    创建第一个Zend Framework工程:

    打开Zend Studio,以英文版为例:点击File->New->Zend Frameword Project,在Contents中选择工程的路径,我建议将工程建立在wamp服务器下的www目录下你自己创建的一个文件夹下项目的名字自拟,然后选择Finish就行了。

    接下来,你得去Zend的官方网站下载最新的Zend Framework的类库,下载地址是http://framework.zend.com/download/latest,今天的版本是1.11,刚刚好喝上图的Zend Framework Version是一致的。然后将压缩包解压,将主目录下的library中的Zend这一个文件夹拷贝到你的项目目录的library文件夹下面,如下图:

zend-framework目录

这样之后,你就可以在你的浏览器中打开http://localhost/你的项目目录/public,就可以看到Zend Framework的欢迎页面了。这就当做是Zend Framework的第一个Hello World程序吧。