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

作者: tkdmaf (皮皮快跑)   2016-11-28 09:10:14
※ 引述《newversion (海納百川)》之銘言:
: 大家好,最近請一家外包商寫 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~~~
本來呢……第三方套件或函式庫來說。
class是放在libraries這個目錄下
(標準載入$this->load->library('xxxx'))
而函式則是放在helper。
(標準載入$this->load->helper('xxxx'))
(全域載入:去改autoload.php,不過全域是每一次都會載入,比較耗資源)
不過通常都會是封裝好的類別或是功能,也不會節外生技還會有另外指派變數這種事。
你那個狀況很明顯,就是跟風要用一套framework。
但是一方面不把說明書看完。(其實我也是個不愛看完說明書的人。)
再一方面就是他們對物件導向架構可以說就是完全性的知識不足。
CI本身提供及處理的東西已經很多了。
雖然他是個輕量而且在很多方面仍顯不足的框架。
但卻也是個高彈性的框架。
只是………
高彈性不代表就可以亂寫。
一般CI的功能性不足要不是自己寫library去補足。
要不就是自己考量好封裝而去改寫原本的功能(用 MY_xxx extends CI_xxx)
看過好幾次用framework卻還是用初學者的從頭到尾式寫法。
也不會去理解什麼是單一職責的就一股惱把全部的東西通通塞進一個CI method之中。
這基本上不叫做使用CI而是亂用CI了。
我敢肯定,未來他們的code要維護、擴充、處理bug,都不會是容易的一件事。
這些,你還是跟你的廠商好好溝通一下。
請他們的工程師,去把說明書全部看完。
如果工程師說看不懂英文~~~~~~~~~~~~~~
先叫他們去死一死,然後再去翻繁體中文的說明書給他們看。
(這個隨便google都找得到)
作者: MOONRAKER (㊣牛鶴鰻毛人)   2016-11-28 10:22:00
還有official的喔
作者: blakechiang (Blake)   2016-11-28 10:45:00
繁體中文說明書要翻給誰看 都死光了啊
作者: tkdmaf (皮皮快跑)   2016-11-28 11:12:00
死光了就天下太平了(誤)
作者: xdraculax (首席怪叔叔)   2016-11-28 12:29:00
這種應該是一套萬用系統用好幾年那種,也許原開發人早離職了

Links booklink

Contact Us: admin [ a t ] ucptt.com