潜在的Zend Framework开发人员的编程问题

cam*_*aca 4 zend-framework

什么是一个很大的问题,我可以给几个不知道Zend Framework的潜在开发人员?

我的目标主要是确定他们自己快速学习新东西的能力(即框架).它必须是他们通常会在几个小时内完成的事情,但在这种情况下,由于他们不熟悉框架,因为额外的读取和stackoverflow.com使用会花费更多时间;),所以,我可以让他们在周末做些什么.

此外,问题必须非常针对视图和控制器部分,因为前端工作主要是我需要他们.(并且Zend Framework并没有真正帮助Model).这个问题可能要求他们做一点ajax,并且通常"漂亮,功能齐全,但后端不是很复杂".

Rad*_*kel 8

对我来说,每个ZF开发人员应具备的基本技能都与这些相关:

  1. 编写自定义视图帮助程序 - 如果它们必须是自定义命名空间,那将是最好的,Zend因为这将学习如何在View中注册帮助程序路径.
  2. 绝对写一些表格类使用Zend_Form(并与装饰者战斗;).甚至可能是一些自定义表单元素,这也需要注册辅助路径和新命名空间 - 基本技能.
  3. 编写简单的ACL系统.在那里,您可以检查他们是如何做到的 - 它为您提供有关其软件架构知识的信息.它们是作为插件实现的吗?也许硬编码index.php?或自定义控制器和/ initpreDispatch方法.
  4. Auth - 在ZF中它的10-15行,但你必须搜索它:)
  5. 一些db模型工作 - 简单.二,三表和它们之间的关系-它可以是简单的ACL表:users,role,user_has_role.
  6. 使用当然布局并使用ZF的视图助手来附加脚本和样式.
  7. 定义一些自定义路线.
  8. 在某种程度上实现缓存.
  9. 了解引导程序的工作原理 - 对于大多数这些任务,最简单的方法是使用基于Bootstrap和boot.rap的bootstrap资源.

简单的"app"几乎涵盖了所有这些技能,可能看起来像这样:

  1. 其中有三个表的简单数据库:user,role,has_role.在 我插入记录时自动设置的user表列created_at中.(封面Zend_Db_Adapter,application.ini).
  2. 应用程序有三个模块/控制器/页面 - 称之为你想要的.
    a)添加,删除和编辑用户和角色的能力.通常是CRUD.另外,你可以说网格必须是前端(jqGrid,DataTables等),使用AJAX从app获取数据.在那里,您将检查它们是否自己实现AJAX输出,或使用ZF的contextSwitch 功能.(涵盖Zend_Db_Table_Abstract,它们之间的关系,对模型的理解,Zend_Db_Select,视图和可能的视图,如appendScriptZend_Form)
    b)自定义文件的上传器 - 这种基于Web的存储.简单的表格上传文件和表格下面的列表和下载的可能性(涵盖安全性,可以涵盖Zend_Form和Zend_File_Transfer,如果他们使用与a中相同的表可能部分视图))
    c)页面显示10个最后的推文无论你想从Twitter获得谁,必须缓存x小时.(涵盖Zend_Cache,然后可能是Zend_ervice或XML,JSON知识 - 取决于他们如何实现它)

此外,应用程序要求用户使用登录名和密码登录(您可以说,注册必须是应用程序的另一部分).并且为了利用ACL系统,用户只能访问b)和c)(当然还有注册/登录页面;),但 管理员可以访问所有三个页面.

现在你有两个方法.
首先是说:

"它必须在ZF中.但是必须使用Zend_Form和使用Zend_Db_Table_Abstract的模型进行表单.对于auth,您必须使用Zend_Auth作为ACL前端控制器插件等等....

第二种方式是:

"它必须在ZF.你如何在内部进行 - 这完全是你的商业 - 但它必须有效."

你会选择哪个,取决于你的需要:)

PS.就个人而言,在招聘过程中我使用第二种方法(有时甚至没有指定框架) - 因为正如我之前所说,它向我展示了候选人的思维方式 - 这也很重要.候选人是想要自己做所有事情的"DIY人",尽管已经有10个这样的解决方案,或者她/他宁可是RTFM人,或者两者兼而有之.当你必须做应用程序和你自己的数字如何做,使用哪些组件,它更有创意.在候选人制作这样的应用程序之后,您仍然可以进行代码审查并向他们展示可以以不同方式完成某些事情的方式 - 这样他们可以学习新的东西,也许您将从他们的方法中学到一些东西