[请益] 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