国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁(yè) 後端開(kāi)發(fā) php教程 【Yii】剛接觸Yii談一下對(duì)Yii框架的看法和感受 (Yii 1.1.x),該怎么解決

【Yii】剛接觸Yii談一下對(duì)Yii框架的看法和感受 (Yii 1.1.x),該怎么解決

Jun 13, 2016 am 11:59 AM
action nbsp php yii

【Yii】剛接觸Yii談一下對(duì)Yii框架的看法和感受 (Yii 1.1.x)

本帖最后由 default7 于 2014-06-10 00:57:13 編輯 之所以想到去弄Yii,因?yàn)榭吹胶芏嗾衅窹HP都要求必須精通Yii框架。
首先的印象這個(gè)框架是中國(guó)人創(chuàng)始的,但是卻全都是英文的為主。這幾天看了一下Yii權(quán)威指南。
說(shuō)一下自己的初步感受(Yii?1.x):




1)文件結(jié)構(gòu)凌亂。
既然是框架,卻可以將action獨(dú)立出來(lái)/protected/controllers/post/CreateAction.php。這樣極容易讓action與controller混亂。




2)對(duì)視圖的控制欲太強(qiáng)烈,模板使用的是純PHP。難道你做程序員也非得去寫(xiě)前端?
一個(gè)網(wǎng)站項(xiàng)目,讓美工切出了HTML?DIV?CSS模板之后,又讓PHP程序員再把里面的HTML標(biāo)簽換成PHP標(biāo)簽再搞一趟?
Yii的CHtml讓很多人特別贊不絕口,但是他們似乎忽略了一個(gè)最核心的關(guān)鍵,網(wǎng)站網(wǎng)頁(yè)有功能沒(méi)賣(mài)相根本就會(huì)很慘,你不要指望訪客都會(huì)像程序員那種只喜歡方方框框沒(méi)有一張圖全都是表格一樣、對(duì)得工工整整的頁(yè)面。


要注意:網(wǎng)站網(wǎng)頁(yè)他不像軟件,軟件可能幾年十幾年都是做的功能改進(jìn),但網(wǎng)頁(yè),訪客喜歡新鮮感,界面視覺(jué),所以需要不斷的改界面,改UI。

是定期修改,三天一小改,一個(gè)月一大改,三個(gè)月重新改。界面需要經(jīng)常改。這樣的情況下,如果直接使用html原型來(lái)做模板,美工做好DIV之后就可以直接用,根本都不需要程序插手??墒侨绻昧薈Html這樣高度耦合的視圖(模板)寫(xiě)法,那么必須得多出一道工序,那就是還需要一個(gè)懂得Yii的程序員將美工已經(jīng)做好的DIV?HTML再轉(zhuǎn)成Yii視圖模板中的標(biāo)簽,這樣不是浪費(fèi)嗎?人力、時(shí)間、財(cái)力。與PHP的高效快速?背道而行?
實(shí)際上Yii的官網(wǎng)也是極其簡(jiǎn)陋的,蘋(píng)果為什么會(huì)成功,賣(mài)相是關(guān)鍵,現(xiàn)在這個(gè)時(shí)代,UI界面真的太重要了。





3)感覺(jué)各個(gè)之間耦合度太高了,猶如一門(mén)新的語(yǔ)言。
Yii入門(mén)門(mén)檻比其他的框架高很多。各個(gè)之間都是高度耦合,都是些配置一樣的設(shè)置,越是耦合越緊密,配置文件越是分散各個(gè)角落其實(shí)維護(hù)起來(lái)成本更高、時(shí)間更長(zhǎng)、維護(hù)效率更低(當(dāng)然,他可能運(yùn)行效率很快)。



Yii對(duì)我的吸引:
1)51job、智聯(lián)招聘上很多招PHP程序員的都要求需要精通Yii(其實(shí)看到那些要求我覺(jué)得很奇怪,描述上又要能夠獨(dú)立完成一整個(gè)項(xiàng)目又要精通Yii又要端精通DIV?CSS?UI,想讓別人一個(gè)人搞,有點(diǎn)不合實(shí)際,Yii適合大型項(xiàng)目,如果一個(gè)大型項(xiàng)目中又要讓程序員干Yii又要讓他去寫(xiě)DIV這樣不可笑嗎?)

2)網(wǎng)上很多次方充滿著對(duì)Yii的贊美、推薦,比如知乎上、搜索引擎中搜索MVC框架排名看到各大轉(zhuǎn)載的文章、PHP?MVC框架排名上,Yii都排名得很前,且很多神贊。



以上是我對(duì)Yii初步接觸的一些感受,寫(xiě)出來(lái)希望能夠一起探討,目的是能夠更快的掌握、領(lǐng)悟。by?default7#zbphp.com







------解決方案--------------------
歡迎了解?Yii2.0,你說(shuō)的絕大多數(shù)問(wèn)題在Yii?2.0?時(shí)代都有更好的實(shí)現(xiàn)了。
至于用PHP做模版,這個(gè)屬于仁者見(jiàn)仁智者見(jiàn)智的問(wèn)題。學(xué)會(huì)模版引擎跟學(xué)會(huì)PHP差不了多少。2.0原生支持smarty和twig
至于耦合度的問(wèn)題,只要你想,解耦根本不是問(wèn)題,Yii提供的是一站式解決方案,一個(gè)字,就是快,之后你想替換組件,改模版,加緩存,隨你便。2.0原生支持多種解耦,比如DI。
至于像新語(yǔ)言的問(wèn)題,因?yàn)閅ii大量使用了DSL的模式。這個(gè)模式是微軟發(fā)明的。為什么用,因?yàn)楹糜谩?br>至于混亂的問(wèn)題,你沒(méi)有學(xué)到ActiveRecord,沒(méi)用用到ActiveForm。這些東西的彼此搭配才是現(xiàn)代PHP框架的核心啊。這些特色的點(diǎn)你都沒(méi)有說(shuō)到,用好了效率灰常灰常高。Yii2.0新增了全新的查詢與表現(xiàn)分離的ActiveQuery以及更吊的多關(guān)系查詢,有空了解下。
除此之外的功能還有安全性設(shè)計(jì),GII代碼生成器,開(kāi)發(fā)者工具條,調(diào)試模式,Codeception調(diào)試器,F(xiàn)ixture數(shù)據(jù)定制器,Bootstrap擴(kuò)展等等等等不勝枚舉的特性,學(xué)習(xí)曲線本身不是問(wèn)題,這些特性你不用也沒(méi)關(guān)系,當(dāng)原生PHP一樣用也好用,但是學(xué)習(xí)曲線是和收益成正比的,用過(guò)你就放不下了。
功夫要下到,你不會(huì)不代表它不能,這么多企業(yè)用Yii,難道他們的CTO傻?
------解決方案--------------------
你這是只看到y(tǒng)ii的缺點(diǎn),沒(méi)看到y(tǒng)ii2的優(yōu)點(diǎn)。任何框架都會(huì)有缺點(diǎn)。
1、yii最主要的精華是OOP。
???????這個(gè)是yii框架的整個(gè)功能的所在,也是是公司招聘的主要原因
2、就像樓上所說(shuō)的yii提供了各種便捷的功能,所以開(kāi)發(fā)速度快。
3、文件結(jié)構(gòu)凌亂
???????這個(gè)完全是按照個(gè)人習(xí)慣來(lái)組織,你可以這樣寫(xiě)
protected
??????????actions
?????????????????post
?????????????????????????CreateAction.php
??????????????????????????ReadAction.php
???????????controllers
??????????????????PostController.php
4、至于表單問(wèn)題
???????這個(gè)要看個(gè)人需要,如果做的表單頁(yè)面是中規(guī)中矩的,可以使用ActiveForm。
???????當(dāng)然,你可以完全不用ActiveForm,自己寫(xiě)html來(lái)實(shí)現(xiàn),ActiveForm只是給你提供了一種方便。
?????????????????????????
------解決方案--------------------
沒(méi)用過(guò)?Yii,也沒(méi)打算用。表示沒(méi)有就業(yè)壓力
據(jù)說(shuō)?Yii2.0?這能工作于?php?5.4?及以上了
所以模板中的?
樓主對(duì)?Yii?模板的批評(píng),也就是對(duì)?Smarty?的批評(píng),也就是對(duì)所有使用模板引擎將業(yè)務(wù)邏輯與視圖分離的框架的批評(píng),也就是對(duì)?MVC?這種設(shè)計(jì)模式的批評(píng)
姑且言之,姑妄聽(tīng)之

如果要在模板中引入控制流,那么與其象?Smarty?自創(chuàng)一套模板語(yǔ)言,還真不如象?Yii?這樣直接使用?php?代碼
至少是學(xué)習(xí)難度下降了,何況學(xué)會(huì)了?php?,吃飯也總算有著落了

我倒是期望有這樣一個(gè)框架:他能將在?html?聲明為客戶端運(yùn)行的php代碼翻譯成?js?代碼。從而免去學(xué)?php?還要學(xué)習(xí)?js?的煩惱
------解決方案--------------------


個(gè)人認(rèn)為說(shuō)的沒(méi)任何道理,你說(shuō)的幾點(diǎn)只是框架提供的一個(gè)功能而已

1)文件結(jié)構(gòu)凌亂:框架有強(qiáng)制你把a(bǔ)ction單獨(dú)寫(xiě)出來(lái)么?完全可以寫(xiě)到?Controller
2)對(duì)視圖的控制欲太強(qiáng)烈:和第一條一樣,沒(méi)人強(qiáng)制你用上這個(gè)功能,我自己做表單看情況是否啟用ActiveForm,哪個(gè)方便用哪個(gè)

事實(shí)證明,正規(guī)的公司都是分工明確不會(huì)讓美工去干前端人員切片的活,甚至讓美工或前端去套程序,只有那些比較坑的網(wǎng)建公司、非正規(guī)公司才會(huì)這樣去做,出一個(gè)人的薪水干幾個(gè)工種的工作


框架只是一個(gè)提升工作效率的工具,看你怎么去用,不是讓你把所有內(nèi)置功能全部用上,不要被框架框住!



------解決方案--------------------
至于Chtml做表單ActiveForm,可用可不用。但是個(gè)人覺(jué)得yii最優(yōu)秀的莫過(guò)于OOP和MVC,還有它的靈魂:隨用隨取,而并不是運(yùn)行就把所有的類(lèi)加載進(jìn)來(lái),這也是其效率所在了!也是很多企業(yè)要求YII的原因了。
------解決方案--------------------
用Yii完成了2個(gè)項(xiàng)目了,正在做第三個(gè),這次這個(gè)項(xiàng)目相對(duì)比較大,功能也較多。
前兩個(gè)項(xiàng)目一次和別人合作,一次完全自己做的,自己做的一次是做一個(gè)票務(wù)系統(tǒng),因?yàn)檎w界面要求不高,我就沒(méi)有找前端,全部自己寫(xiě)了。
現(xiàn)在感覺(jué)Yii的整體設(shè)計(jì)用起來(lái)真是舒服,本身基于組件的框架使其具有極高的定制性,就像樓上所說(shuō)的,有很多功能你覺(jué)得不好納尼完全可以不用,有很多替代方案,Yii只是給你多了一個(gè)選擇,如果你覺(jué)得好像沒(méi)什么替代方案只能說(shuō)明對(duì)框架不夠熟悉,個(gè)人感覺(jué)Yii還是值得鉆研一下的
------解決方案--------------------
yii對(duì)初學(xué)者來(lái)說(shuō)確實(shí)有點(diǎn)復(fù)雜,不過(guò)用時(shí)間久了就能體會(huì)到好處了,它確實(shí)是個(gè)極優(yōu)秀的框架。剛開(kāi)始可能感覺(jué)不出來(lái),等到后期維護(hù)的時(shí)候就能發(fā)覺(jué),它真的是很方便,非常靈活,想怎么改就怎么改,哪怕需求變了,用它也可以快速完成。當(dāng)然,前提是你得保證設(shè)計(jì)應(yīng)該合理
------解決方案--------------------
1)文件結(jié)構(gòu)凌亂。
既然是框架,卻可以將action獨(dú)立出來(lái)/protected/controllers/post/CreateAction.php。這樣極容易讓action與controller混亂。
本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門(mén)話題

如何使用PHP退出功能? 如何使用PHP退出功能? Jul 03, 2025 am 02:15 AM

exit()是PHP中用於立即終止腳本執(zhí)行的函數(shù),常見(jiàn)用途包括:1.在檢測(cè)到異常情況時(shí)提前終止腳本,如文件不存在或驗(yàn)證失敗;2.調(diào)試時(shí)輸出中間結(jié)果並停止執(zhí)行;3.結(jié)合header()重定向後調(diào)用exit()防止後續(xù)代碼執(zhí)行;此外,exit()可接受字符串參數(shù)作為輸出內(nèi)容或整數(shù)作為狀態(tài)碼,其別名為die()。

將語(yǔ)義結(jié)構(gòu)應(yīng)用於html的文章,部分和旁邊 將語(yǔ)義結(jié)構(gòu)應(yīng)用於html的文章,部分和旁邊 Jul 05, 2025 am 02:03 AM

在HTML中合理使用語(yǔ)義化標(biāo)籤能提升頁(yè)面結(jié)構(gòu)清晰度、可訪問(wèn)性和SEO效果。 1.用於獨(dú)立內(nèi)容區(qū)塊,如博客文章或評(píng)論,需保持自包含性;2.用於歸類(lèi)相關(guān)內(nèi)容,通常包含標(biāo)題,適用於頁(yè)面不同模塊;3.用於與主內(nèi)容相關(guān)但非核心的輔助信息,如側(cè)邊欄推薦或作者簡(jiǎn)介。實(shí)際開(kāi)發(fā)中應(yīng)結(jié)合、等標(biāo)籤,避免過(guò)度嵌套,保持結(jié)構(gòu)簡(jiǎn)潔,並通過(guò)開(kāi)發(fā)者工具驗(yàn)證結(jié)構(gòu)合理性。

請(qǐng)求的操作需要高程窗戶 請(qǐng)求的操作需要高程窗戶 Jul 04, 2025 am 02:58 AM

遇到“此操作需要提升權(quán)限”提示時(shí),說(shuō)明你需要管理員權(quán)限才能繼續(xù)。解決方法包括:1.右鍵選擇“以管理員身份運(yùn)行”程序或設(shè)置快捷方式始終以管理員身份運(yùn)行;2.檢查當(dāng)前賬戶是否為管理員賬戶,若不是則切換或請(qǐng)求管理員協(xié)助;3.用管理員權(quán)限打開(kāi)命令提示符或PowerShell執(zhí)行相關(guān)命令;4.在必要時(shí)通過(guò)獲取文件所有權(quán)或修改註冊(cè)表等手段繞過(guò)限制,但此類(lèi)操作需謹(jǐn)慎並充分了解風(fēng)險(xiǎn)。確認(rèn)權(quán)限身份並嘗試上述方法通??山鉀Q問(wèn)題。

如何在PHP中牢固地處理文件上傳? 如何在PHP中牢固地處理文件上傳? Jul 08, 2025 am 02:37 AM

要安全處理PHP文件上傳需驗(yàn)證來(lái)源與類(lèi)型、控製文件名與路徑、設(shè)置服務(wù)器限制並二次處理媒體文件。 1.驗(yàn)證上傳來(lái)源通過(guò)token防止CSRF並通過(guò)finfo_file檢測(cè)真實(shí)MIME類(lèi)型使用白名單控制;2.重命名文件為隨機(jī)字符串並根據(jù)檢測(cè)類(lèi)型決定擴(kuò)展名存儲(chǔ)至非Web目錄;3.PHP配置限制上傳大小及臨時(shí)目錄Nginx/Apache禁止訪問(wèn)上傳目錄;4.GD庫(kù)重新保存圖片清除潛在惡意數(shù)據(jù)。

您如何按值與PHP中的參考傳遞變量? 您如何按值與PHP中的參考傳遞變量? Jul 08, 2025 am 02:42 AM

InPHP,variablesarepassedbyvaluebydefault,meaningfunctionsorassignmentsreceiveacopyofthedata,whilepassingbyreferenceallowsmodificationstoaffecttheoriginalvariable.1.Whenpassingbyvalue,changestothecopydonotimpacttheoriginal,asshownwhenassigning$b=$aorp

PHP標(biāo)頭位置AJAX調(diào)用不起作用 PHP標(biāo)頭位置AJAX調(diào)用不起作用 Jul 10, 2025 pm 01:46 PM

AJAX請(qǐng)求中header('Location:...')無(wú)效的原因是瀏覽器不會(huì)自動(dòng)執(zhí)行頁(yè)面跳轉(zhuǎn)。因?yàn)樵贏JAX請(qǐng)求中,服務(wù)器返回的302狀態(tài)碼和Location頭信息會(huì)被作為響應(yīng)數(shù)據(jù)處理,而不是觸發(fā)跳轉(zhuǎn)行為。解決方法有:1.在PHP中返回JSON數(shù)據(jù)包含跳轉(zhuǎn)URL;2.在前端AJAX回調(diào)中檢查redirect字段並用window.location.href手動(dòng)跳轉(zhuǎn);3.確保PHP輸出僅為JSON避免解析失??;4.處理跨域問(wèn)題需設(shè)置合適的CORS頭;5.防止緩存干擾可加時(shí)間戳或設(shè)置cache:f

PHP找到了最後一次發(fā)生的位置 PHP找到了最後一次發(fā)生的位置 Jul 09, 2025 am 02:49 AM

在PHP中查找子字符串最後一次出現(xiàn)的位置,最直接的方法是使用strrpos()函數(shù)。 1.使用strrpos()函數(shù)可直接獲取子字符串在主字符串中最後一次出現(xiàn)的起始位置索引,若未找到則返回false,語(yǔ)法為strrpos($haystack,$needle,$offset=0)。 2.若需忽略大小寫(xiě),可使用strripos()函數(shù)實(shí)現(xiàn)不區(qū)分大小寫(xiě)的查找。 3.對(duì)於中文等多字節(jié)字符,應(yīng)使用mbstring擴(kuò)展中的mb_strrpos()函數(shù)以確保返回字符位置而非字節(jié)位置。 4.注意strrpos()返回f

發(fā)電機(jī)如何在PHP中工作? 發(fā)電機(jī)如何在PHP中工作? Jul 11, 2025 am 03:12 AM

AgeneratorinPHPisamemory-efficientwaytoiterateoverlargedatasetsbyyieldingvaluesoneatatimeinsteadofreturningthemallatonce.1.Generatorsusetheyieldkeywordtoproducevaluesondemand,reducingmemoryusage.2.Theyareusefulforhandlingbigloops,readinglargefiles,or

See all articles