InitPHP (A PHP Framework) 用户手册
第4章 4.3 Service服务层使用

详细说明:

API使用:

class testService extends Service {
	public function test() {
		$this->service->parse_data(); //使用Service的API函数
		$this->getTestaDao()->test();
	}
	/**
	 * @return testDao
	 */
	private function getTestDao() {
		return InitPHP::getDao('test', 'test');
	}
	/**
	 * @return testaDao
	 */
	private function getTestaDao() {
		return InitPHP::getDao('testa', 'test');
	}
}

应用配置:

/**
 * Service配置参数
 * 1. 你可以配置service的路径和文件(类名称)的后缀名
 * 2. 一般情况下您不需要改动此配置
 */
$InitPHP_conf['service']['service_postfix']  = 'Service'; //后缀
$InitPHP_conf['service']['path'] = 'library/service/'; //service路径

调用Service类:

/**
 * 【静态】获取Service-实例并且单例模式获取Service
 * 1.单例模式获取
 * 2.可以选定对应Service路径path
 * 3. service需要在配置文件中配置参数,$path对应service目录中的子目录
 * 全局使用方法:InitPHP::getService($servicename, $path = '') 
 * @param string $servicename 服务名称
 * @param string $path 路径
 * @return object
 */
public static function getService($servicename, $path = '') {
	global $InitPHP_conf;
	$path  = ($path == '') ? '' : $path . '/';
	$class = $servicename . $InitPHP_conf['service']['service_postfix'];
	$file  = rtrim($InitPHP_conf['service']['path'], '/') . '/' . $path . $class . '.php';
	if (!InitPHP::import($file)) return false;
	return InitPHP::loadclass($class);
}

class indexController extends Controller {
	
	public $initphp_list = array('test'); 
	
	public function run() {
		$this->view->set_tpl('test'); //设置一个test.htm的模板页面
		$this->view->display(); //模板显示
	}
	
	public function test() {
		echo 'index.php?c=index&a=test 才会执行';
		$code = $this->getLibrary('code');
		$code->getcode();
	}
	
	public function before() {
		echo '前置执行Action';
	}
	
	public function after() {
		echo '后置执行Action';
	}
	
	/**
	 * @return testService
	 */
	private function getTestService() {
		return InitPHP::getService('test','test'); //获取Service
	}

}