如何提高Zend框架的学习速度?

13

简介: 我已经使用PHP超过8年,但从未使用过框架,只编写脚本和插件。 我大多数时候使用的是代码生成器(如CodeCharge Studio)或Intranet应用程序的自定义代码。 由于我熟悉设计模式,Zend框架对我来说不太难学。

开始学习ZF:我已阅读了快速入门手册,并想知道什么可以帮助我快速掌握基本的Zend Web应用程序开发。据我所知,有些 重复性任务 需要花费很多时间。

问题: 例如,几乎每个我开发的网站都必须有用户注册过程,我不想重新发明轮子并花费一周的时间来创建登录/配置文件表单。

1)作为Zend开发人员,你们是否使用一些自己编写的原型来快速创建基本网站?

2)或者已经有一些可供构建的网站源代码吗?

3)是否有一些应用程序生成器或用于页面中的网格、记录等的小工具?

P.S.我停止学习EJB已经超过6年了,因为没有人可以问类似的问题。TIA!

9个回答

20

1) ZF开发者是否使用某些原型来快速推出基本网站?

Zend Framework在这个领域的组件还有点年轻,但是有一个非官方的PEAR频道。截至2009年3月,思想领袖们似乎仍在辩论最佳的组织方式。我个人对面向领域的倡议最感兴趣,因为它们将是最强大的。

2) 是否有一些可供构建网站的源代码可用?

现在最好的资源是ZF思想领袖的博客、网站和存储库。以下是一些链接,可供您开始使用:

3)是否有一些应用程序生成器或小工具,用于带有网格、记录等的页面?

Zend_Tool中的脚手架生成器将在ZF v1.8中发布。它目前处于孵化器阶段,我上周尝试了它,它可以工作,但在其当前状态下生成的组件不多。

上周,我终于花时间收集了源代码(其中包括Stack Overflow ZF问题反馈)。我把它们放在Google Reader的Zend Framework标签下,并将逐步完善反馈来源。如果您更愿意自己管理它们,在此处是当前的OPML文件。

祝好运!-Matt

<?xml version="1.0" encoding="UTF-8"?>
<opml version="1.0">
    <head>
        <title>expertseries | Zend Framework | Google Reader</title>
    </head>
    <body>
        <outline title="Zend Framework" text="Zend Framework">
            <outline text="A.J. Brown" title="A.J. Brown" type="rss"
                xmlUrl="http://feeds.feedburner.com/ajbrowns_blog" htmlUrl="http://ajbrown.org/blog"/>
            <outline text="Armando Padilla" title="Armando Padilla"
                type="rss" xmlUrl="http://www.armando.ws/?feed=rss2" htmlUrl="http://www.armando.ws"/>
            <outline text="Benjamin Eberlei" title="Benjamin Eberlei"
                type="rss"
                xmlUrl="http://www.whitewashing.de/about/rss/all" htmlUrl="http://www.whitewashing.de"/>
            <outline text="Bradley Holt" title="Bradley Holt" type="rss"
                xmlUrl="http://bradley-holt.blogspot.com/feeds/posts/default" htmlUrl="http://bradley-holt.blogspot.com/"/>
            <outline text="Cal Evans" title="Cal Evans" type="rss"
                xmlUrl="http://blog.calevans.com/feed/" htmlUrl="http://blog.calevans.com"/>
            <outline text="Chris Hope" title="Chris Hope" type="rss"
                xmlUrl="http://feedproxy.google.com/ElectricToolboxBlog" htmlUrl="http://www.electrictoolbox.com"/>
            <outline text="Codecaine.co.za" title="Codecaine.co.za"
                type="rss" xmlUrl="http://www.codecaine.co.za/rss/" htmlUrl="http://www.codecaine.co.za/"/>
            <outline text="Douglas Brown" title="Douglas Brown"
                type="rss" xmlUrl="http://www.brownphp.com/feed/" htmlUrl="http://www.brownphp.com"/>
            <outline text="Federico Cargnelutti"
                title="Federico Cargnelutti" type="rss"
                xmlUrl="http://blog.fedecarg.com/feed/" htmlUrl="http://blog.fedecarg.com"/>
            <outline text="Jani Hartikainen" title="Jani Hartikainen"
                type="rss" xmlUrl="http://codeutopia.net/blog/feed/" htmlUrl="http://codeutopia.net/blog"/>
            <outline text="Juozas Kaziukėnas" title="Juozas Kaziukėnas"
                type="rss" xmlUrl="http://dev.juokaz.com/feed/rdf" htmlUrl="http://dev.juokaz.com"/>
            <outline text="Matthew Turland" title="Matthew Turland"
                type="rss" xmlUrl="http://ishouldbecoding.com/atom/1" htmlUrl="http://ishouldbecoding.com/"/>
            <outline text="Matthew Weier O'Phinney"
                title="Matthew Weier O'Phinney" type="rss"
                xmlUrl="http://weierophinney.net/matthew/feeds/index.rss2" htmlUrl="http://weierophinney.net/matthew/"/>
            <outline text="Michelangelo van Dam"
                title="Michelangelo van Dam" type="rss"
                xmlUrl="http://www.dragonbe.com/feeds/posts/default" htmlUrl="http://www.dragonbe.com/"/>
            <outline text="Mike Rötgers" title="Mike Rötgers" type="rss"
                xmlUrl="http://www.roetgers.org/feed/" htmlUrl="http://www.roetgers.org"/>
            <outline text="Nick Lo" title="Nick Lo" type="rss"
                xmlUrl="http://www.ingredients.com.au/nick/feed/" htmlUrl="http://www.ingredients.com.au/nick"/>
            <outline text="Pádraic Brady" title="Pádraic Brady"
                type="rss"
                xmlUrl="http://blog.astrumfutura.com/feeds/index.rss2" htmlUrl="http://blog.astrumfutura.com/"/>
            <outline text="Raphael Stolt" title="Raphael Stolt"
                type="rss"
                xmlUrl="http://raphaelstolt.blogspot.com/feeds/posts/default" htmlUrl="http://raphaelstolt.blogspot.com/"/>
            <outline text="Rob Allen" title="Rob Allen" type="rss"
                xmlUrl="http://akrabat.com/feed/" htmlUrl="http://akrabat.com"/>
            <outline text="Robert Basic" title="Robert Basic" type="rss"
                xmlUrl="http://feeds2.feedburner.com/robertbasic/blog/" htmlUrl="http://robertbasic.com/blog"/>
            <outline text="Stack Overflow ZF" title="Stack Overflow ZF"
                type="rss"
                xmlUrl="http://stackoverflow.com/feeds/tag/zend-framework" htmlUrl="http://stackoverflow.com/questions/tagged/zend-framework"/>
            <outline text="Thomas Weidner" title="Thomas Weidner"
                type="rss"
                xmlUrl="http://www.thomasweidner.com/flatpress/feed/rss2/" htmlUrl="http://www.thomasweidner.com/flatpress/"/>
            <outline text="Tom Graham" title="Tom Graham" type="rss"
                xmlUrl="http://www.noginn.com/feed/" htmlUrl="http://www.noginn.com"/>
            <outline text="Zend Dev Zone" title="Zend Dev Zone"
                type="rss"
                xmlUrl="http://feeds.feedburner.com/ZendDeveloperZone" htmlUrl="http://devzone.zend.com/"/>
        </outline>
    </body>
</opml>

感谢提供所有的资源。我已经编写ColdFusion 5年了,同时被推入php和Zend,所以这些资源会很有帮助。 - JasonBartholme
太棒了,为什么我之前没发现这个答案。 - markus

3

2
如果你已经了解MVC和设计模式,那么为什么不考虑使用工具来帮助你更快地编写代码呢?
尽管我通常喜欢免费的工具,但我必须说使用基于Eclipse的Zend Studio IDE可以加快速度(有30天免费试用期)。
主要优点(除了调试器/分析器):
- 它可以为MVC应用程序生成框架。 - 基本组件(控制器、视图、模型)的默认代码框架。 - 最后但并非最不重要的是 - 所有Zend类的自动完成(你可以通过Ctrl+单击类名打开它们)。非常方便,我必须说。
只需确保拥有一台内存非常大的计算机!

1

我现在正处于你的情况中(只是用php的时间少一些:P)

目前我正在使用Zend FrameWork作为参考,并且从目前看来,它非常容易重用旧工作的结构。一旦您设置了首选选项和树形结构,就可以反复重用它。

因此,我认为最好不要依赖第三方生成器,而是创建自己的框架。这样,您将更加熟悉代码结构,并且能更好地掌握代码。


看起来这里使用的是基本的原型设计方法,实际上是自己基本项目的渐进式演化。 - AlexA

1

1
据我所知,有一些重复性的任务需要花费很多时间。
这是真的,正如你所说,几乎每个网站都有注册流程等类似功能。虽然我同意反复实现这样的功能可能会变得重复,但每个应用程序都将有其自己独特的要求 - 这意味着即使您正在重用旧的基于ZF的项目中的代码,仍将涉及至少一点定制工作。现在我将尝试回答您的编号问题:
“Zend开发人员是否使用某种原型来快速推出基本网站?”

不一定。我不会选择ZF作为“基本”网站的框架,也不会使用任何MVC框架。我的当前假设是,一个基本网站由大约8到12个单独的部分组成,没有真正特殊的功能,并且有限的要求。请记住,一旦我们说“框架”,几乎总会有明显的性能损失,以及可能固有于该框架中的任何错误和问题。

你所说的“原型”可以在Zend Framework中提供的类中找到,例如,Zend_Auth 可以在大约15分钟内创建一个完整的身份验证系统。

2)或者是否已经有一些网站源代码可供构建?

可能有,但我必须说,我最担心的噩梦之一就是不得不支持建立在某种包装另一个框架的框架上的应用程序。想象一下调试它会有多么有趣。想象一下教别人如何支持它会有多么有趣。你已经在使用一个框架了,现在不要太贪心。

3)是否有一些应用程序生成器或小工具,用于带有网格、记录等的页面?

我不太确定你的意思,但如果我要猜的话,也许是Zend Studio?


3- 这通常被称为脚手架,我想。 - Itay Moav -Malimovka
好的观点,我想我是在考虑基于GUI的东西,就像Visual Studio中的数据感知控件。 - karim79

0

如果您想快速入门,可以阅读 "Learn ZF2" 这本书。它是由核心 Zend Framework 2 (ZF2) 团队成员和 ZF2 课程创建者编写的,可能是了解 Zend Framework 2 及其功能的最佳选择。该书附带源代码,并逐步引导您了解不同的概念。这是一本有趣的读物,每一页都更加精彩。


0

0
我们有一个可以帮助的工具:nWire for PHP 分析您的代码,帮助您浏览代码并直观地呈现组件和关联。最终您将需要阅读代码,使用 nWire 可以使这变得更加容易。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接