容易像CI(这意味着强制性的好,简单,最新的文档)。但也有一些比CI更多的功能。
Yii有很多功能,但它也更复杂(它有点迫使你必须使用它的很多功能)。这意味着为您的网络应用程序添加一些功能需要三倍的时间,因为您必须找出许多新的小功能Yii。
这有点像CI在需要的时候“离开你的方式”,并且Yii妨碍你,如果你不这样做,它就会破坏。
CI中缺少的功能在这个新的“中间”PHP框架中很有用:
- 代码生成(crud)。
- 验证。
- 访问控制。
- 布局。
- 窗口小部件。
- 易于/自动分页(如yii)
- 简单的uri参数
Yii给我带来问题的地方:
就像每个小任务都有一些内置功能(这很好),但是,你必须使用内置功能,否则会发生不好的事情。 (CI会让你失望,但是做得太多了,Yii帮了很多,但是有时候太过分了,它迫使你筛选文档,以便你发现这些功能,否则你就无法完成一项任务,需要花费四倍的时间,在CI或非框架应用程序中)。
介于两者之间吗?
(ASP.NET MVC可能是'它',但我不懂语言,所以学习它的努力将比学习Yii php框架更好,所以我正在寻找一个 PHP框架)
我是粉丝 CakePHP的。我觉得它有你提供的规格。如果你想要更先进的东西,你可以看一看 锂
我找到了一些解决这个问题的资源,因为它们包含了一些例子(米兰巴布什科夫的消化有助于关注“解决方案”)。
Yii游乐场 - 例子
Yii食谱 - 例子
Yii博客教程 - 更多示例
PS。还有谷歌 - 我找到最快的解决方案(和例子) - 例如:实施+分页+ yii
我已经使用了CI和Yii(在我自己的项目中,如果这有任何区别)。 CI是我对MVC的第一次介绍,我发现它很容易,因为它让我使用任何糟糕的结构和代码。我在CI中写了两个完整的网站(www.insolvencynews.com和www.thebigeat.com,如果你想看到复杂性。)
我看了看CakePHP,但是得到了NOWHERE。
然后我转向Yii,和你一样,我发现它非常坚硬和僵硬。但我发现它是如此强大和可扩展,以至于我更有效率。当我需要为旧的CI网站添加一些新功能时,在Yii上重写整个网站比在CI中编写额外功能更快。
我不能推荐中间的框架,但我可以推荐坚持使用Yii。当你说Yii妨碍你,你能举个例子吗?查看数据库内容(依赖于Yii的升序):
您可以使用PHP的核心MySQL函数进行编码。
$result = mysql_query($sql);
你可以使用Yii的DB抽象层。
Yii::app()->db->createCommand($sql)->queryAll();
你可以使用Yii的ActiveRecord:
Takeaway::model()->findAll();
您应该查看CI社区,其中一些扩展可能是由其他人编写的(我记得在某处看到了身份验证和组件/小部件)
Symfony的 值得一试。我个人并不喜欢它,因为他们选择Prototype而不是jQuery来实现他们的ajax功能,这在你习惯使用jQuery时非常烦人。
锂 可能也很好看。但是,它只是php 5.3,你需要非常小心,将在部署该站点的服务器上支持这个版本的PHP。
请参阅此列表以获得良好的比较:
http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#PHP_2
从个人的角度来看,我会选择symfony,因为它
- 丰富的功能和
- 与许多其他已经发现的组件(Doctrine,Swift Mailer,...)很好地集成,
- 良好的(但最初是复杂的)代码生成,它产生真正可用的代码,以便快速启动,
- 强大的模板使用(这将是你在“布局”下提到的那一点)
- 许多不同的,强大的 插件,包括身份验证和访问控制(它也有一个 插件以获得jQuery支持)
- 最好的之一 教程 我用框架看过的
下行是一个
- 更复杂的结构,
- IMO有线文件结构,
- 相当混乱 API文档 与教程相比
CodeIgniter是一个很好的框架,如果你不想创建大型应用程序,但它缺乏一个伟大的数据库集成,你已经提到过代码生成。
我非常擅长Raw PHP,手头的项目变得太多了,我决定转移到zend,太复杂了我终于转移到YII,这真的减少了项目开发的成本和开销时间,对我来说最重要的是是jquery,widget和advanced-OOP的简单集成。
你可以看看 Qcodo / Qcubed。
它们很容易上手并提供代码生成/ ORM
以mvc方式创建表单的简便方法。
值得一提的是,如果您正在寻找类似于ASP.NET MVC的PHP框架,那么我认为 普拉多 是你会发现的最接近的东西。