InitPHP (A PHP Framework) 用户手册
第3章 3.1 框架配置
框架配置说明:
基本配置:

基本配置提供最基本的几个配置参数

/* 框架全局配置变量 */
$InitPHP_conf = array();
/**
 * 站点URL配置
 * 必选参数
 */
$InitPHP_conf['url'] = 'http://127.0.0.1/initphp_3.0/demo/'; 
/**
 * 是否开启调试
 */
$InitPHP_conf['is_debug'] = true; //开启-正式上线请关闭
/**
 * 路由访问方式
 * 1. 如果为true 则开启path访问方式,否则关闭
 * 2. default:index.php?m=user&c=index&a=run
 * 3. rewrite:/user/index/run/?id=100
 * 4. path: /user/index/run/id/100
 * 5. html: user-index-run.htm?uid=100
 * 6. 开启PATH需要开启APACHE的rewrite模块,详细使用会在文档中体现
 */
$InitPHP_conf['isuri'] = 'default'; 
/**
 * 是否开启输出自动过滤
 * 1. 对多人合作,安全性可控比较差的项目建议开启
 * 2. 对HTML进行转义,可以放置XSS攻击
 * 3. 如果不开启,则提供InitPHP::output()函数来过滤
 */
$InitPHP_conf['isviewfilter'] = false; 
/**
 * Error模板
 * 如果使用工具库中的error,需要配置
 */
$InitPHP_conf['error']['template'] = 'library/helper/error.tpl.php';
控制器Controller配置:
/**
 * Controller控制器配置参数
 * 1. 你可以配置控制器默认的文件夹,默认的后缀,Action默认后缀,默认执行的Action和Controller
 * 2. 一般情况下,你可以不需要修改该配置参数
 * 3. $InitPHP_conf['ismodule']参数,当你的项目比较大的时候,可以选用module方式,
 * 开启module后,你的URL种需要带m的参数,原始:index.php?c=index&a=run, 加module:
 * index.php?m=user&c=index&a=run , module就是$InitPHP_conf['controller']['path']目录下的
 * 一个文件夹名称,请用小写文件夹名称
 */
$InitPHP_conf['ismodule'] = false; //开启module方式
$InitPHP_conf['controller']['path']                  = 'web/controller/'; 
$InitPHP_conf['controller']['controller_postfix']    = 'Controller'; //控制器文件后缀名
$InitPHP_conf['controller']['action_postfix']        = ''; //Action函数名称后缀
$InitPHP_conf['controller']['default_controller']    = 'index'; //默认执行的控制器名称
$InitPHP_conf['controller']['default_action']        = 'run'; //默认执行的Action函数
$InitPHP_conf['controller']['module_list']           = array('user', 'index'); //module白名单
$InitPHP_conf['controller']['default_module']        = 'index'; //默认执行module
$InitPHP_conf['controller']['default_before_action'] = 'before'; //默认前置的ACTION名称  
$InitPHP_conf['controller']['default_after_action']  = 'after'; //默认后置ACTION名称
视图模板View配置:

一般情况下不需要修改模板配置文件,但是也可以根据自己的喜好自定义模板的使用方式

/**
 * 模板配置
 * 1. 可以自定义模板的文件夹,编译模板路径,模板文件后缀名称,编译模板后缀名称
 * 是否编译,模板的驱动和模板的主题
 * 2. 一般情况下,默认配置是最优的配置方案,你可以不选择修改模板文件参数
 */
$InitPHP_conf['template']['template_path']      = 'web/template'; //模板路径
$InitPHP_conf['template']['template_c_path']    = 'data/template_c'; //模板编译路径 
$InitPHP_conf['template']['template_type']      = 'htm'; //模板文件类型  
$InitPHP_conf['template']['template_c_type']    = 'tpl.php';//模板编译文件类型 
$InitPHP_conf['template']['template_tag_left']  = '<!--{';//模板左标签
$InitPHP_conf['template']['template_tag_right'] = '}-->';//模板右标签
$InitPHP_conf['template']['is_compile']         = true;//模板每次编译-系统上线后可以关闭此功能
$InitPHP_conf['template']['driver']             = 'simple'; //不同的模板驱动编译
$InitPHP_conf['template']['theme']              = ''; //模板主题
Service配置:
/**
 * Service配置参数
 * 1. 你可以配置service的路径和文件(类名称)的后缀名
 * 2. 一般情况下您不需要改动此配置
 */
$InitPHP_conf['service']['service_postfix']  = 'Service'; //后缀
$InitPHP_conf['service']['path'] = 'library/service/'; //service路径
数据库Dao层配置:
/**
 * 数据库配置
 * 1. 根据项目的数据库情况配置
 * 2. 支持单数据库服务器,读写分离,随机分布的方式
 * 3. 可以根据$InitPHP_conf['db']['default']['db_type'] 选择mysql mysqli(暂时支持这两种)
 * 4. 支持多库配置 $InitPHP_conf['db']['default']
 * 5. 详细见文档
 */
$InitPHP_conf['db']['driver']	= 'mysqli'; //选择不同的数据库DB 引擎,一般默认mysqli,或者mysqls
//default数据库配置 一般使用中 $this->init_db('default')-> 或者 $this->init_db()-> 为默认的模型
$InitPHP_conf['db']['default']['db_type']					= 0; //0-单个服务器,1-读写分离,2-随机
$InitPHP_conf['db']['default'][0]['host']                  	= '127.0.0.1'; //主机
$InitPHP_conf['db']['default'][0]['username']              	= 'root'; //数据库用户名
$InitPHP_conf['db']['default'][0]['password']              	= ''; //数据库密码
$InitPHP_conf['db']['default'][0]['database']              	= 't1'; //数据库
$InitPHP_conf['db']['default'][0]['charset']               	= 'utf8'; //数据库编码   
$InitPHP_conf['db']['default'][0]['pconnect']              	= 0; //是否持久链接


//test数据库配置 使用:$this->init_db('test')->  支持读写分离,随机选择(有两个数据库)
$InitPHP_conf['db']['test']['db_type']						= 2; //0-单个服务器,1-读写分离,2-随机
$InitPHP_conf['db']['test'][0]['host']                  	= '127.0.0.1'; //主机
$InitPHP_conf['db']['test'][0]['username']              	= 'root'; //数据库用户名
$InitPHP_conf['db']['test'][0]['password']              	= ''; //数据库密码
$InitPHP_conf['db']['test'][0]['database']              	= 't1'; //数据库
$InitPHP_conf['db']['test'][0]['charset']               	= 'utf8'; //数据库编码   
$InitPHP_conf['db']['test'][0]['pconnect']              	= 0; //是否持久链接

$InitPHP_conf['db']['test'][1]['host']                  	= '127.0.0.1'; //主机
$InitPHP_conf['db']['test'][1]['username']              	= 'root'; //数据库用户名
$InitPHP_conf['db']['test'][1]['password']              	= ''; //数据库密码
$InitPHP_conf['db']['test'][1]['database']              	= 't1'; //数据库
$InitPHP_conf['db']['test'][1]['charset']               	= 'utf8'; //数据库编码   
$InitPHP_conf['db']['test'][1]['pconnect']              	= 0; //是否持久链接
/**
 * Dao配置参数
 * 1. 你可以配置Dao的路径和文件(类名称)的后缀名
 * 2. 一般情况下您不需要改动此配置
 */
$InitPHP_conf['dao']['dao_postfix']  = 'Dao'; //后缀
$InitPHP_conf['dao']['path']  = 'library/dao/'; //后缀
Hook配置:
/**
 * 插件Hook配置
 * 1. 如果你需要使用InitPHP::hook() 钩子函数来实现插件功能
 * 2. 详细查看钩子的使用方法
 */
$InitPHP_conf['hook']['path']          = 'library/hook'; //插件文件夹目录, 不需要加'/'
$InitPHP_conf['hook']['class_postfix'] = 'Hook'; //默认插件类名后缀
$InitPHP_conf['hook']['file_postfix']  = '.hook.php'; //默认插件文件名称
$InitPHP_conf['hook']['config']        = 'hook.conf.php'; //配置文件
单元测试配置:
/**
 * 单元测试
 * 1. 使用工具库中的单元测试需要配置
 */
$InitPHP_conf['unittesting']['test_postfix'] = $InitPHP_conf['service']['service_postfix'] . 'Test';
$InitPHP_conf['unittesting']['path'] = 'library/test/'; 
Nosql配置:
/**
 * 缓存配置参数
 * 1. 您如果使用缓存 需要配置memcache的服务器和文件缓存的缓存路径 
 * 2. memcache可以配置分布式服务器,根据$InitPHP_conf['memcache'][0]的KEY值去进行添加
 * 3. 根据您的实际情况配置
 */
$InitPHP_conf['memcache'][0]   = array('127.0.0.1', '11211');  
$InitPHP_conf['cache']['filepath'] = 'data/filecache';   //文件缓存目录
/**
 * MongoDB配置,如果您使用了mongo,则需要配置
 */
$InitPHP_conf['mongo']['default']['server'] 	= '127.0.0.1';
$InitPHP_conf['mongo']['default']['port'] 		= '27017';
$InitPHP_conf['mongo']['default']['option'] 	= array('connect' => true);
$InitPHP_conf['mongo']['default']['db_name'] 	= 'test';
$InitPHP_conf['mongo']['default']['username'] 	= '';
$InitPHP_conf['mongo']['default']['password'] 	= '';
/**
 * Redis配置,如果您使用了redis,则需要配置
 */
$InitPHP_conf['redis']['default']['server'] 	= '127.0.0.1';
$InitPHP_conf['redis']['default']['port'] 		= '6379';
拦截器配置:
/*********************************拦截器配置*****************************************/
/**
 * 拦截器配置
 * rule是拦截器的配置规则,是一个数组的形式。
 * 你可以定义多个拦截器。
 */
$InitPHP_conf['interceptor']['path'] = "web/interceptor"; //拦截器文件夹目录
$InitPHP_conf['interceptor']['postfix'] = "Interceptor"; //拦截器类和文件的后缀名
$InitPHP_conf['interceptor']['rule'] = array( //拦截器规则
	'test' => array(
		'file' => 'test', //文件名称 例如:testInterceptor,则file值为:test
		'regular' =>  array(
			'm' => '*', 
			'c' => '*', 
			'a' => '*'
		)//正则表达式
	)
);
RPC调用配置:
/*********************************RPC服务*****************************************/
/**
 * RPC配置
 * RPC分两种,服务提供者-provider和服务使用者-customer
 */
$InitPHP_conf['provider']['allow'] = array(
	"user"
); //允许访问的Service,例如userService,则是user。如果带path,则xxx/user
$InitPHP_conf['provider']['allow_ip'] = array(
	"127.0.0.2", "192.168.*.*", "127.0.0.*"
); //允许内部调用的IP地址,如果需要填写ip段,则可以通过 192.168.*.*,使用*来匹配
$InitPHP_conf['customer'] = array(
	"user" => array( //可以进行分组
		"host" => array("localhost"), //服务提供者所在的服务器的IP地址,一般是内网IP地址。可以填写多台服务器
		"file" => "/initphp/branches/initphp_3.8/demo/www/rpc.php" //访问服务的入口文件,例如加上IP地址:http://localhost/rpc.php
	)
);