基於ci框架版本3.1.51.在專案核心core目錄下新建自己的loader.php檔案並繼承ci_loader
<?php
/** * created by phpstorm.
* user: wang.liangliang
* date: 2017/7/7
* time: 13:07
*/class
my_loader
extends
ci_loader
/*** service loader
** this function lets users load and instantiate classes.
**@param string the name of the class
*@param mixed the optional parameters
*@param string an optional object name
*@return object
*/public
function
service
($service = '', $params = null, $object_name = null)
else
if (is_array($service))
return
$this;
}$path = '';
// is the service in a sub-folder? if so, parse out the filename and path.
if (($last_slash = strrpos($service, directory_separator)) !== false)
if (empty($object_name))
$object_name = strtolower($object_name);
if (in_array($object_name, $this->_ci_services, true))
$ci = &get_instance();
if (isset($ci->$object_name))
//load my_service
$class = config_item('subclass_prefix') . 'service';
if (!class_exists($class, false)) }}
$service = ucfirst($service);
if (!class_exists($service, false))
include_once($service_path . directory_separator . $path . $service . '.php');
$ci = &get_instance();
if ($params !== null) else
$this->_ci_services = $object_name;
if (!class_exists($service, false))
break;}}
return
$this;}}
2.在同級目錄下建立my_service.php.**如下:
<?php
/** * created by phpstorm.
* user: wang.liangliang
* date: 2017/7/7
* time: 11:59
*/class
my_service
function
__get
($key)
}
3.同樣在專案根目錄下建立檔案service.並在service層下建立檔案demo.php 並繼承my_service
<?php
/** * created by phpstorm.
* user: wang.liangliang
* date: 2017/7/7
* time: 13:58
*/class
demo
extends
my_service
public
function
test
($name)
}
4.編寫test.php controller 測試. 在構造器中load 剛才寫的demo service
<?php
/** * created by phpstorm.
* user: wang.liangliang
* date: 2017/7/7
* time: 13:56
*/class
test
extends
ci_controller
public
function
getname
()
}
5 model層測試方法.
如何讓CI框架支援service層
本文主要介紹了在controller和model中加乙個業務層service,由它來負責業務邏輯,封裝好的呼叫介面可以被controller復用,提高了通用的業務邏輯的復用性,設計到具體業務實現會呼叫model的介面。大家知道codeigniter框架式mvc分層的,通常大家把業務邏輯寫到contr...
「讓CI框架支援service層」的那些問題
自己寫了個demo,用php的ci框架,好長時間沒搞了,都忘記了,想新增service層的時候,發現現有網上的code有點問題。其實都不是大問題,注意一下就好了 抄了部分 連線如下 搜尋的結果 都或多或少的不完成 然後整合上述 解決部分問題 注意問題,如下 1,配置 config subclass ...
controller層和service層的作用
1.在controller和service裡都寫那些 controller,從字面上理解是控制器,所以它是負責業務排程的,所以在這一層應寫一些業務的排程 而具體的業務處理應放在service中去寫,而且service不單純是對於dao的增刪改查的呼叫,service是業務層,所以應該更切近於具體業務...