搜尋
首頁後端開發php教程【Yii】刚接触Yii谈一下对Yii框架的看法和感受 (Yii 1.1.x),该怎么处理

【Yii】刚接触Yii谈一下对Yii框架的看法和感受 (Yii 1.1.x)

本帖最后由 default7 于 2014-06-10 00:57:13 编辑 之所以想到去弄Yii,因为看到很多招聘PHP都要求必须精通Yii框架。
首先的印象这个框架是中国人创始的,但是却全都是英文的为主。这几天看了一下Yii权威指南。
说一下自己的初步感受(Yii 1.x):




1)文件结构凌乱。
既然是框架,却可以将action独立出来/protected/controllers/post/CreateAction.php。这样极容易让action与controller混乱。




2)对视图的控制欲太强烈,模板使用的是纯PHP。难道你做程序员也非得去写前端?
一个网站项目,让美工切出了HTML DIV CSS模板之后,又让PHP程序员再把里面的HTML标签换成PHP标签再搞一趟?
Yii的CHtml让很多人特别赞不绝口,但是他们似乎忽略了一个最核心的关键,网站网页有功能没卖相根本就会很惨,你不要指望访客都会像程序员那种只喜欢方方框框没有一张图全都是表格一样、对得工工整整的页面。


要注意:网站网页他不像软件,软件可能几年十几年都是做的功能改进,但网页,访客喜欢新鲜感,界面视觉,所以需要不断的改界面,改UI。

是定期修改,三天一小改,一个月一大改,三个月重新改。界面需要经常改。这样的情况下,如果直接使用html原型来做模板,美工做好DIV之后就可以直接用,根本都不需要程序插手。可是如果用了CHtml这样高度耦合的视图(模板)写法,那么必须得多出一道工序,那就是还需要一个懂得Yii的程序员将美工已经做好的DIV HTML再转成Yii视图模板中的标签,这样不是浪费吗?人力、时间、财力。与PHP的高效快速 背道而行?
实际上Yii的官网也是极其简陋的,苹果为什么会成功,卖相是关键,现在这个时代,UI界面真的太重要了。





3)感觉各个之间耦合度太高了,犹如一门新的语言。
Yii入门门槛比其他的框架高很多。各个之间都是高度耦合,都是些配置一样的设置,越是耦合越紧密,配置文件越是分散各个角落其实维护起来成本更高、时间更长、维护效率更低(当然,他可能运行效率很快)。



Yii对我的吸引:
1)51job、智联招聘上很多招PHP程序员的都要求需要精通Yii(其实看到那些要求我觉得很奇怪,描述上又要能够独立完成一整个项目又要精通Yii又要端精通DIV CSS UI,想让别人一个人搞,有点不合实际,Yii适合大型项目,如果一个大型项目中又要让程序员干Yii又要让他去写DIV这样不可笑吗?)

2)网上很多次方充满着对Yii的赞美、推荐,比如知乎上、搜索引擎中搜索MVC框架排名看到各大转载的文章、PHP MVC框架排名上,Yii都排名得很前,且很多神赞。



以上是我对Yii初步接触的一些感受,写出来希望能够一起探讨,目的是能够更快的掌握、领悟。by default7#zbphp.com







------解决方案--------------------
欢迎了解 Yii2.0,你说的绝大多数问题在Yii 2.0 时代都有更好的实现了。
至于用PHP做模版,这个属于仁者见仁智者见智的问题。学会模版引擎跟学会PHP差不了多少。2.0原生支持smarty和twig
至于耦合度的问题,只要你想,解耦根本不是问题,Yii提供的是一站式解决方案,一个字,就是快,之后你想替换组件,改模版,加缓存,随你便。2.0原生支持多种解耦,比如DI。
至于像新语言的问题,因为Yii大量使用了DSL的模式。这个模式是微软发明的。为什么用,因为好用。
至于混乱的问题,你没有学到ActiveRecord,没用用到ActiveForm。这些东西的彼此搭配才是现代PHP框架的核心啊。这些特色的点你都没有说到,用好了效率灰常灰常高。Yii2.0新增了全新的查询与表现分离的ActiveQuery以及更吊的多关系查询,有空了解下。
除此之外的功能还有安全性设计,GII代码生成器,开发者工具条,调试模式,Codeception调试器,Fixture数据定制器,Bootstrap扩展等等等等不胜枚举的特性,学习曲线本身不是问题,这些特性你不用也没关系,当原生PHP一样用也好用,但是学习曲线是和收益成正比的,用过你就放不下了。
功夫要下到,你不会不代表它不能,这么多企业用Yii,难道他们的CTO傻?
------解决方案--------------------
你这是只看到yii的缺点,没看到yii2的优点。任何框架都会有缺点。
1、yii最主要的精华是OOP。
       这个是yii框架的整个功能的所在,也是是公司招聘的主要原因
2、就像楼上所说的yii提供了各种便捷的功能,所以开发速度快。
3、文件结构凌乱
       这个完全是按照个人习惯来组织,你可以这样写
protected
          actions
                 post
                         CreateAction.php
                          ReadAction.php
           controllers
                  PostController.php
4、至于表单问题
       这个要看个人需要,如果做的表单页面是中规中矩的,可以使用ActiveForm。
       当然,你可以完全不用ActiveForm,自己写html来实现,ActiveForm只是给你提供了一种方便。
                         
------解决方案--------------------
没用过 Yii,也没打算用。表示没有就业压力
据说 Yii2.0 这能工作于 php 5.4 及以上了
所以模板中的 
楼主对 Yii 模板的批评,也就是对 Smarty 的批评,也就是对所有使用模板引擎将业务逻辑与视图分离的框架的批评,也就是对 MVC 这种设计模式的批评
姑且言之,姑妄听之

如果要在模板中引入控制流,那么与其象 Smarty 自创一套模板语言,还真不如象 Yii 这样直接使用 php 代码
至少是学习难度下降了,何况学会了 php ,吃饭也总算有着落了

我倒是期望有这样一个框架:他能将在 html 声明为客户端运行的php代码翻译成 js 代码。从而免去学 php 还要学习 js 的烦恼
------解决方案--------------------


个人认为说的没任何道理,你说的几点只是框架提供的一个功能而已

1)文件结构凌乱:框架有强制你把action单独写出来么?完全可以写到 Controller
2)对视图的控制欲太强烈:和第一条一样,没人强制你用上这个功能,我自己做表单看情况是否启用ActiveForm,哪个方便用哪个

事实证明,正规的公司都是分工明确不会让美工去干前端人员切片的活,甚至让美工或前端去套程序,只有那些比较坑的网建公司、非正规公司才会这样去做,出一个人的薪水干几个工种的工作


框架只是一个提升工作效率的工具,看你怎么去用,不是让你把所有内置功能全部用上,不要被框架框住!



------解决方案--------------------
至于Chtml做表单ActiveForm,可用可不用。但是个人觉得yii最优秀的莫过于OOP和MVC,还有它的灵魂:随用随取,而并不是运行就把所有的类加载进来,这也是其效率所在了!也是很多企业要求YII的原因了。
------解决方案--------------------
用Yii完成了2个项目了,正在做第三个,这次这个项目相对比较大,功能也较多。
前两个项目一次和别人合作,一次完全自己做的,自己做的一次是做一个票务系统,因为整体界面要求不高,我就没有找前端,全部自己写了。
现在感觉Yii的整体设计用起来真是舒服,本身基于组件的框架使其具有极高的定制性,就像楼上所说的,有很多功能你觉得不好纳尼完全可以不用,有很多替代方案,Yii只是给你多了一个选择,如果你觉得好像没什么替代方案只能说明对框架不够熟悉,个人感觉Yii还是值得钻研一下的
------解决方案--------------------
yii对初学者来说确实有点复杂,不过用时间久了就能体会到好处了,它确实是个极优秀的框架。刚开始可能感觉不出来,等到后期维护的时候就能发觉,它真的是很方便,非常灵活,想怎么改就怎么改,哪怕需求变了,用它也可以快速完成。当然,前提是你得保证设计应该合理
------解决方案--------------------
1)文件结构凌乱。
既然是框架,却可以将action独立出来/protected/controllers/post/CreateAction.php。这样极容易让action与controller混乱。
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
解决方法:您的组织要求您更改 PIN 码解决方法:您的组织要求您更改 PIN 码Oct 04, 2023 pm 05:45 PM

“你的组织要求你更改PIN消息”将显示在登录屏幕上。当在使用基于组织的帐户设置的电脑上达到PIN过期限制时,就会发生这种情况,在该电脑上,他们可以控制个人设备。但是,如果您使用个人帐户设置了Windows,则理想情况下不应显示错误消息。虽然情况并非总是如此。大多数遇到错误的用户使用个人帐户报告。为什么我的组织要求我在Windows11上更改我的PIN?可能是您的帐户与组织相关联,您的主要方法应该是验证这一点。联系域管理员会有所帮助!此外,配置错误的本地策略设置或不正确的注册表项也可能导致错误。即

Windows 11 上调整窗口边框设置的方法:更改颜色和大小Windows 11 上调整窗口边框设置的方法:更改颜色和大小Sep 22, 2023 am 11:37 AM

Windows11将清新优雅的设计带到了最前沿;现代界面允许您个性化和更改最精细的细节,例如窗口边框。在本指南中,我们将讨论分步说明,以帮助您在Windows操作系统中创建反映您的风格的环境。如何更改窗口边框设置?按+打开“设置”应用。WindowsI转到个性化,然后单击颜色设置。颜色更改窗口边框设置窗口11“宽度=”643“高度=”500“>找到在标题栏和窗口边框上显示强调色选项,然后切换它旁边的开关。若要在“开始”菜单和任务栏上显示主题色,请打开“在开始”菜单和任务栏上显示主题

如何在 Windows 11 上更改标题栏颜色?如何在 Windows 11 上更改标题栏颜色?Sep 14, 2023 pm 03:33 PM

默认情况下,Windows11上的标题栏颜色取决于您选择的深色/浅色主题。但是,您可以将其更改为所需的任何颜色。在本指南中,我们将讨论三种方法的分步说明,以更改它并个性化您的桌面体验,使其具有视觉吸引力。是否可以更改活动和非活动窗口的标题栏颜色?是的,您可以使用“设置”应用更改活动窗口的标题栏颜色,也可以使用注册表编辑器更改非活动窗口的标题栏颜色。若要了解这些步骤,请转到下一部分。如何在Windows11中更改标题栏的颜色?1.使用“设置”应用按+打开设置窗口。WindowsI前往“个性化”,然

OOBELANGUAGE错误Windows 11 / 10修复中出现问题的问题OOBELANGUAGE错误Windows 11 / 10修复中出现问题的问题Jul 16, 2023 pm 03:29 PM

您是否在Windows安装程序页面上看到“出现问题”以及“OOBELANGUAGE”语句?Windows的安装有时会因此类错误而停止。OOBE表示开箱即用的体验。正如错误提示所表示的那样,这是与OOBE语言选择相关的问题。没有什么可担心的,你可以通过OOBE屏幕本身的漂亮注册表编辑来解决这个问题。快速修复–1.单击OOBE应用底部的“重试”按钮。这将继续进行该过程,而不会再打嗝。2.使用电源按钮强制关闭系统。系统重新启动后,OOBE应继续。3.断开系统与互联网的连接。在脱机模式下完成OOBE的所

Windows 11 上启用或禁用任务栏缩略图预览的方法Windows 11 上启用或禁用任务栏缩略图预览的方法Sep 15, 2023 pm 03:57 PM

任务栏缩略图可能很有趣,但它们也可能分散注意力或烦人。考虑到您将鼠标悬停在该区域的频率,您可能无意中关闭了重要窗口几次。另一个缺点是它使用更多的系统资源,因此,如果您一直在寻找一种提高资源效率的方法,我们将向您展示如何禁用它。不过,如果您的硬件规格可以处理它并且您喜欢预览版,则可以启用它。如何在Windows11中启用任务栏缩略图预览?1.使用“设置”应用点击键并单击设置。Windows单击系统,然后选择关于。点击高级系统设置。导航到“高级”选项卡,然后选择“性能”下的“设置”。在“视觉效果”选

Windows 11 上的显示缩放比例调整指南Windows 11 上的显示缩放比例调整指南Sep 19, 2023 pm 06:45 PM

在Windows11上的显示缩放方面,我们都有不同的偏好。有些人喜欢大图标,有些人喜欢小图标。但是,我们都同意拥有正确的缩放比例很重要。字体缩放不良或图像过度缩放可能是工作时真正的生产力杀手,因此您需要知道如何对其进行自定义以充分利用系统功能。自定义缩放的优点:对于难以阅读屏幕上的文本的人来说,这是一个有用的功能。它可以帮助您一次在屏幕上查看更多内容。您可以创建仅适用于某些监视器和应用程序的自定义扩展配置文件。可以帮助提高低端硬件的性能。它使您可以更好地控制屏幕上的内容。如何在Windows11

10种在 Windows 11 上调整亮度的方法10种在 Windows 11 上调整亮度的方法Dec 18, 2023 pm 02:21 PM

屏幕亮度是使用现代计算设备不可或缺的一部分,尤其是当您长时间注视屏幕时。它可以帮助您减轻眼睛疲劳,提高易读性,并轻松有效地查看内容。但是,根据您的设置,有时很难管理亮度,尤其是在具有新UI更改的Windows11上。如果您在调整亮度时遇到问题,以下是在Windows11上管理亮度的所有方法。如何在Windows11上更改亮度[10种方式解释]单显示器用户可以使用以下方法在Windows11上调整亮度。这包括使用单个显示器的台式机系统以及笔记本电脑。让我们开始吧。方法1:使用操作中心操作中心是访问

如何在Safari中关闭iPhone的隐私浏览身份验证?如何在Safari中关闭iPhone的隐私浏览身份验证?Nov 29, 2023 pm 11:21 PM

在iOS17中,Apple为其移动操作系统引入了几项新的隐私和安全功能,其中之一是能够要求对Safari中的隐私浏览选项卡进行二次身份验证。以下是它的工作原理以及如何将其关闭。在运行iOS17或iPadOS17的iPhone或iPad上,如果您在Safari浏览器中打开了任何“无痕浏览”标签页,然后退出会话或App,Apple的浏览器现在需要面容ID/触控ID认证或密码才能再次访问它们。换句话说,如果有人在解锁您的iPhone或iPad时拿到了它,他们仍然无法在不知道您的密码的情况下查看您的隐私

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),