国产InitPHP框架系列 - InitPHP框架搭建高可用WEB应用04:服务层Service使用

原创 2014年01月23日 13:49:41

InitPHP框架是一款轻量级PHP开源框架,框架文档和下载地址:http://initphp.com

Service层说明

1. Service来源

Service层的设计来源于Java。Java有很多优秀的设计思想,但是很多东西并不一定适合php,因为两种语言的性质不一样。

Service层是业务逻辑层,一般情况下你可以理解为MVC中的Model层,只是传统的Model层有数据库操作,而Service层只专注于业务处理。


2. 简单说明

  1.     如果你的项目要采用InitPHP的分层体系方式,那么Service这一业务逻辑层是必须的,而且是应用程序核心的部分。
  2. 如果采用MVC模式,那么可以放弃此层应用,直接在Controller调用Dao层就可以了。
  3.   Service层是介于Controller和Dao中间层,主要的职责是处理业务的逻辑,封装成Controller可以通用调用的服务接口。例如:用户注册接口,userRegister()
  4.  因为各种项目和开发的不同,Service层在Mvc的时候不需要存在,所以InitPHP框架内置的Service API只有两个接口,也是Service比较常用的两个接口。
  5.  所有的Service需要继承InitPHP框架提供的框架基类Service
  6. 建议使用Zend Studio工具开发,有代码提示功能,能将所有的API提示显示,方便您的开发速度

Service层使用

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:

<?php
/**
 * 创建一个测试的Service
 * @author zhuli
 */
class TestService extends Service {
	
	public function getVal() {
		echo "<h1>This is TestService</h1>";
	}
}

3. 控制器中调用Service

在Controller中通过InitPHP::getService方法调用Service,该方法实例化了TestService类并且是单例。

<?php
/**
 * 入口Controller
 * @author zhuli.zhul
 *
 */
class indexController extends Controller {
	
	public $initphp_list = array("get"); //Action白名单
	
	public function before() {
		echo "before<br/>";
	}
	
	public function after() {
		echo "after<br/>";
	}
	
	/**
	 * 入口
	 */
	public function run() {
		$this->getTestService()->getVal(); //调用TestService中的getVal方法
		$this->view->display("hello"); //调用hello.htm模板,后缀名.htm不需要填写
	}
	
	/**
	 * get方法
	 */
	public function get() {
		echo "THIS IS GET<br/>";
	}
	
	/**
	 * 调用TestService
	 * @return TestService
	 */
	public function getTestService() {
		return InitPHP::getService("Test", "user");
	}
}
  1. InitPHP框架提供了一个InitPHP::getService() 全局API函数,可以直接单例-实例化Service
  2. 接口有两个参数,第一个参数是Service的类名称,不需要带后缀'Service';第二个参数是文件夹路径,默认Service都是放在    lib/service/文件夹下的,也会碰到项目比较庞大,将Service类进行分类,比如分成User的类,那么文件夹目录    lib/service/user/
  3. InitPHP::getService和InitPHP::getDao两个接口的用法类似。全局都可以使用。如果用户采用MVC模式,直接在Controller中直接导入Dao即可。


版权声明:本文为博主原创文章,未经博主允许不得转载。

国产InitPHP框架系列 - InitPHP框架搭建高可用WEB应用01:创建项目

InitPHP框架是一款轻量级PHP开源框架,框架文档和下载地址:http://initphp.com 创建Hello World项目 1. 下载框架 选择最新的版本,进行下载。框架下载地址:h...
  • initphp
  • initphp
  • 2013年12月15日 15:23
  • 9524

国产InitPHP框架系列 - InitPHP3.8 发布

InitPHP框架已经不知不觉写了三年了。发现今年自己也是蛮拼的,发了四次版本,框架也是越来越完善了。 做PHP框架的门槛其实不高,但是要去想透里面的每一个细节还是需要花很多心思的。 最近两年虽然一直...
  • initphp
  • initphp
  • 2014年11月25日 16:55
  • 5156

国产InitPHP框架系列 - InitPHP框架搭建高可用WEB应用05:数据层Dao使用

InitPHP框架是一款轻量级PHP开源框架,框架文档和下载地址:http://initphp.com Dao层说明 Dao层通俗的讲就是数据层。再简单的讲,Dao层主要是用于写sql语句的。可能...
  • initphp
  • initphp
  • 2014年11月29日 09:39
  • 5049

国产InitPHP框架系列 - InitPHP框架搭建高可用WEB应用03:模板View使用

InitPHP框架是一款轻量级PHP开源框架,框架文档和下载地址:http://initphp.com 模板基本使用 1. 模板配置 我们继续之前几篇文章的代码设计。这一节主要讲如何来使用Ini...
  • initphp
  • initphp
  • 2013年12月29日 14:25
  • 6137

国产InitPHP框架系列 - InitPHP框架搭建高可用WEB应用02:深入控制器应用

InitPHP框架是一款轻量级PHP开源框架,框架文档和下载地址:http://initphp.com 控制器Controller基本使用 1. 配置参数 我们在上一节的时候,已经看到过配置信...
  • initphp
  • initphp
  • 2013年12月15日 17:23
  • 5528

InitPHP框架搭建高可用WEB应用01

InitPHP框架搭建高可用WEB应用01:创建项目 来源:CSDN   时间:2014-03-28 11:22:32   阅读数:157773 分享到:8 [导读] InitPHP框架是一...
  • LanSeTianKong12
  • LanSeTianKong12
  • 2015年07月14日 13:48
  • 446

InitPHP框架

InitPHP框架是一款轻量级PHP开源框架,框架文档和下载地址:http://initphp.com   创建Hello World项目 1. 下载框架 选择最新的版本,进行...
  • LanSeTianKong12
  • LanSeTianKong12
  • 2015年06月08日 13:27
  • 623

国产InitPHP框架系列 - InitPHP3.2.1 发布

InitPHP3.2.1 发布 修复: 1. 兼容老版本引起的一个BUG 2. 工具库中监控SQL语句无法运行的BUG 下载地址:http://initphp.com/down.php?id=1 ...
  • initphp
  • initphp
  • 2012年08月30日 09:40
  • 771

一个典型Web应用的中间部分是业务层或服务层

一个典型Web应用的中间部分是业务层或服务层。从编码的视角来看,这层是最容易被忽视的。我们往往在用户界面层或持久层周围看到这些业务处理的代码,这其实是不正确的。因为它会造成程序代码的高耦合,这样一来,...
  • gotohbu
  • gotohbu
  • 2009年07月01日 15:05
  • 2089

MVC中的service层是干嘛的?

概述mvc框架由model,view,controller组成,执行流程一般是:在controller访问model获取数据,通过view渲染页面。mvc模式是web开发中的基础模式,采用的是分层设计...
  • Time888
  • Time888
  • 2017年05月30日 21:32
  • 2013
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:国产InitPHP框架系列 - InitPHP框架搭建高可用WEB应用04:服务层Service使用
举报原因:
原因补充:

(最多只允许输入30个字)