[請益] Codeigniter 有這種神奇的寫法嗎?

作者: newversion (海納百川)   2016-11-28 01:55:35
大家好,最近請一家外包商寫 php
他們使用 Codeigniter 這個 framwwork
本來,我們沒有限定使用framwwork (另外也聽過大名頂頂的mvc)
就讓他用囉~~~
不過,感覺廠商的基本工不太行,用 framwwork硬兜亂兜
例如:以下這種寫法
\application\modules\xxx\controllers\XXX.php
class XXX extends CI_Controller {
public function index(){
session_set_cookie_params (....) // 1
require_once(APPPATH.'libraries/YYYY.php'); //2
YYYY.php 是一個第三方套件,裡面有一些
變數 $aaa = ....;
function bbbb() {....}
還有些 if/else/while 等控制流程
裡面沒有 Class
這種寫法,是不是非常有問題啊!? 雖然小弟 CI零基礎,但 Google 一下
1.
CI 已經有
\application\config\config.php 的 $config['sess_****']
\system\libraries\Session\ 在專門處理session,怎麼還能有
session_set_cookie_params (),這不是唱雙簧嗎?
2.
我不懂MVC,但也粗知OOP .. Class裡面再去 include別的檔,感覺會出問題啊
不是應該把libraries/YYYY.php 弄成Class
再 $this->load->library('YYYY')
請賜教.. thx~~~
作者: dlikeayu (太陽拳vs野球拳)   2016-11-28 02:06:00
抱臉又笑又哭狀
作者: rickysu (Ricky)   2016-11-28 09:16:00
重點不在include方式,而是個library會有side effect當你include之後,你無法預期他會對整個狀態做了什麼改變很典型的就是include後自動設了一個top level變數如果剛好這個變數是你之前已經定義好的怎麼辦呢?
作者: MOONRAKER (㊣牛鶴鰻毛人)   2016-11-28 10:22:00
沒有class應該是放/helpers,他這個就叫土砲session也有很多奇怪的土砲法但是CI的session是用cookie模擬的,除非另外裝套件也許他計劃用php native session
作者: Kenqr (function(){})()   2016-11-28 10:55:00
CI3已經是用真的session了 除非他是CI2
作者: xdraculax (首席怪叔叔)   2016-11-28 11:58:00
從它 controller目錄位置看,既非ci3也非ci2,ci1我沒接觸不清楚,另還有基於ci開發的opencart之類的東西ci3 session才改為php原生,ci2之前是寫在cookie,自行存取原生session是很常見的,雖然它寫法不是很好就是了
作者: yzfr6 (扮關二哥!)   2016-11-28 13:51:00
MVC 跟 Codeigniter 應該不是同一個層級的東西
作者: mikejaffson (mike)   2016-12-01 12:30:00
使用CI不代表不能用原生寫法,只是一切還要遵循CI架構去寫,未來才好維護。原po的土砲寫法確實不太好就是推樓上,大部分的Web MVC 如CI我認為這比較像modal2而非真正的MVC
作者: MOONRAKER (㊣牛鶴鰻毛人)   2016-12-01 13:11:00
Model 2。modal是開起來按X才可以關的那種燈箱。
作者: mikejaffson (mike)   2016-12-01 13:11:00
更正 是model2,參考資料來源http://www.ithome.com.thttp://www.ithome.com.tw/node/77330小弟英文不太好,常常選錯字>///<

Links booklink

Contact Us: admin [ a t ] ucptt.com