2010-11-06 42 views
5

我正在构建一个使用Zend Framework的应用程序,我不知道这个框架是否有点太臃肿或者完成了。也许它是我解决问题的方式,但我发现使用这个框架迫使我编写更多的代码。Zend Framework是值得的吗?

任何建议或意见?

+0

你想要建立什么? – rwilliams 2010-11-06 16:30:59

+0

售票系统,以及cms – snakeyyy 2010-11-06 16:42:34

+0

查看redmine。它具有问题管理,svn集成和wiki。你可以从bitnami获得“可安装”。 – 2010-11-07 06:47:07

回答

3

ZF组件非常适合有针对性的任务 - 例如, Zend_Oauth,Zend_Pdf,Zend_Gdata等。您可以使用它们来实现这些任务,即使不将您的应用程序基于ZF MVC结构,并且我绝对建议您这样做(免责声明:我是ZF的贡献者,所以我可以是主观的) 。

至于像ZEnd_Application,Zend_View等大ZF的东西 - 这取决于你的需要和风格。对于一个大项目,我会说去做,它在开始的时候可能看起来很大,但是在任何情况下你都会得到大致相当的东西。另一方面,如果你的项目比较小,那么你可能会考虑使用一些简单的或者根本不需要框架的东西 - 但要小心,一些小项目的增长速度比你预期的要快。

看看您的评论,您正在构建票务系统和CMS,它看起来对于框架来说足够大。给ZF一个尝试。从更小,更简单的例子开始,使用一本好书,一些示例代码也可能非常有用。当你进入思维模式时,你会发现它并不像你想象的那样臃肿 - 它只是有更多的功能和扩展点,但是你会发现你可能需要这种功能。

1

这只是建议或建议,所以在此插入免责声明。

这并不是说您必须编写多少代码才能在应用程序中显示第一页。在你的应用程序中总共有多少代码将在你的应用程序中出现,并且有多少代码将在整个地方重复使用。以及改变/维护将变得多么容易。

使用zend,您现在可以编写更多代码,以便稍后编写更少的代码。在开始时,您正在编写控制器,模型,映射器,视图,表单和布局。很快你会将操作添加到控制器,只写表单和视图。

编写模型的成本不应该分配给您编写的第一个视图。通过添加,编辑,删除和列表视图以及搜索视图来分配它。

我只有4周进入zend框架,所以我认为自己是一个初学者,但我已经编程了25年,并且php已经6年了,所以我看到了智慧。

您可能需要注意的是,某些zend例程在php 5.3中不起作用,我对此没有更多了解。

编辑:如果您正在寻找更简单的框架,请尝试使用codeigniter(或kohana,它是codeigniter的一个分支)。因为你手动添加文件,而不是运行脚本来生成控制器,模型等(比如symfony,zend,cakephp,yii等),所以使用起来更简单。到目前为止,我所做的大部分工作都是使用codeigniter。

3
  1. 您确定您需要自己的CMS吗?你会写一个好的反垃圾邮件过滤器吗?这不是ZF强迫你写更多的代码。也许你只是选错路了。

考虑将您的应用程序与一些很好的解决方案(如Wordpress或Drupal)集成。

  1. Zend Framework没有臃肿。事实上,这是一个很好的编程实践的例子。它是成熟的,这意味着它应该用于成熟的项目和成熟的程序员。

Altought ZF是这里最好的一个,你可以试试Symfony,也许你会觉得它更友好。有很多用户贡献,准备好的资源。

0

那么如果您希望打字速度更快,Zend Framework可能不是最好的选择。它肯定需要更多时间打字,例如$this->getRouter()->getWhatever()->thenSmtMore()->theFuncNeeded()。然而,它结构良好,设计良好。而Sasha Shumann在QA会议上所说的是,“你花更多的时间阅读代码而不是写它”。那么,当你这样思考,但在现实生活中,尤其是如果你正在处理一堆低预算的项目,你可以牺牲一些质量时,Zend Framework的默认应用程序基础设施会降低你的工作效率。但这并不意味着ZF是臃肿的...

我喜欢ZF的一点是,由于模块是松散耦合的,所以您总是有机会将它用作图书馆或开发自己的工作环境基于ZF组件。这正是我所做的,所以我花了几个月时间来构建基于ZF组件的自己的框架,并且可以按照我喜欢的方式更快地构建新项目。根据我的经验,当您使用任何框架(包括Ruby on Rails或Django)时,是的,您在开始时会获得很多速度,但遇到特殊情况时,将更难找到适合该情况的解决方案。解决方案是花费足够的时间来掌握框架,肯定得到一些社区支持,因为标准文档是永远不够的,并优化您的工作流程(例如使用NetBeans或Zend Studio等高级IDE,使用代码创建代码片段库模板等)