标签归档:zend

最新版本 ZendFramework-1.11.1的功能分析[转]

最新版本是ZendFramework-1.11,下载后重新对里面的功能做了一些简单的分析,希望和大家一起学习进步.

1)tests文件夹里面对我们怎样使用zend framework内核提供了很好的例子,也给出了如何测试zf的方法
2)demos里面提供了实际的功能例子,对我们的实际开发有很好的参考作用
3)dojo是非常适合放到后台管理使用,但功能太强大,学习起来比较困难,对项目的按时完成有一定的风险
4)zf的zendx中提供了jquery的使用,这应该适合zf做前端的项目.
5)ZendX_Console_Process_Unix提供了并行工作的一种方法
6)zend库的分析:
Acl:为权限管理提供轻量并灵活的访问控制列表 (ACL,access control list) 的实现
Amf:它提供了一个回调网关服务器和任意播放器发送处理请求执行从Flash到服务器,这些请求映射到对象和类方法
Application:提供了一个可重用资源的引导,通用和模块化的引导类和依赖检查。同时默认负责设置 PHP的 环境变量和自动加载功能。
Auth:为认证(authentication)和一些通用用例情景的具体认证适配器提供了一个API
Barcode:提供了一个通用的方法来生成条形码。
Cache:提供了一个缓存任何数据的一般方法
Captcha:它用来询问响应(challenge-response)来确保每个提交的信息是来自人而不是机器的自动处理。 一般地,captcha 用于用户不需要认证的表单提交,但你想防止垃圾信息的提交。
Cloud:云服务的API使用
CodeGenerator:一个面向对象产生任意代码的接口,在做tools功能时可能会动到
Config:被设计在应用程序中简化访问和使用配置数据
Console:帮助命令行程序解析它们的选项和参数
Controller:是Zend Framework的MVC体系的核心部份,MVC指» Model-View-Controller,是一个用于分离应用逻辑和表现逻辑的设计模式。Zend_Controller_Front实现了» Front Controller设计模式,所有的请求都通过front controller(前端控制器)并分发(dispatch)到不同的控制器来处理,分发的过程基于请求的URL。
Crypt:各种加密的算法.
Currency:是Zend_Framework I18n 核心的一部分。它处理所有关于货币、钱的表示和格式。它也提供另外的信息方法,包括货币的本地化信息、关于哪个货币在哪个地区使用等等。
Date:件提供了一个详细而简单的 API 用来处理日期和时间。
Db:各种数据库操作的方法.
Zend_Debug:zf的调试
Dojo:javascript的一种,适合企业级系统后台使用
Dom:提供了对 DOM 文档和结构进行操作的工具
Zend_Exception:抛出的所有异常都必须是 Zend_Exception 的子类的对象。
Feed:提供了处理的 RSS 和 Atom Feed的功能。
File:对文件的各种操作方法
Filter:提供了一系列普遍使用的数据过滤器(data filter),同时也提供了一个简单的过滤器链机制,使多个过滤器以用户定义的顺序对一个单一的数据进行过滤。
Form:在 web 程序中简化表单的创建和处理
Gdata:谷歌数据 API的编程接口,s提供一些服务谷歌的在线。
Http:HTTP各种操作方法
InfoCard:实现依赖方卡支持信息。信息卡用于身份管理互联网上的网页和网站的用户身份验证。
Json:提供一个方便的方式来串联(native的)PHP(的变量)和JSON,并将JSON(对象)解码到PHP中。
Layout:实现经典的两步视图模型,允许开发者把应用程序内容包装在另一个视图,通常是站点的模板。
Ldap:LDAP的操作.LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。LDAP目录中可以存储各种类型的数据:电子邮件地址、邮件路由信息、人力资源数据、公用密匙、联系人列表,等等。
Loader:帮助动态加载文件.
Locale:本地化功能,主要解决不同地区的语言,日期,时间,货币,名称,符号等差异.
Log:是一个通用日志组件. 它支持多个日志后端,格式化发送给日志的消息,过滤被纪录的消息.
Mail:提供了通用化的功能来撰写和发送文本以及兼容 MIME 标准的含有多个段的邮件消息。
Markup:组件提供了一个可扩展的方式和纺织解析文本语言,如BBCode和渲染轻量级标记。
Measure:各种测量单位的处理方法.
Memory:用于在一个受限制的内存环境下管理数据
Mime:用来处理多段MIME消息的辅助类,在Zend_Mail和Zend_Mime_Message中使用了它, 也可在需要MIME支持的应用程序中使用
Navigation:导航功能,主要用在导航,标签,标题等功能.
Oauth:许你使用密码访问被其他你注册过授权网站
OpenId:它提供了一个简单 的API 建立支持OpenID的网站和标识提供者,使用支持OpenID的网站,用户不需要记住每个网站的传统认证令牌的用户名和密码等。 所有支持OpenID的网站接受单一的OpenID身份。
Paginator:一个灵活的组件的集合为用户的数据和分页呈现这些数据.主要是实现分页的功能
Pdf:完全用 PHP 5 编写的 PDF (Portable Document Format) 处理引擎。它可加载存在的文档,生成新的、修改和保存修改后的文档。
ProgressBar:进度条的各种操作方法
Queue:任务队列的各种操作方法,企业级的功能.
Reflection:类的反射.属于PHP中高级的功能.
Rest:REST Web Services,REST的API,rest,REST(Representational State Transfer表述性状态转移),(http://baike.baidu.com/view/1077487.htm)
Zend_Registry:对象注册表(或称对象仓库)是一个用于在整个应用空间(application space)内存储对象和值的容器。通过把对象存储在其中,我们可以在整个项目的任何地方使用同一个对象。这种机制相当于一种全局存储。
Zend_Search_Lucene:一个完全由 PHP 5 编写的通用文本搜索引擎,由于其将索引保存在文件系统中而不需要数据库支持,因此它几乎可以为任何由 PHP 驱动的网站增加搜索能力。
Serializer:数据的序列化操作.
Server:为各种各样的服务器类提供功能,包括 Zend_XmlRpc_Server、 Zend_Rest_Server、Zend_Json_Server 和 Zend_Soap_Wsdl。Zend_Server_Interface 提供了一个模仿 PHP 5 的 SoapServer 类的接口;为了提供标准的服务器 API,所有的服务器类应该实现这个接口。
Service:主要是请求其它系统提供的API,例如Amazon,Ebay,Flickr,Yahoo,WindowsAzure等提供的API,在这里都有好的使用例子,在web2的今天,这功能很实用.
Session:Session的功能,它自己在类里面对php自带的session进行了各种处理,目的是提高安全性.
Soap:SOAP:简单对象访问协议(SOAP:Simple Object Access Protocol),实现各种的API功能.
Tag:标签的各种操作
Test:对 Zend Framework 应用进行单元测试的便利工具
Text:使开发人员能够创建一个ASCII艺术的文本和表格.http://baike.baidu.com/view/555708.html
TimeSync:同步网络时间
Tool:生成zend framework实际项目的工具
Translate:为多语言应用程序提供的一个解决方案.
Uri:是一个辅助于操作和验证» 统一资源标识符 (URIs)的组件,主要是检查url的有效性.
Validate:提供一组通用的校验器
Zend_Version:管理zend framework自身版本
View:用来在MVC模式中处理View(视图),也就是说它用来使视图部份的代码与Model及controller部分分离
这个功能出来后,smarty就慢慢的在zf中退出了.
Wildfire:PHP 和 Wildfire沟通的功能
Wildfire是一款集CAD/CAM/CAE功能一体化的综合性三维软件,在目前的三维造型软件领域中占有着重要地位,并作为当今世界机械CAD/CAE/CAM领域的新标准而得到业界的认可和推广,是现今最成功的CAD/CAM软件之一。
XmlRpc:操作XML-RPC的各种方法.  XML-RPC的全称是XML Remote Procedure Call,即XML远程方法调用。

总的概括:
以上的组件可以分为下面几大类:
MVC的核心功能组件
项目管理的组件
最常用的组件
PHP高级的组件
企业级的组件
特定行业的组件
WEB2的组件
云计算的使用

明显定位在一个企业级系统的框架,灵活的定制功能.在速度和功能上做平衡.
(当然也可以开发前端网站.但一定要加上缓存和做合理的架构来提高速度)

可以说zend framework是使PHP进入企业级项目的最好框架.

fedora6+apache2+mysql5+php5+GD+Zend+phpMyAdmin安装(转)

在php的论坛上一直存在着一个现象,虽说LAMP的搭建,很多人都会。但一般关于LAMP的搭建的文章多半会置顶,被视为精华贴,而且会被各个论坛转来转去。可见不会的也不少呀!
玩php也一年多了,linu也早在一年前就接触了,但后来转到Windows上开发,lamp,也就生疏很多了。
网上各种各样的amp的集成版本多的去了,抓来就用,而且方便,像Appserv. xampp,不错对于初学者他们已经够用了,但往后像添加什么模块,增加一些高级特性,就配置起来就麻烦了,鉴于这些原因,就又转到LAMP平台了。

前两天在 fedora6上自己搭建了LAMP + Zend +phpMyAdmin,虽说网上文档挺多的,在安装的时候还是出了很多意想不到的问题。在网上找资料的时候,碰到很多网友碰到同类问题。现在费劲周折终 于搞定了。现在整理出来,希望对后来者有所帮助,闲话少说,开始吧!
建议在安装前卸载redhat或dedora自带的apache ,php, mysql,否则安装的是后会出问题(主要针对基于redhat的linux)。
LAMP 安装说明
php5.0 要求libxml2-2.6.0以上更高的版本,这一解析器提供php5.0 新的XML API
===============================================================================================================================================
安装 libxml2
tar -zxvf libxml2-2.6.19.tar.gz
cd libxml2-2.6.19
./configure --prefix=/usr/local/libxml2
make
make install
这一步结束时,libxml2被安装在/usr/local/下。
================================================================================================================================================
安装 zlib
tar -zxvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure --prefix=/usr/local/zlib
make
make install
这一步结束时,zlib被安装在/usr/local/下。
===============================================================================================================================================
安装 libpng
tar -zxvf libpng-1.2.10.tar.gz
cd libpng-1.2.10
cp scripts/makefile.linux  makefile
make
make install
注意:这里的makefile不是用./configure 生成的,而是直接从script/目录里拷一个
这一步结束时,zlib被安装在/usr/local/lib下
=============================================================================================================================================
安装 freetype
tar -zxvf freetype-2.2.1.tar.gz
cd freetype-2.2.1
./configure --prefix=/usr/local/freetype
make
make install
这一步结束时,freetype被安装在/usr/local/lib下
============================================================================================================================================

安装 jpeg6
建立目录
mkdir /usr/local/jpeg6
mkdir /usr/local/jpeg6/bin
mkdir /usr/local/jpeg6/lib
mkdir /usr/local/jpeg6/include
mkdir /usr/local/jpeg6/man
mkdir /usr/local/jpeg6/man/man1
tar -zxvf jpegsrc.v6b.tar.gz
cd jpeg-6b
./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
make
make install
注意:这里./configure一定要带--enable-shared参数,不然,不会生成共享库
=============================================================================================================================================
安装 gd
tar -zxvf gd-2.0.33.tar.gz
cd gd-2.0.33
./configure --prefix=/usr/local/gd --with-png=/usr/local/lib --with-freetype=/usr/local/freetype --with-jpeg=/usr/local/jpeg6
make && make install
==============================================================================================================================================
安装 curl 支持ftp库函数
tar -zxvf curl-7.15.0.tar.gz
cd curl-7.15.0
./configure --prefix=/usr/local/curl
make && make install
===============================================================================================================================================
安装 Apache2
以Apache使用php有两种方式:作为动态模块,其在运行状态时可以载入到web服务器,
或者作为静态模块,其可直接编译到web服务器代码中。对于文本,我们着重于第一种方式。
为了能让Apache2.0模块使php动态载入,Apache服务器必须以动态共享对象(DSO,Dynamic Shared Object)编译。
可以通过传递 --enable-so 参数到 Apache 2
tar -jxvf httpd-2.2.2.tar.bz2
cd httpd-2.2.2
./configure --prefix=/usr/local/apache2 --enable-so make && make install
//切记要支持Zend Optimizer不可加 --with-mpm=worker选项
这一过程将会设置,编译,以及将服务器安装到/usr/local/下。
启动apache守护进程:
/usr/local/apache2/bin/apachectl start (开启 start  关闭 stop  重启 restart)
打开浏览器,输入http://localhost 就能看到一个apache的欢迎页面了,这表示我们已经成功的安装了apache2 。
==============================================================================================================================================
安装 Mysql5
groupadd mysql
useradd -g mysql mysql

tar -zxvf mysql-5.0.17.tar.gz
cd mysql-5.0.17
./configure --prefix=/usr/local/mysql --enable-assembler  --with-mysqld-ldflags=-all-static --with-extra-charsets=all
--with-big-tables --with-charset=utf8 --with-collation=utf8_unicode_ci
make
make install
cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
cd /usr/local/mysql/
bin/mysql_install_db --user=mysql
chown -R root .
chown -R mysql var
chgrp -R mysql .
启动服务:
/usr/local/mysql/share/mysql/mysql.server start  (启动start 关闭stop  重启restart)
键入mysql回车就可已看到欢迎界面。说明我们已成功安装了mysql
说明:
--with-extra-charsets=all 对多语言支持
--with-unix-socket-path=/usr/local/mysql/var/mysql.sock 这个是指定mysql服务启动后。联机套接字文件所处的位置和文件名,也就是说,如果mysql服务器成功启动后,就能在/usr/local /mysql/var.采用这一选项,通常会出错,建议不配置用默认的。默认会在/tmp/mysql.sock.
目录中看到mysql.sock文件。
==================================================================================
安装 php5
tar -zxvf php-5.1.6.tar.gz
cd php-5.1.6
./configure --prefix=/usr/local/php5             --with-apxs2=/usr/local/apache2/bin/apxs
--with-config-file-path=/etc         --with-libxml-dir=/usr/local/libxml2
--with-zlib-dir=/usr/local/zlib      --with-curl=/usr/local/curl
--with-gd=/usr/local/gd              --with-jpeg-dir=/usr/local/jpeg6
--with-png-dir=/usr/local/lib        --with-freetype-dir=/usr/local/freetype
--with-mysql=/usr/local/mysql        --with-mysqli=/usr/local/mysql/bin/mysql_config
--with-openssl       --enable-gd-native-ttf      --enable-mbstring       --enable-ftp
--enable-bcmath      --enable-sockets            --enable-zip            --enable-soap
--enable-calendar      //切记要支持Zend Optimizer不可加 --enable-debug选项
make
make install
cp php.ini-dist /etc/php.ini
=============================================
整合apache2和php5
apache 配置文件及目录是:
/usr/local/apache2/conf/httpd.conf
apache 默认存放主页的位置是:
/usr/local/apache2/htdocs
以下是配置文件里面的信息:(有的地方要做修改)
ServerRoot "/usr/local/apache2"
这是指定apache程序所在的目录,比如日志文件、配置文件等目录。
DocumentRoot "/usr/local/apache2/htdocs"
这个是存放网页的目录
<Directory "/usr/local/apache2/htdocs">
这一句应该和DocumentRoot的目录保持一致。
找到 DirectoryIndex index.html
改为 DirectoryIndex index.html index.html.var index.htm index.php
找到 AddType application/x-gzip .gz .tgz
加        AddType application/x-httpd-php .php (注意空格)
AddType application/x-httpd-php-source .phps
添加 AddDefaultCharset utf8 使apache默认支持utf8字符集
保存配置文件就重启apache 的守护进程。
/usr/local/apache2/bin/apachectl restart

注意:
每次更改配置文件。要重启服务。
对存放网页的目录执行:命令chmod 755 目录名 或者 chmod -R 755 目录名

编辑php.ini文件,找到
;default_charset="iso-8859-1"
增加一行:default_charset="utf8"

以上步骤都执行完后。在/usr/local/apache2/htdocs/里编辑文件进行测试。
phpinfo.php
里面的内容:
<?php
phpinfo();
?>
在浏览器地址栏中输入:
http://localhost/phpinfo.php
出现php说明页面说明安装成功。
安装过程相当简单,网上很多这种文档,整理的也很详细,我就不多废话了。就具体就在fedora6下碰到的问题说明一下: 接下: ===========================================================================================
安装时的问题及解决方法

安装php5的过程中会自动在/usr/local/apache2/conf/httpd.conf里添加:
LoadModule php5_module modules/libphp5.so
重新启动apache报如下错误:
httpd: Syntax error on line 53 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied
解决办法:
chcon /usr/local/apache/modules/libphp5.so -t shlib_t
原因是Linux有一个SELinux保护模式引起的。
关闭SELINUX的方法:
vi /etc/selinux/config 将SELINUX=enforcing 改成SELINUX=disabled
保存,重起电脑即可.
FC5 中的SELinux 代表了用户,程序以及进程间相互交流的主要变化。

=============================================
安装phpMyAdmin2.8.1
unzip  phpMyAdmin2.8.1.zip
cp  -r   phpMyAdmin2.8.1    /usr/local/apache2/htdocs
cd /usr/local/apache2/htdocs/phpMyAdmin2.8.1/libraries
cp   config.default.php   ../config.inc.php
gedit config.inc.php
找到$cfg['Servers'][$i]['auth_type']     = 'config';    // Authentication method (config, http or cookie based)?一行(大概在71行)将值改为http 或 cookie,随自己喜欢
==================================================================================
安装Zend optimizer3.2.8
这可能是最简单也是最容易出问题的地方(我在此吃尽苦头)
tar -zxvf ZendOptimizer-3.2.8-linux-glibc21-i386.tar.gz
cd    ZendOptimizer-3.2.8-linux-glibc21-i386
./install
安装完后重启apache,在phpinfo.php的欢迎页面第二个域你会看到:
---------------------------------------------------------------------------------------------------------------------------------------------------
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
with Zend Extension Manager v1.2.0, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.2.8, Copyright (c) 1998-2007, by Zend Technologies
Zend logo

执行 /usr/local/php5/bin/php -v  应该看到:
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
with Zend Extension Manager v1.2.0, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.2.8, Copyright (c) 1998-2007, by Zend Technologies

否则就是安张出问题了。可能是编译apache画蛇添足添加了--with-mpm=worker 没有用默认的prefork模块
另一中可能就是编译php是加入了--enable-debug
zend optimizer 需要apache(perfork only)     php(no debug  Mod)这些在Zend optimizer User`Gurde上有说明需特别注意了
over