我可能有资格开发一个简单的网站,但是我的目标是承担相当雄心勃勃的应用程序。我想象几乎所有的Web应用程序都具有一些共同点,如安全性、可扩展性等(例如,我完全不知道如何在服务器上分发数据库或应用程序)。
由于我无法预见我可能开发的应用程序的确切性质(除了PHP和ODBC将被涉及),所以是否有必要选择一个框架,还是应该重新发明轮子并个性化它以成为我的自己的框架呢?
如果选择现有的框架,那么应该选择哪一个?我唯一能提供的帮助是我不太可能做网站、门户、购物网站等,可能更倾向于资产跟踪和数据挖掘。
使用框架可以节省大量时间,帮助你更加合理地组织你的应用程序。
如果应用程序很小,则像CodeIgniter或Kohana这样的框架是理想的选择。
如果您正在构建一个需要扩展的大型应用程序,那么Symfony或可能是Zend是值得考虑的。
如果您选择在Symfony中开始构建应用程序,则会立即获得以下功能:
此外,整个框架都是可扩展且可自定义的,以适应您的需求。
如果没有框架,您将不得不自己编写所有这些内容。或集成几个不同的开源模块。
希望这可以帮到您。
优秀的框架为您提供了常见问题的解决方案。自己重新发明解决方案可能会过度工作。作为学习练习,为自己想出东西具有一定的价值。要高效地完成真正的工作,请使用框架。
这假设在您的世界中存在好的框架...
我目前正在使用PHP框架Kohana(版本3)进行开发。还有一种使用ORM快速创建模型(用于(H)MVC模式)的方法。欲了解更多信息,请参考:http://kohanaframework.org/guide/tutorials.orm,并查看http://kohanaframework.org/guide/api和http://kohanaframework.org/download。
框架非常适合确保您以有条不紊的方式编写代码,并使您的代码易于阅读。 它们还提供了许多代码库,可以节省您在开发Web应用程序方面的大量时间。
Zend框架拥有大量的代码库,您可以将其包含到您的应用程序中,以便轻松扩展它。对于数据挖掘而言,访问这些库将非常有益,因为我相信已经有许多针对Zend制作的数据挖掘库。
Symfony框架非常适合快速开发网站,并且非常严格地使用innodb作为其数据库表,这可以确保数据库完整性,并且如果您打算开发严格的关系数据库,则非常有用。管理生成器也非常快速,可用于为您设计的网站开发内容管理系统。
如果你要使用框架,我建议你看一下这个教程http://anantgarg.com/2009/03/13/write-your-own-php-mvc-framework-part-1/。它会带你完成第一个MVC(模型视图控制器)框架,比直接使用像Zend这样的完整框架简单得多。我建议你跟着这个教程学习,直到你能够熟练地编写MVC风格的代码。因为已经有很多优秀的框架存在,重新发明轮子并不值得,而且需要花费大量时间。在StackOverflow上已经有一些关于PHP框架的好答案,所以我不会再深入讨论这个问题。
然而,就库而言,我建议使用ADODB库(更容易地对输入进行适当的净化,支持多个数据库,比PHP本地的特定数据库类具有更好的API),并编写自己的一些类。
一个提供模板的“轻量级”框架的好例子(也是一个良好编写框架的好例子)是Smarty(W3C在他们的网站上使用它-不错的认可)。对一些人来说,在PHP中拥有一个模板语言似乎是多余的,但它确实有助于强制实现演示逻辑与应用逻辑的明显分离。
我认为最好在没有看到真正满足您无法轻松解决的需求之前,避免使用PHP框架。
我的看法是,如果您喜欢编写自己的类和小型特定网站框架,您将更能够轻松评估其他框架(我认为这是PHP的一个独特挑战,因为有很多糟糕的框架妨碍了找到好的框架)。
我在几个项目中使用了Yii框架。不得不说,它的扩展(backvendor http://www.yiiframework.com/extension/backvendor/和bootstrap http://www.yiiframework.com/extension/bootstrap/) 真的在开发的初期节省了很多时间。