1. 应用配置
在配置文件中,添加Service的配置信息。Service的配置非常简单,就只要配置Service类名称和文件名称的后缀名,以及Service存放的路径就OK了。
/**
* Service配置参数
* 1. 你可以配置service的路径和文件(类名称)的后缀名
* 2. 一般情况下您不需要改动此配置
*/
$InitPHP_conf['service']['service_postfix'] = 'Service'; //后缀
$InitPHP_conf['service']['path'] = 'library/service/'; //service路径
2. 创建一个TestService.php
在library/service/文件夹下创建/user/TestService.php类。
TestService:
/**
* 创建一个测试的Service
* @author zhuli
*/
class TestService extends Service {
public function getVal() {
echo "
This is TestService
";}
}
3. 控制器中调用Service
在Controller中通过InitPHP::getService方法调用Service,该方法实例化了TestService类并且是单例。
/**
* 入口Controller
* @author zhuli.zhul
*
*/
class indexController extends Controller {
public $initphp_list = array("get"); //Action白名单
public function before() {
echo "before
";
}
public function after() {
echo "after
";
}
/**
* 入口
*/
public function run() {
$this->getTestService()->getVal(); //调用TestService中的getVal方法
$this->view->display("hello"); //调用hello.htm模板,后缀名.htm不需要填写
}
/**
* get方法
*/
public function get() {
echo "THIS IS GET
";
}
/**
* 调用TestService
* @return TestService
*/
public function getTestService() {
return InitPHP::getService("Test", "user");
}
}
InitPHP框架提供了一个InitPHP::getService() 全局API函数,可以直接单例-实例化Service
接口有两个参数,第一个参数是Service的类名称,不需要带后缀'Service';第二个参数是文件夹路径,默认Service都是放在
lib/service/文件夹下的,也会碰到项目比较庞大,将Service类进行分类,比如分成User的类,那么文件夹目录
lib/service/user/
InitPHP::getService和InitPHP::getDao两个接口的用法类似。全局都可以使用。如果用户采用MVC模式,直接在Controller中直接导入Dao即可。