Web应用程序:框架还是不框架?

时间:2010-06-04 09:40:32

标签: php web-applications frameworks

我知道PHP,我刚开始使用MySql(但计划使用ODBC)。我不需要任何书籍来解释这一点。

我可能有资格开发一个简单的网站,但目标是采用相当雄心勃勃的应用程序。我想,几乎所有的网络应用都有一些共性,如安全性,可扩展性等(例如,我完全不知道如何在服务器服务器上分发数据库或应用程序)。

由于我无法预见我可能开发的应用程序的确切性质(除了PHP和ODBC将涉及),是否有任何意义与框架结婚,或者我应该重新发明轮子并将其个性化以使其成为我自己的框架。

如果是现有框架,那么哪一个?我能给予的唯一帮助是我不太可能做网站,门户网站,购物网站等,可能更倾向于资产跟踪和数据挖掘。

6 个答案:

答案 0 :(得分:6)

使用框架可以节省大量时间,并帮助您按逻辑组织应用程序。

如果应用程序很小,那么像CodeIgniter或Kohana这样的框架是理想的。

如果您正在构建一个需要扩展Symfony的更大应用程序,那么可以选择Zend。

如果您要在Symfony中启动您的应用程序,您将立即获得:

  • 使用路线重写网址
  • 用于处理与您的网络表单有关的所有内容的表单框架
  • 国际化和本地化
  • 电子邮件
  • 缓存
  • 管理区域生成器,帮助您快速添加数据
  • 单元测试框架

此外,整个框架可以扩展和维护,以满足您的需求。

在没有框架的情况下开始,您必须自己编写所有这些内容。或者集成几个完全不同的开源模块。

希望这有帮助。

答案 1 :(得分:2)

良好的框架为您提供了解决常见问题的方法。为自己重新制定解决方案可能是过度的工作。作为为yourslef提供的东西的学习练习有一些价值。为了有效地完成一项真正的工作,请使用框架。

这确实假设您的世界中存在良好的框架......

答案 2 :(得分:1)

我目前正在开发PHP框架Kohana(版本3)。还有一种使用ORM非常快速地制作模型(用于(H)MVC模式)的方法。有关详细信息,请查看以下内容:http://kohanaframework.org/guide/tutorials.orm并查看http://kohanaframework.org/guide/apihttp://kohanaframework.org/download

答案 3 :(得分:1)

框架非常适合确保您采用规范的方式进行编码,并且您的代码是可读的。它们还提供了许多代码库,可以为您节省大量开发Web应用程序的时间。

Zend框架有大量的代码库,您可以将其包含到您的应用程序中以便轻松扩展它,并且对于访问这些库的数据挖掘将非常有益,因为我确信已经有许多数据挖掘库已经制作好了对于Zend。

Symfony框架非常适合快速开发网站,并且非常严格地将innodb用于其数据库表,以确保数据库的完整性,并且如果您打算开发严格的关系数据库,则非常有用。管理生成器也非常快速地为您设计的网站开发内容管理系统。

如果您打算采用一个框架,我会看一下本教程http://anantgarg.com/2009/03/13/write-your-own-php-mvc-framework-part-1/,它将引导您完成第一个MVC(模型视图控制器)框架,并且比直接进入像Zend这样的完整框架要简单得多。 。我会按照这个教程,直到你有一个体面的mvc风格的编码,由于所涉及的时间和现有框架的质量,它不值得重新发明轮子。

希望这有帮助

答案 4 :(得分:1)

对于StackOverflow上的PHP的“哪个框架”问题已经有了一些很好的答案,所以我不会进入那些。

但是,就库而言,我建议使用ADODB library(更容易对输入进行适当的清理,支持多个DB,比PHP的本机DB特定类更好的API)并编写自己的几个类。 / p>

提供模板的“精简”框架的一个很好的例子(这也是一个编写良好的框架的一个很好的例子)是Smarty(W3C在他们的网站上使用它 - 不是一个糟糕的认可)。对于某些人来说,在PHP中使用模板语言似乎是多余的,但它确实有助于强制执行表示逻辑与应用程序逻辑的显着程度的分离。

我认为最好避开PHP上的框架,直到你看到真正满足需求的东西,如果没有它你就无法轻易解决。

我认为,您很乐意编写自己的类和小型站点特定的框架,您将能够更轻松地评估其他框架(我认为这是PHP的一个独特挑战,因为有一些结束提供糟糕的框架,妨碍找到好的框架。)

答案 5 :(得分:0)

我已经将Yii用于了一些项目。需要说明其扩展(backvendor http://www.yiiframework.com/extension/backvendor/和bootstrap http://www.yiiframework.com/extension/bootstrap/)确实可以节省开发初期的时间