问题 PHP框架中间复杂,在CodeIgniter和Yii之间?


容易像CI(这意味着强制性的好,简单,最新的文档)。但也有一些比CI更多的功能。

Yii有很多功能,但它也更复杂(它有点迫使你必须使用它的很多功能)。这意味着为您的网络应用程序添加一些功能需要三倍的时间,因为您必须找出许多新的小功能Yii。

这有点像CI在需要的时候“离开你的方式”,并且Yii妨碍你,如果你不这样做,它就会破坏。

CI中缺少的功能在这个新的“中间”PHP框架中很有用:

  • 代码生成(crud)。
  • 验证。
  • 访问控制。
  • 布局。
  • 窗口小部件。
  • 易于/自动分页(如yii)
  • 简单的uri参数

Yii给我带来问题的地方:

就像每个小任务都有一些内置功能(这很好),但是,你必须使用内置功能,否则会发生不好的事情。 (CI会让你失望,但是做得太多了,Yii帮了很多,但是有时候太过分了,它迫使你筛选文档,以便你发现这些功能,否则你就无法完成一项任务,需要花费四倍的时间,在CI或非框架应用程序中)。

介于两者之间吗?

(ASP.NET MVC可能是'它',但我不懂语言,所以学习它的努力将比学习Yii php框架更好,所以我正在寻找一个 PHP框架


13028
2018-06-29 23:10


起源

好问题。我对同样的问题感到困扰。自从我学习Yii以来,我有两个项目,并且由于你陈述的原因我决定使用CI。虽然,我认为这不是解决问题的第三个框架,而是为Yii提供了更多的面向对象的教程。恕我直言,Yii文档太粗糙,并没有足够的例子。 - Milan Babuškov
看看Kohana,它基于CI。听到很多关于它的东西,但它缺乏曝光。 - ggfan
@MilanBabuškov如果您将此作为答案发布我会选择它:“虽然,我认为这不是解决问题的第三个框架,而是为Yii提供了更多以导向为导向的教程。” @ggfan我听说过kohana并且已经调查过了。不是这样。 - snrp
你考虑过学习Python吗? - NullUserException
如果您正在寻找更好的Yii文档,您可能想看看这本新发布的教授Yii框架的书: amazon.com/Agile-Web-Application-Development-PHP5/dp/1847199585/...  ...我发现这本书非常有助于提高我对这个框架的理解 - Bug Magnet


答案:


我是粉丝 CakePHP的。我觉得它有你提供的规格。如果你想要更先进的东西,你可以看一看


4
2018-06-29 23:29



锂需要PHP 5.3+,因此可能不太容易访问。我相信CakePHP具有一些向后兼容性,但不如CodeIgniter仍然支持PHP 4。 - Lotus Notes
我发现CakePHP比Yii更糟糕的是“你必须按照原来的方式做事”原始问题。 - Milan Babuškov
@Jason,看看你的第一句话:“我是CakePHP的粉丝”?这应该是一个非常有说服力的论点来进行投票?也许如果Yii作者会写那个;)第二句......好吧,我只想说我不同意。在大项目中自己使用了所有3个框架,CakePHP遇到了同样的问题,甚至比Yii更糟糕。是的,它有规格。问题,但不是解决方案。此外,原创作者甚至无法奉行,他只有11个声望。 - Milan Babuškov
@Jason:这就是投票的原因。这不是关于“合法”,而是关于解决问题。 - Milan Babuškov
投票取消米兰巴布什科夫的荒谬投票。 - Jfly


我找到了一些解决这个问题的资源,因为它们包含了一些例子(米兰巴布什科夫的消化有助于关注“解决方案”)。

Yii游乐场 - 例子 Yii食谱 - 例子 Yii博客教程 - 更多示例

PS。还有谷歌 - 我找到最快的解决方案(和例子) - 例如:实施+分页+ yii


3
2017-07-20 14:09





我已经使用了CI和Yii(在我自己的项目中,如果这有任何区别)。 CI是我对MVC的第一次介绍,我发现它很容易,因为它让我使用任何糟糕的结构和代码。我在CI中写了两个完整的网站(www.insolvencynews.com和www.thebigeat.com,如果你想看到复杂性。)

我看了看CakePHP,但是得到了NOWHERE。

然后我转向Yii,和你一样,我发现它非常坚硬和僵硬。但我发现它是如此强大和可扩展,以至于我更有效率。当我需要为旧的CI网站添加一些新功能时,在Yii上重写整个网站比在CI中编写额外功能更快。

我不能推荐中间的框架,但我可以推荐坚持使用Yii。当你说Yii妨碍你,你能举个例子吗?查看数据库内容(依赖于Yii的升序):

  1. 您可以使用PHP的核心MySQL函数进行编码。

    $result = mysql_query($sql);

  2. 你可以使用Yii的DB抽象层。

    Yii::app()->db->createCommand($sql)->queryAll();

  3. 你可以使用Yii的ActiveRecord:

    Takeaway::model()->findAll();


2
2017-07-04 22:46



你不能只是在那里发布一些代码并将其完成。您必须使用所有过度复杂的方法。例如:“手动”实现jquery-ui选项卡。您必须首先“发现”Yii :: app() - > clientScript-> registerScriptFile()函数。但如果你不知道它首先存在,你如何“发现”它?当您在谷歌搜索如何让它工作。我不认为它在文档中的任何地方解释了如何加载与yii“捆绑”的jquery,并且用于ajax分页和东西,或者你甚至可以或可以做这样的事情。 - snrp
我听说你 - 文件不够。你仍然有两个选择Yii:用PHP编写你自己的javascript处理代码,或者只是在视图中查看<script>标签。你没有被迫使用Yii的方法 - 但恕我直言学习它们并使用它们比从头开始更快。 - Moyersy


你可以试试 Kohana的 (尤其来自ci)


1
2018-06-29 23:13



Kohana并没有真正提供OP所要求的功能(尽管它 是 一个优秀的框架)。 - davidtbernal
Kohana的文档少于Yii和docs。保持不好。它改进了CI,但它主要修复内部的东西,并没有添加许多新功能。 - Milan Babuškov
@ nathan是的,我理解你想说的话。 Kohana(不幸的是)是ci的确切对位,因为ci的最强点是 不 它的功能,但它的优秀,简洁,示例填充文档(在哪里作为yiis strong point is its features, but has not as good documentation). In fact CI is criticised for some of its“功能”,但由于某种原因仍然非常受欢迎......原因是文档。我检查了kohana(再次),但是......以前遇到的问题仍然存在。 - snrp
PS。 Kohana有一些不错的功能,例如,你可以将视图对象类型转换成字符串,这给我留下了深刻的印象。这个功能在我看来非常直观,非常像C#。来自kohana文档://渲染视图:$ about_page = $ view-> render(); //或者只需将其强制转换为字符串:$ about_page =(string)$ view;不幸的是,就像我说的那样,kohana还有其他问题。 (也缺少yii的许多功能) - snrp


您应该查看CI社区,其中一些扩展可能是由其他人编写的(我记得在某处看到了身份验证和组件/小部件)

Symfony的 值得一试。我个人并不喜欢它,因为他们选择Prototype而不是jQuery来实现他们的ajax功能,这在你习惯使用jQuery时非常烦人。

 可能也很好看。但是,它只是php 5.3,你需要非常小心,将在部署该站点的服务器上支持这个版本的PHP。


1
2018-06-29 23:40





请参阅此列表以获得良好的比较:

http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#PHP_2

从个人的角度来看,我会选择symfony,因为它

  • 丰富的功能和
  • 与许多其他已经发现的组件(Doctrine,Swift Mailer,...)很好地集成,
  • 良好的(但最初是复杂的)代码生成,它产生真正可用的代码,以便快速启动,
  • 强大的模板使用(这将是你在“布局”下提到的那一点)
  • 许多不同的,强大的 插件,包括身份验证和访问控制(它也有一个 插件以获得jQuery支持
  • 最好的之一 教程 我用框架看过的

下行是一个

  • 更复杂的结构,
  • IMO有线文件结构,
  • 相当混乱 API文档 与教程相比

CodeIgniter是一个很好的框架,如果你不想创建大型应用程序,但它缺乏一个伟大的数据库集成,你已经提到过代码生成。


1
2017-07-02 12:29





我非常擅长Raw PHP,手头的项目变得太多了,我决定转移到zend,太复杂了我终于转移到YII,这真的减少了项目开发的成本和开销时间,对我来说最重要的是是jquery,widget和advanced-OOP的简单集成。


1
2017-07-24 17:20





你可以看看 Qcodo / Qcubed。 它们很容易上手并提供代码生成/ ORM

以mvc方式创建表单的简便方法。


0
2017-07-02 12:04





值得一提的是,如果您正在寻找类似于ASP.NET MVC的PHP框架,那么我认为 普拉多 是你会发现的最接近的东西。


0
2017-07-02 11:56