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

8
我懂得PHP,刚开始学习MySQL(但打算使用ODBC)。我不需要任何解释这方面的书籍。
我可能有资格开发一个简单的网站,但是我的目标是承担相当雄心勃勃的应用程序。我想象几乎所有的Web应用程序都具有一些共同点,如安全性、可扩展性等(例如,我完全不知道如何在服务器上分发数据库或应用程序)。
由于我无法预见我可能开发的应用程序的确切性质(除了PHP和ODBC将被涉及),所以是否有必要选择一个框架,还是应该重新发明轮子并个性化它以成为我的自己的框架呢?
如果选择现有的框架,那么应该选择哪一个?我唯一能提供的帮助是我不太可能做网站、门户、购物网站等,可能更倾向于资产跟踪和数据挖掘。
6个回答

6

使用框架可以节省大量时间,帮助你更加合理地组织你的应用程序。

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

如果您正在构建一个需要扩展的大型应用程序,那么Symfony或可能是Zend是值得考虑的。

如果您选择在Symfony中开始构建应用程序,则会立即获得以下功能:

  • 使用路由进行URL重写
  • 表单框架来处理与Web表单相关的所有事项
  • 国际化和本地化
  • 邮件发送功能
  • 缓存机制
  • 管理区域生成器,以帮助您快速添加数据
  • 单元测试框架

此外,整个框架都是可扩展且可自定义的,以适应您的需求。

如果没有框架,您将不得不自己编写所有这些内容。或集成几个不同的开源模块。

希望这可以帮到您。


2

优秀的框架为您提供了常见问题的解决方案。自己重新发明解决方案可能会过度工作。作为学习练习,为自己想出东西具有一定的价值。要高效地完成真正的工作,请使用框架。

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


1
尽管大多数框架都试图一次解决所有问题并与任何流行技术相互操作,但很少在特定任务上表现出色。大多数情况下,您最终会在该框架内进行大量的黑客攻击。另一种选择是编写自己的应用程序特定框架。我为自己找到的经验法则是,如果您掌握了一个框架,并且它满足您的要求,那么您将非常高效,但是一旦跨越那条线,速度可能会急剧放缓。拥有自己的框架需要长时间设计和编写,但如果做得正确,就不会有这个问题! - back2dos

1

1

框架非常适合确保您以有条不紊的方式编写代码,并使您的代码易于阅读。 它们还提供了许多代码库,可以节省您在开发Web应用程序方面的大量时间。

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

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

如果你要使用框架,我建议你看一下这个教程http://anantgarg.com/2009/03/13/write-your-own-php-mvc-framework-part-1/。它会带你完成第一个MVC(模型视图控制器)框架,比直接使用像Zend这样的完整框架简单得多。我建议你跟着这个教程学习,直到你能够熟练地编写MVC风格的代码。因为已经有很多优秀的框架存在,重新发明轮子并不值得,而且需要花费大量时间。
希望这可以帮到你。
Luke

1

在StackOverflow上已经有一些关于PHP框架的好答案,所以我不会再深入讨论这个问题。

然而,就库而言,我建议使用ADODB库(更容易地对输入进行适当的净化,支持多个数据库,比PHP本地的特定数据库类具有更好的API),并编写自己的一些类。

一个提供模板的“轻量级”框架的好例子(也是一个良好编写框架的好例子)是Smarty(W3C在他们的网站上使用它-不错的认可)。对一些人来说,在PHP中拥有一个模板语言似乎是多余的,但它确实有助于强制实现演示逻辑与应用逻辑的明显分离。

我认为最好在没有看到真正满足您无法轻松解决的需求之前,避免使用PHP框架。

我的看法是,如果您喜欢编写自己的类和小型特定网站框架,您将更能够轻松评估其他框架(我认为这是PHP的一个独特挑战,因为有很多糟糕的框架妨碍了找到好的框架)。


+1 感谢ADODB库。我曾经尝试过在网站上使用Smarty,而不是应用程序,但我同意W3C的建议很重要。许多人似乎推荐Symfony,所以它就像是那个和自己开发之间的交叉点。我会进一步调查它。 - Mawg says reinstate Monica
1
当我第一次接触ADODB时,我感到非常惊讶:“为什么我以前从未听说过它?!”如果您有兴趣在以后更新帖子时分享您的经验,那将是很有意思的。 - Iain Collins
1
我来晚了,但在使用ADODB和PDO两者后,对于我的情况,PDO效果更好。 - Fred Wilson

0

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