normal.php

normal.php有两个。一个在项目根目录下的Config中,另外一个在Application/web[应用名]/Config

项目根目录下的normal.php

  1. 'default_db' => [ //默认的数据库连接串
  2. 'driver' => 'MySql.MySql', //数据库驱动
  3. 'master' => [
  4. 'host' => 'localhost', //数据库主机
  5. 'username' => 'root', //数据库用户名
  6. 'password' =>'', //数据库密码
  7. 'dbname' => 'cmlphp', //数据库名
  8. 'charset' => 'utf8', //数据库编码
  9. 'tableprefix' => 'cml_', //数据表前缀
  10. 'pconnect' => false, //是否开启数据库长连接
  11. 'engine'=>''//数据库引擎
  12. ],
  13. 'slaves'=> [], //从库配置
  14. //查询数据缓存时间,表数据有变动会自动更新缓存。设置为0表示表数据没变动时缓存不过期。
  15. //这边设置为3600意思是即使表数据没变动也让缓存每3600s失效一次,这样可以让缓存空间更合理的利用.
  16. //如果不想启用缓存直接配置为false
  17. 'cache_expire' => 3600,
  18. ],
  19. // 缓存服务器的配置
  20. 'default_cache' => [
  21. 'on' => 0, //为1则启用,或者不启用
  22. 'driver' => 'Memcache',
  23. 'prefix' => 'd_c_57c17_',
  24. 'server' => [
  25. [
  26. 'host' => '127.0.0.1',
  27. 'port' => 11211
  28. ],
  29. //多台...
  30. ],
  31. ],
  32. 'lock_prefix' => 'd_l_57c17_', //加锁前缀

projxxx/Config/[cli/development/product]/normal.php中包含了开发会用到的常用配置,包换数据库连接串、缓存配置、锁配置等。

而在projxxx/Application/web/Config章节中我们说过。web应用中独立的配置存放在目录projxxx/Application/web/Config下。所以我们如果有一些应用特殊的配置只要配置在projxxx/Application/web/Config/normal.php中即可。建议是缓存、数据库连接等特殊的配置都配置在上层normal.php中,只有一些应用特殊的配置才配置在应用下的normal.php中

下面列出框架所有惯例配置,如有需要修改复制相应的值到normal.php中即可

  1. <?php
  2. /* * *********************************************************
  3. * [cmlphp] (C)2012 - 3000 http://cmlphp.com
  4. * @Author linhecheng<linhechengbush@live.com>
  5. * @Date: 14-2-21 下午2:23
  6. * @version @see \Cml\Cml::VERSION
  7. * cmlphp框架惯例配置文件
  8. * *********************************************************** */
  9. return [
  10. //调试模式 默认关闭
  11. 'debug' => false,
  12. 'db_fields_cache' => true, //在debug模式实时获取字段列表,线上模式是否开启数据库字段缓存到文件。自v2.6.3起。开启本功能主要用于获取主键缓存
  13. 'time_zone' => 'PRC', //时区
  14. //数据库配置
  15. 'default_db' => [
  16. 'driver' => 'Pdo', //数据库驱动
  17. 'master' => [
  18. 'host' => 'localhost', //数据库主机
  19. 'username' => 'root', //数据库用户名
  20. 'password' => '', //数据库密码
  21. 'dbname' => 'cmlphp', //数据库名
  22. 'charset' => 'utf8mb4', //数据库编码
  23. 'tableprefix' => 'sun_', //数据表前缀
  24. 'pconnect' => false, //是否开启数据库长连接
  25. 'engine' => ''//数据库引擎
  26. ],
  27. 'slaves'=>[],
  28. //查询数据缓存时间,表数据有变动会自动更新缓存。设置为0表示表数据没变动时缓存不过期。
  29. //这边设置为3600意思是即使表数据没变动也让缓存每3600s失效一次,这样可以让缓存空间更合理的利用.
  30. //如果不想启用缓存直接配置为false
  31. 'cache_expire' => 3600,
  32. //是否记录执行慢的sql语句。只针对mysql有效。这个不能长期开,只能要分析sql性能的时候比如只开个5会钟有一定的log后就应该关掉。默认为false。
  33. //为整形的时候则为执行时间大于这个时间的sql都记录到log下 比如配置为1则为执行超过1s的sql都记录到 notice.log里
  34. 'log_slow_sql' => false,
  35. ],
  36. /**
  37. 使用MongoDB
  38. 'db_mongo' => [
  39. 'driver' => 'MongoDB', //数据库驱动
  40. 'master' => [
  41. 'host' => 'localhost:27017',
  42. 'username' => '',
  43. 'password' => '',
  44. 'dbname' => 'test',
  45. //'replicaSet' => '' //replicaSet名称
  46. ],
  47. 'slaves'=>[],
  48. ],
  49. **/
  50. // 缓存服务器的配置
  51. 'default_cache' => [
  52. 'on' => 0, //为1则启用,或者不启用
  53. 'driver' => 'Memcache',
  54. 'prefix' => 'cml_',
  55. 'server' => [
  56. [
  57. 'host' => '127.0.0.1',
  58. 'port' => 11211,//必须是整形
  59. //'weight' => 100 //权重memcached扩展有效
  60. ],
  61. //多台...
  62. ],
  63. ],
  64. /**
  65. //文件缓存
  66. 'default_cache' => [
  67. 'on' => 0, //为1则启用,或者不启用
  68. 'driver' => 'File',
  69. 'prefix' => 'cml_'
  70. ],
  71. //apc缓存
  72. 'default_cache' => [
  73. 'on' => 0, //为1则启用,或者不启用
  74. 'driver' => 'Apc',
  75. 'prefix' => 'cml_'
  76. ],
  77. //Redis缓存
  78. 'default_cache' => [
  79. 'on' => 0, //为1则启用,或者不启用
  80. 'driver' => 'Redis',
  81. 'prefix' => 'cml_',
  82. 'server' => [
  83. [
  84. 'host' => '127.0.0.1',
  85. 'port' => 6379,
  86. //'pconnect' => false //默认使用长连接
  87. //'db' => 6
  88. //'password' => '123456' //没有密码的时候不要配置
  89. ],
  90. //多台...
  91. ],
  92. //'back' => [//当server中有机器挂掉且back有开启时。会自动使用back来替换挂掉的server方便处理异常情况
  93. // 'host' => '127.0.0.1',
  94. // 'port' => 6379
  95. //]
  96. ],
  97. */
  98. /*模板设置*/
  99. 'view_render_engine' => 'html',//默认的视图渲染引擎,html/excel/json/xml
  100. 'default_charset' => 'utf-8', // 默认输出编码
  101. 'http_cache_control' => 'private', // 网页缓存控制
  102. 'output_encode' => true, // 页面压缩输出
  103. /*Html引擎配置。只适用于html模板引擎*/
  104. 'html_theme' =>'', //默认只有单主题
  105. 'html_template_suffix' => '.html', // 默认模板文件后缀
  106. 'html_left_deper' => '{{', //模板左定界符
  107. 'html_right_deper' => '}}', //模板右定界符
  108. /*系统模板定义*/
  109. 'html_exception' => CML_CORE_PATH.'/Tpl/cmlException.tpl', // 默认成功跳转对应的模板文件
  110. '404_page' => CML_CORE_PATH.'/Tpl/404.tpl', // 404跳转页
  111. 'debug_page' => CML_CORE_PATH.'/Tpl/debug.tpl', // debug调试信息模板
  112. /* URL设置 */
  113. 'url_model' => 1, // URL访问模式,可选参数1、2、3,代表以下四种模式:
  114. // 1 (PATHINFO 模式显示index.php); 2 (PATHINFO 不显示index.php); 3 (兼容模式) 默认为PATHINFO 模式,提供最好的用户体验和SEO支持
  115. 'url_pathinfo_depr' => '/', // PATHINFO模式下,各参数之间的分割符号
  116. 'url_html_suffix' => '.html', // URL伪静态后缀设置
  117. 'url_default_action' => 'web/Default/index', //默认操作
  118. 'var_pathinfo' => 'r', // PATHINFO 兼容模式获取变量例如 ?r=/module/action/id/1中的s ,后面的分隔符/取决于url_pathinfo_depr
  119. //'static__path' => 'http://static.cml.com/', //模板替换的{{public}}静态地址(访问静态资源用) 默认为 入口文件所在目录
  120. /*安全过滤*/
  121. 'auth_key'=>'a5et3e41d', //Encry加密key
  122. 'check_csrf' => 1, //检查csrf跨站攻击 0、不检查,1、只检查post数据提交方式,2、get/post都检查 默认只检查post
  123. 'form_token'=> 0, //表单令牌 0不开启,1开启
  124. /*语言包设置*/
  125. 'lang' =>'zh-cn', //读取zh-cn.php文件
  126. /*cookie设置*/
  127. 'cookie_prefix'=> 'cml_', //cookie前缀
  128. 'cookie_expire' => 0, // Coodie有效期
  129. 'cookie_domain' => '', // Cookie有效域名
  130. 'cookie_path' => '/', // Cookie路径
  131. 'userauthid' => 'CmlUserAuth', //用户登录成功之后的cookie标识
  132. /*Session设置*/
  133. 'session_prefix' => 'cml_', //session前缀
  134. 'session_user' => 0, //SESSION保存位置自定义 0不开启、1开启
  135. 'session_user_loc' => 'db', //自定义保存SESSION的位置时 定义保存的位置 db、cache两种
  136. 'session_user_loc_table' => 'session', //自定义保存SESSION的保存位置设置为db时的表名
  137. 'session_user_loc_tableprefix' => 'cml_', //自定义保存SESSION的保存位置设置为db时的表前缀
  138. /**锁配置**/
  139. 'lock_prefix' => 'cml_',
  140. 'locker_use_cache' => 'default_cache', //上锁使用的缓存
  141. /**日志配置**/
  142. 'log_warn_log' => false, //警告级别的日志默认不记录
  143. 'log_prefix' => 'cml_log', //会显示到日志内容中,同时当以redis为驱动的时候会做为队列的前缀
  144. //Log类使用redis为驱动时使用的缓存配置key
  145. 'redis_log_use_cache' => 'default_cache',//只有在该缓存的驱动为redis的时候才有效,否则会报错
  146. /**队列配置**/
  147. //Redis队列使用的缓存
  148. 'redis_queue_use_cache' => 'default_cache',//只有在该缓存的驱动为redis的时候才有效,否则会报错
  149. /*系统路由-统一用小写url*/
  150. 'cmlframework_system_route' => [
  151. 'cmlframeworkstaticparse' => '\\Cml\\Tools\\StaticResource::parseResourceFile'
  152. ],
  153. 'static_file_version' => 'v1', //开发模式会自动在静态文件后加时间缀,实时过期,线上模板版本号固定,如有需要在这里改版本号强制过期
  154. /*php-console配置*/
  155. 'dump_use_php_console' => false, //开启本功能需要先安装php-console composer require php-console/php-console ~3.0
  156. 'php_console_password' => 'cmlphp_php_console_pw123456',
  157. /**
  158. * 是否开启全局紧急模式--慎用。主要用于在系统mysql负载过高(如遇到攻击)mysql压力过大。先将所有查询转移至缓存。消化压力高峰
  159. *
  160. * 开启时 mysql的查询缓存不会在数据变更时实时更新。
  161. * 所以如果要开启请确定开启后不会对业务造成影响。如:扣积分前的查询积分数,这种对数据实时要求高的,在开启本模式时要做下判断并屏蔽。
  162. */
  163. 'emergency_mode_not_real_time_refresh_mysql_query_cache' => false, //配置成int型则为缓存刷新周期。如配置成 300 则为数据变更时每五分钟更新一次mysql查询缓存
  164. 'var_page' => 'page', //分页时传递当前页数的变量名
  165. 'route_app_hierarchy' => 1, //路由找控制器的时候遍历应用目录的层级,默认为1
  166. ];

原文: http://doc.cmlphp.com/devintro/config/normal.html