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