我是Zend Framework的新手。
我下载了Zend Framework,然后按照官方的快速入门教程构建了一个非常简单的注册表单。但在那之后,我发现很难学习Zend Framework的不同元素。
许多教程都提到了bootstrap文件中的frontController和registerAutoload()。但是,我似乎无法在1.8版的代码中再次看到它(official quickstart tutorial和Getting Started with Zend Framework 1.8中都有)。许多教程都包含旧版本的代码,它在v1.8中看起来非常不同。
我从编写注册表单开始,密码确认。我阅读了官方文档并找到了custom validator for password confirmation。它只是把课程放在那里,并没有提到我如何使用它。我不知道我应该把这个文件放在哪里,我在谷歌找不到任何提示。 “找不到类”错误总是让我生病(我已经尝试过addPrefixElement,set_include_path但它们不起作用)。
用户注册,电子邮件激活,登录,访问控制是非常常见的任务。但我甚至没有在v1.8中找到一些可以在我的机器上运行的示例代码。我对Zend Framework感到非常沮丧。
有人给我一些建议吗?
答案 0 :(得分:8)
我刚刚开始学习zend框架。我也发现很多旧的教程让学习变得困惑和困难, 但是我有一些资源可以帮助我们学习zend框架:
一些可能有用的有用博客:
论坛问你的问题:
至于找不到课程,我觉得你没有自动加载?
答案 1 :(得分:4)
Zend Framework的部分内容在1.8版本中略有变化,但所有内容都应该向后兼容,因此使用1. *发布系列编写的所有代码示例仍然可以在很少或不需要修改的情况下工作。不同的主要领域是
Zend Loader(与register_autoload相关)现在有几项与性能相关的改进以及API的一些细微差别(如果使用旧方法,则会发出PHP警告)。我不会像初学者那样担心这个问题 - 只需按照教程或继续使用include / require语句,直到你厌倦了一直添加它们为止!
Zend应用程序,它基本上允许您创建您的设置和初始化代码,而不用大惊小怪。同样,你不必使用它,你可以愉快地编写一个手动引导类,让你习惯了框架的组合方式。
关于入门,我强烈建议您了解Zend Controller组件,尤其是前端控制器部件和this diagram。 有关身份验证,请查看Zend Auth,有关电子邮件,请参阅Zend Mail,有关访问控制的信息,请参阅Zend Acl,有关表单和验证,请参阅Zend Form,Zend Validate和{{ 3}}。表单和验证组件将解释路径并添加您自己的自定义验证器和表单元素。
另一个重要领域是Zend Filter,它允许您将数据保存到数据库中。还有Zend Db表示MVC堆栈中的视图层。在我看来,这些是基本ZF应用程序的关键组件。从那里,您可以在需要时探索其他组件。
不要忘记Zend Framework是专门设计为松散耦合的,并且很容易使用另一个项目中的不同组件来完成特定任务。有时也需要编写自己的组件。如果有一个组件,你更愿意使用Zend组件,那么继续这样做。
老实说,虽然很难为初学者导航,但文档非常好。一旦你了解核心组件,一切都会变得更加清晰。
同时尝试关注Zend View。它将有助于解释许多基础知识。
答案 2 :(得分:2)
我推荐这些视频教程由一个名叫亚历克斯的家伙提供,他让他们保持最新并一直发布新的视频教程,它们都与ZF 1.8和1.9相关。
他甚至有一个详细的视频教程,涵盖了ACL,登录表单等。(感谢他对Zend的第一步更容易!)
http://alex-tech-adventures.com/development/zend-framework.html?start=15 - 他的网站有点令人满意,但值得花时间搞清楚:)
干杯 罗马
答案 3 :(得分:1)
一些提示:
以下是调度过程的一个很好的图表
http://nethands.de/download/zenddispatch_en.pdf
如果您对OOP / OOP设计模式有经验,那么理解ZF要容易得多
当我第一次偶然发现ZF时,我对OOP知之甚少。 ZF促使我学习OOP,这是一件非常好的事情。
区分ZF的'魔力'和实际的ZF架构
虽然我对ZF课程有很好的理解,但当ZF在混音中添加“魔力”时,我仍然感到困惑。
当我说'魔术'时,我指的是像
这样的东西ZF有点像一个破解经销商,因为“入门教程”让你立刻迷上了。它们表现出如此多的魔力,让你思考 .oO(哇 - 多么简单!这个框架很酷!)
然后,一旦你开始尝试做自己的事情 - 魔法开始变得非常混乱。
所以 - 我的策略是尽可能多地删除ZF魔法。如果您可以选择指定要使用的类或要使用的路由器,请指定它。不要让Zend为你做。
然后,当发生奇怪的事情时,您可以更轻松地找到错误。
另外,如果你指定类/路径的位置(与让ZF神奇地改变路径和查找脚本相反),那么你不必担心'在哪里放这个? ,把它放在哪里?' - 你只需将它们放在你想要的位置,并明确地将ZF指向它们。
随着你越来越熟悉ZF,你可能会想让它接管并为你做一些魔术。只有这样你才能真正理解为什么魔术很方便。
正如蒂姆·沃德尔在另一个回答中所说的那样 - 在你真正需要它之前,需要使用zend loader语句。
如果你是一个每周制作10个网站项目的PHP设计公司,那么ZF Magic可能非常有用。如果您正在设计第一个ZF应用程序 - 那么“降低复杂性”是比“可重用性”更重要的设计目标。
浏览代码
看起来很明显,但了解ZF的最佳方法之一就是查看代码。
再一次,ZF魔法可能会妨碍我 - 我经常想看一个方法的参数来发现我需要传递的内容,但却发现它需要一个模糊的“选项数组”(并不完全有用)。不过,过了一会儿,你开始注意到'选项键'如何与getter / setter方法结合使用的约定。因此,请继续查看代码并熟悉“ZF方式”。
我打开那个'elps。
答案 4 :(得分:0)
Zend Framework上的Front Range PHP Users Group website has some presentations可能有用。
答案 5 :(得分:0)
我非常同情比利。我是一个新手,旧方式和新方式之间的混淆几乎无法处理。另请参阅此处了解指出一些主要差异的人:
答案 6 :(得分:0)
所有文档,尤其是Zend的文档都非常糟糕。这一切都假设您“知道”他们所指的片段的放置位置以及它们如何协同工作。如果我已经知道这些事情,我就不需要文档了。没有可以下载和修改的具有身份验证等的完整示例应用程序。我非常遗憾地花时间去学习这个框架。我能找到的所有例子显然都适用于旧版本。我在youtube上进行了一次身份验证,专为1.8而设计。它无法在1.9.x中工作。无法让它为我的生活而工作。对Zend Framework完全失望!
答案 7 :(得分:0)
Zend Framework已从一个相对容易访问且简单的系统转变为一个更复杂的实体。在过去几年中,它经历了许多快速发展,留下了许多旧的文档。
我们的项目停留在1.7.x版本上,因为它与最新版本之间的差异太大,这使得开发和测试时间过于昂贵。
我喜欢Zend Framework,因为它有很多深度,但对初学者来说绝对是一把双刃剑。
我当然建议利用其他用户的专业知识,并搜索一些简单的框架示例。 ZF 具有很高的适应性,但您需要尝试从最简单的情况开始,以满足您的需求。
我认为Matthew Weier o'Phinney(搜索'Phly,boy,phly')是开发团队中比较平易近人的成员之一,并且在他的网站上有大量的例子和想法。
祝你好运!