Zend 2.0的框架改动与1比实在是太大了,当然抛开Namespace不说,即使是应用和架构,都有了一部分调整。
Zend实在太庞大了。用来开发项目不一定是首选。以前都是当成类库来用的,毕竟他实现了几乎目前所需要用到的一切功能,甚至GData之类的接口都全了,你还能奢求什么?
要赶时髦?openID和oauth也有,要实用?连pdf库都有,发邮件、本地化、命令行,应有尽有,不是类库是什么?
不过2.0就不太一样。我随便看了一个DB类,和以前的操作都有点不太一样了。或许是一下子没有适应过来那种newZend_Db_TableGateway之类的调用方式吧
手册在这里:http://packages.zendframework.com/docs/latest/manual/en
下载在这里:http://packages.zendframework.com/
还有一个相对比较实用的wiki:http://framework.zend.com/wiki/display/ZFDEV2/Home
可以看看。2.0的架构和代码还是值得学习的。
标签:zend
Yii + Zend_Feed
YII是一个PHP框架。
ZendFramework也是一个PHP框架
在Yii里配置ZF框架,刷刷的就一个RSS阅读器就出来了。
代码很简单,把Zend整合COPY到protected/extensions目录下
在控制器的init方法里加入:
Yii::import("ext.*");
require_once("Zend_Feed_Reader.php");
然后在需要的方法里加入
$feed = Zend_Feed_Reader::import("http://neatstudio.com/rss.php");
这样就创建了一个读的对象了。然后。。。。。
你懂的:
$data = array(
'title' => $feed->getTitle(),
'link' => $feed->getLink(),
'dateModified' => $feed->getDateModified(),
'description' => $feed->getDescription(),
'language' => $feed->getLanguage(),
'entries' => array(),
);
foreach ($feed as $entry) {
$edata = array(
'title' => $entry->getTitle(),
'description' => $entry->getDescription(),
'dateModified' => $entry->getDateModified(),
'authors' => $entry->getAuthors(),
'link' => $entry->getLink(),
'content' => $entry->getContent()
);
$data['entries'][] = $edata;
}
print_r($data);
就这样,一个刚刚的RSS阅读器就出来了。
当然,它没有缓存,没有这没有那的,不过,都解析完了,剩下的功能还会远吗?
what's this?Adobe, Zend合作推Flash和PHP联合开发
看到这个消息的时候,我震惊了,是的,我真的震惊了。
难道说,又将多一款跨平台的IDE?
上菜:
Zend技术和Adobe系统公司今天宣布,推出Flash Builder 4.5 for PHP,它使开发人员能够利用PHP和Flash开发技能,为移动设备,web和桌面平台提供互连网富客户端应用程序。 该产品提供了一个基于ActionScript的Flash客户端开发的IDE: Flash builder4.5,并结合Zend Studio 8的服务器端PHP能力。突出了移动部署能力,这两家厂商表示,应用程序可以提供给谷歌Android,RIM公司黑莓平板操作系统和苹果的iOS系统。 对ios系统,IDE生成本机代码应用程序,而不是运行在苹果的IOS禁止运行的AIR环境(Adobe集成运行环境)的软件。 Android应用同样生成本机代码包。
Zend的首席执行官Andi Gutmans介绍说,“Flash Builder 4.5 for PHP使得??PHP开发人员很容易建立移动应用程序,也使开发人员很容易构建服务器端的移动应用程序。我们都有同样的想法“。应用程序本身可以在W??indows或Mac客户端上建立。
“现在开发人员能够使用一种工具,一个框架和一个通用代码库来??建立应用程序,部署在Android,黑莓和IOS上运行,”Adobe公司产品经理Dave Gruber说。 Flash Builder 4.5 for PHP将在5月11日交付,高级版包含有网络跟踪、内存和性能分析,售价为799美元。标准版没有这些功能将花费399美元。 Adobe和Zend同时宣布正在进行Adobe Creative Suite 5.5产品线的部署。
原文连接
http://www.itworld.com/development/154477/adobe-zend-combine-flash-and-php-development
译文连接
http://www.chinashare.net/?/3216-1-0-1-1.html
欢迎访问中国开发论坛(http://www.chinashare.net),论坛提供delphi/java/.net/php/c/python等开发语言交流平台,欢迎大家前来灌水.
--EOF--
仔细想想,原来也就是eclipse再装个插件。难道ZEND又将PDT之类的插件剥出来了?提供给adobe使用了?哎,文中加深颜色的部分让我激动了一下,我以为是基于FLASH开发的,结果还是Eclipse。。。。这TMD的都是谁写的文章 。。忽悠,大忽悠。。。我还就想了,flash builder什么时候基于actionscript了。。
原文:
The product provides an IDE combining Adobe's Flash Builder 4.5, for ActionScript-based Flash client development, and Zend Studio 8, for server-side PHP capabilities.
大哥,这是翻译成你那句话的吗。。。。。。
杂谈:Zend Studio 惊爆严重安全漏洞,系国内黑客首先发现
我是在cnbeta上看到这个新闻的,不过看到这个新闻后我也有疑问,这真的算是BUG吗?还是。。。要知道注释这个东西,本来就是允许你写上html代码让你在生成DOC的时候可以以特定的格式进行输出
不过,文中所说的内容,想来应该确实算是漏洞,但我本身都是在使用zend了,还有什么不可以使用系统变量或者权限呢?随便说说。。
只是看到这个的时候,我不知道phpdoc会怎么样,他会有同样的漏洞吗?他根据图片中的注释,会生成弹出计算器的doc文档吗??
新闻如下:
著名安全从业人员Saiy于2010年7月10日在安全网站80vul.com发布了Zend Studio的安全漏洞。 通过这个漏洞,可以在操作系统中执行任意命令。 在Zend Studio 6.0以上版本中,如果开发者开启了自动提示的功能,那么在一份存在问题的工程文件里(可能是别有用心者提供的),开发者就很可能触发这个漏洞,以执行他 人指定的代码。 文章中进行了案例演示。代码中定义了一个名为A的函数,那么只要在编辑区域输入A即触发此函数,此函数启动了 Windows系统中自带的计算器软件,那么同理,它可以启动任何一个软件,也可以执行任意其他的命令…… 目前Zend公司还没有对此安全漏洞作出任何反应。 建议相关开发者关闭自动提示的功能。

原文地址(英文): http://80vul.com/Zend%20studio/Zend%20studio%20location%20Cross.htm
Zend Studio 7.2 Released
Zend Studio 7.2 is Here!
PHP Troubleshooting Made Easy.
Save time and troubleshooting hassles with a better, faster way to diagnose and resolve PHP issues. Zend Studio's new integrated viewer opens code trace files captured by Zend Server in your production environment, so you can quickly pinpoint functional errors or performance slowdowns.
Why is this a big deal? Zend Studio 7.2 eliminates the tedious process of trying to reproduce the production environment and recreate problems, a challenge that is compounded when you can't access production servers.
说实话,我不是特别喜欢它,因为他太大了,但是他又是php集成的最好的一个IDE,而且可以很细的指定任意一个文件的编码,使得你在有多编码的环境下作业时,不用过多烦恼,其他的IDE都只能指定项目编码不能指定单独文件的编码。这个,我真的很喜欢。
PHP的debug功能,我就一直没有使用成功过,phped的,netbeans的,包括这个zde的,我就不多做解释了。好象zendstudio.net上面有教你怎么配置,反正我是一次没有成功过。郁闷,可能是人品不好?
【笔记】UBUNTU下安装zendoptimizer
我用的vps是rashost的,装的是64位的ubuntu,9.10哦,最新版的。朋友在上面装个程序,结果发现无法运行。才想起来还没有安装ZendOptimizer。
找了一下ubuntu下如何安装的,却又搜索到Rashost的官方介绍。。。打开看了一下,没排过版。汗死。
原文内容如下:
Zend Optimizer是由PHP核心引擎“Zend”创建者Zend技术公司所开的免费PHP优化软件。据Zend公司透露使用这个软件某些情况下至少可以提高性能30%以上。今天我在安装了Ubuntu Hardy的VPS上配置了最新的ZendOp。过程记录如下:按照正常流程,在官方网站下载Zend Optimizer是需要注册用户登录之后才能下载的。下载一次后发现其实匿名用户也能下载,用下面这个URL即可: http://downloads.zend.com/optimizer/3.3.3/ZendOptimizer-3.3.3-linux-glib... 在安装Zend Optimizer之前需要先把apache,php安装好: apt-get install libapache2-mod-php 然后在/var/www/下创建index.php: echo "" > /var/www/index.php 然后用浏览器访问VPS,在首页里面搜索不到Zend Optimizer的字样.安装完成后应该能够搜索到Zend Optimizer才对。 tar zxf ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz cd ZendOptimizer-3.3.3-linux-glibc23-i386 ./install.sh 然后安装程序会询问几个路径,一个个回答即可完成安装。 安装完成,重启apache,然后再访问首页,应该能搜索到Zend Optimizer的字样,说明安装成功了,接下来就可以开始测试性能了。
不过,由于我装的是64位的,就没有办法这样安装了。所以我去官方下载了64位的ZendOptimizer。并解压到服务器上。却发现,根本没有上文说的install.sh
打开readme看了一下,才发现,原来在linux下面,居然只需要加一行代码就行了
[Zend]
zend_extension = "/xxx/xxx/ZendOptimizer.so"
当然,这或许是3.3.9独有的安装方式,反正而不需象windows那样先设置 zend_extenstion_ts,再设置zend_extension_manager.optimizer_ts了
添加了这一行后,运行/etc/init.d/apache2 restart ,再新建一个phpinfo的文件,发现里面已经有了zend optimizer的信息了。
最后提供一下64位的zendoptimizer的下载地址:http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz
zend framdwork quick start
最近重操旧业,看起了zend framework,如今的1.9x与以前不一样了。所以,把ZF的quick start逐步翻译一下,权当复习和温故了。
原文地址:http://framework.zend.com/docs/quickstart/create-a-model-and-database-table
ZF & MVC Introduction
Zend Framework
Zend Framework is an open source, object oriented web application framework for PHP 5. ZF is often called a 'component library', because it has many loosely coupled components that you can use more or less independently. But Zend Framework also provides an advanced Model-View-Controller (MVC) implementation that can be used to establish a basic structure for your ZF applications. A full list of Zend Framework components along with short descriptions may be found in the components overview. This QuickStart will introduce you to some of ZF's most commonly used components, including Zend_Controller, Zend_Layout, Zend_Config, Zend_Db, Zend_Db_Table, Zend_Registry, along with a few view helpers.
Using these components, we will build a simple database-driven guest book application within minutes. The complete source code for this application is available in the following archives:
zend framework 介绍
ZF是一个开源且面向对象的,支持PHP5的WEB应用框架。ZF通常被叫做“组件库”,因为他拥有很多松耦合的组件,因此你可以在应用中或多或少的独立使用它们。但ZF更多的是为你的ZF应用提供了一个高级的MVC架构【??翻译不来了】所有的ZF组件列表,你可以从 组件预览 页进行查看。而这个QuickStart会给你的ZF最通常使用的组件进行介绍,如Zend_Controller,Zend_layout,Zend_Config,Zend_Db,Zend_Db_table,Zend_Registry,以及一些视图助手【这个应该是讲View的,但不知道怎么翻译好。现在终于明白那些翻译书的朋友们的痛苦之处了。明知道啥意思就是说不出口,还是词汇量少啊】
Model-View-Controller
So what exactly is this MVC pattern everyone keeps talking about, and why should you care? MVC is much more than just a three-letter acronym (TLA) that you can whip out anytime you want to sound smart; it has become something of a standard in the design of modern web applications. And for good reason. Most web application code falls under one of the following three categories: presentation, business logic, and data access. The MVC pattern models this separation of concerns well. The end result is that your presentation code can be consolidated in one part of your application with your business logic in another and your data access code in yet another. Many developers have found this well-defined separation indispensable for keeping their code organized, especially when more than one developer is working on the same application.
MVC
那么我们就来讲讲什么是MVC了以及你对于MVC来说,最关心的是什么。MVC虽然只是三个单词的开始每个字母组成的新词,然而他已经成为了网页程序的标准设计模式了。而且,有充分的理由证明,大多数的网络程序代码都被归于以下三种分类之一:表达方式【?】,商业逻辑 和数据访问层。MVC模式则能够使你们将关注点进行分离。最终你的表示代码只占你的商业逻辑的一小部分,同样数据访问层也是这样。大多数开发人员发觉这能够使得他们保持代码分离并且条理清晰,尤其是在同一项目中有多名开发人员时。
翻译的很迷惘。。。
其实上面的大意无非就是MVC结构使得程序员可以将更多的精力放在业务逻辑上,而不是将大量的精力浪费在表现层和数据访问上。
不过,虽然翻译的很乱,但我还是多少又理解了一点这方面的知识。MVC如今已经被很多人所接受,很多招聘上也都写着,熟悉MVC模式开发。其实,如果真正项目已经按着MVC模式开发的话,那么招聘进去的人,又有多少是同时对于这三个方面进行开发的呢?
Model - View - Controller,在ZF框架中也是很分离的。看框架的 application目录就很清楚了。除了module和config目录外,剩下的就是:controllers,models和views目录了。。由此可见,基本上也分得比较清楚了
ZF 1.9.4 出来了
ZendFramework的更新速度不可谓不快,记得5月份的时候它还是1.7.8左右,如今 刚过去5个月,却已经是1.9.4了。
虽然说这几个月,发生了很多事,比如PHP5.3的推出、ZDE 7.1测试版推出等,ZF的速度也太快了吧?
changelog:http://framework.zend.com/changelog/1.9.4
quickstart:http://framework.zend.com/docs/quickstart
Zend Studio 7.0.0 正式发布
一个屡获大奖的专业 PHP 集成开发环境,具备功能强大的专业编辑工具和调试工具,支持PHP语法加亮显示,支持语法自动填充功能,支持书签功能,支持语法自动缩排和代码复制功能,内置一个强大的PHP代码调试工具,支持本地和远程两种调试模式,支持多种高级调试功能。
New! in Studio V7.0.0:
* Support for PHP 5.3
* Zend Framework integration
* Enhanced source code editing
* Zend Server integration
* Performance enhancements
下载地址:Zend Studio 7.0.0
using zf and smarty
使用zend framework开发时,可以采用第三方模版,比如smarty,在网上找了很多资料,一般来说是两种
1、扩展view
2、使用Zend_Registry,在初始化的时候加载smarty,然后在输出的时候使用Zend_Registry::get('smarty')->display();
使用第二种方式的话,我当然是没有什么说的了。我这里说的是使用第一种方案。
在第一种方案中,官方有例子,页面地址为:http://framework.zend.com/manual/en/zend.view.scripts.html,写上一个类,调用Zend_View_Interface,写上相同的函数就可以了。。
官方有源码,我这里就不贴了。我把官方的例子写一下:
//Example 1. In initView() of initializer.
$view = new Zend_View_Smarty('/path/to/templates');
$viewRenderer =
new Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer'); //使用此例子时,请将new去掉,静态方法不需要new
$viewRenderer->setView($view)
->setViewBasePathSpec($view->_smarty->template_dir)
->setViewScriptPathSpec(':controller/:action.:suffix')
->setViewScriptPathNoControllerSpec(':action.:suffix')
->setViewSuffix('tpl');
//Example 2. Usage in action controller remains the same...
class FooController extends Zend_Controller_Action
{
public function barAction()
{
$this->view->book = 'Zend PHP 5 Certification Study Guide';
$this->view->author = 'Davey Shafik and Ben Ramsey'
}
}
//Example 3. Initializing view in action controller
class FooController extends Zend_Controller_Action
{
public function init()
{
$this->view = new Zend_View_Smarty('/path/to/templates');
$viewRenderer = $this->_helper->getHelper('viewRenderer');
$viewRenderer->setView($this->view)
->setViewBasePathSpec($view->_smarty->template_dir)
->setViewScriptPathSpec(':controller/:action.:suffix')
->setViewScriptPathNoControllerSpec(':action.:suffix')
->setViewSuffix('tpl');
}
以上是官方的example。不过,如果按第一个例子测试,是会出错的。。。
请看第4行。。。静态方法居然用了new。(应该是粗心吧。不过我昨天是直接复制的,死活报错,也没有仔细看,丢人啊)写这篇 文章,主要也就是提醒一下,这个例子有点问题。
顺便说一下,由于官方的例子里,是把$_smarty写成了protected,那么,其实在外面是不能够被直接引用的。要么写一个__get方法,要么,把属性改为public吧
不过,在使用smarty后,你会发现,你原来的layout功能不能完全使用了,为什么呢?因为,在原来的layout里面,代码都是类似于这样:
<?php
$this->layout()->title;
?>
大致是这样的代码,这个,可不能用在smarty中。虽然在smarty中也可以用标签来调用PHP代码,但这毕竟不是一个好办法。
不过还好,又有牛人写了一个很牛叉的例子。LOOK:http://anders.tyckr.com/2008/03/12/implementing-zend-layout-and-smarty-using-zend-framework-mvc/,不过这个例子我还没有全部看完,先贴上来。以后慢慢看,应该会用在项目中吧?
不然,我就用不了layout了,除非我放弃这个东西。。哈哈
