database.php 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  1. <?php
  2. $default_host = '';
  3. $default_port = '';
  4. $default_db = '';
  5. $default_username = '';
  6. $default_password = '';
  7. $default_prefix = '';
  8. $default_slave_db = '';
  9. $default_slave_host = '';
  10. $default_slave_username = '';
  11. $default_slave_password = '';
  12. $default_slave_port = '';
  13. $redis_host = '127.0.0.1';
  14. $redis_password = NULL;
  15. $redis_port = '6379';
  16. $redis_database = '0';
  17. $redis_cache_database = '1';
  18. $mongo_host = '127.0.0.1';
  19. $mongo_username = '';
  20. $mongo_password = '';
  21. $mongo_port = '27017';
  22. $mongo_database = '';
  23. $db_conn_name = env('DB_CONNECTION', 'mysql');
  24. if (env('APP_Framework', false) != 'platform') {
  25. include dirname(dirname(dirname(__DIR__))) . '/data/config.php';
  26. } else {
  27. if (file_exists(base_path('database/config.php'))) {
  28. include base_path('database/config.php');
  29. }
  30. if (file_exists(base_path('database/redis.php'))) {
  31. include base_path('database/redis.php');
  32. if (!empty($redis)) {
  33. $redis_host = $redis['host'] ?: $redis_host;
  34. $redis_password = $redis['password'] ?: $redis_password;
  35. $redis_port = $redis['port'] ?: $redis_port;
  36. $redis_database = $redis['database'] ?: $redis_database;
  37. $redis_cache_database = $redis['cache_database'] ?: $redis_cache_database;
  38. }
  39. }
  40. }
  41. if (file_exists(base_path('database/mongoDB.php'))) {
  42. include base_path('database/mongoDB.php');
  43. if (!empty($mongoDB)) {
  44. $mongo_host = $mongoDB['host'] ?: $mongo_host;
  45. $mongo_username = $mongoDB['username'] ?: $mongo_username;
  46. $mongo_password = $mongoDB['password'] ?: $mongo_password;
  47. $mongo_port = $mongoDB['port'] ?: $mongo_port;
  48. $mongo_database = $mongoDB['database'] ?: $mongo_database;
  49. }
  50. }
  51. if (isset($config)) {
  52. if (isset($config['db']['master'])) {
  53. $default_host = $config['db']['master']['host'];
  54. $default_port = $config['db']['master']['port'];
  55. $default_db = $config['db']['master']['database'];
  56. $default_username = $config['db']['master']['username'];
  57. $default_password = $config['db']['master']['password'];
  58. $default_prefix = $config['db']['master']['tablepre'];
  59. if(isset($config['db']['slave'][1])){
  60. $default_slave_db = $config['db']['slave'][1]['database'];
  61. $default_slave_host = $config['db']['slave'][1]['host'];
  62. $default_slave_username = $config['db']['slave'][1]['username'];
  63. $default_slave_password = $config['db']['slave'][1]['password'];
  64. $default_slave_port = $config['db']['slave'][1]['port'];
  65. }
  66. } else {
  67. $default_host = $config['db']['host'];
  68. $default_port = $config['db']['port'];
  69. $default_db = $config['db']['database'];
  70. $default_username = $config['db']['username'];
  71. $default_password = $config['db']['password'];
  72. $default_prefix = $config['db']['tablepre'];
  73. }
  74. if (!empty($config['setting']['redis'])) {
  75. $redis_host = isset($config['setting']['redis']['server']) ? $config['setting']['redis']['server'] : $redis_host ;
  76. $redis_password =!empty($config['setting']['redis']['auth']) ? $config['setting']['redis']['auth'] : $redis_password;
  77. $redis_port = isset($config['setting']['redis']['port']) ? $config['setting']['redis']['port'] : $redis_port;
  78. $redis_database = isset($config['setting']['redis']['database']) ? $config['setting']['redis']['database'] : $redis_database;
  79. $redis_cache_database = isset($config['setting']['redis']['cache']) ? $config['setting']['redis']['cache'] : $redis_cache_database;
  80. }
  81. if (!empty($config['setting']['mongodb'])) {
  82. $mongo_host = isset($config['setting']['mongodb']['server']) ? $config['setting']['mongodb']['server'] : $mongo_host ;
  83. $mongo_port =!empty($config['setting']['mongodb']['port']) ? $config['setting']['mongodb']['port'] : $mongo_port;
  84. $mongo_database = isset($config['setting']['mongodb']['database']) ? $config['setting']['mongodb']['database'] : $mongo_database;
  85. $mongo_username = isset($config['setting']['mongodb']['username']) ? $config['setting']['mongodb']['username'] : $mongo_username;
  86. $mongo_password = isset($config['setting']['mongodb']['password']) ? $config['setting']['mongodb']['password'] : $mongo_password;
  87. }
  88. }
  89. return [
  90. /**
  91. * 数据查询结果集返回模式
  92. */
  93. 'fetch' => \PDO::FETCH_ASSOC,
  94. /*
  95. |--------------------------------------------------------------------------
  96. | Default Database Connection Name
  97. |--------------------------------------------------------------------------
  98. |
  99. | Here you may specify which of the database connections below you wish
  100. | to use as your default connection for all database work. Of course
  101. | you may use many connections at once using the Database library.
  102. |
  103. */
  104. 'default' => $db_conn_name,
  105. /*
  106. |--------------------------------------------------------------------------
  107. | Database Connections
  108. |--------------------------------------------------------------------------
  109. |
  110. | Here are each of the database connections setup for your application.
  111. | Of course, examples of configuring each database platform that is
  112. | supported by Laravel is shown below to make development simple.
  113. |
  114. |
  115. | All database work in Laravel is done through the PHP PDO facilities
  116. | so make sure you have the driver for your particular database of
  117. | choice installed on your machine before you begin development.
  118. |
  119. */
  120. 'connections' => [
  121. 'sqlite' => [
  122. 'driver' => 'sqlite',
  123. 'database' => env('DB_DATABASE', database_path('database.sqlite')),
  124. 'prefix' => '',
  125. ],
  126. 'mysql' => [
  127. 'driver' => 'mysql',
  128. 'host' => env('DB_HOST', $default_host),
  129. 'port' => env('DB_PORT', $default_port),
  130. 'database' => env('DB_DATABASE', $default_db),
  131. 'username' => env('DB_USERNAME', $default_username),
  132. 'password' => env('DB_PASSWORD', $default_password),
  133. 'charset' => 'utf8mb4',
  134. 'collation' => 'utf8mb4_unicode_ci',
  135. 'prefix' => env('DB_PREFIX', $default_prefix),
  136. 'strict' => false,
  137. 'engine' => null,
  138. 'loggingQueries' => true,
  139. 'options' => [
  140. \PDO::ATTR_EMULATE_PREPARES => env('DB_PREPARED', false)
  141. ]
  142. ],
  143. 'zt_mysql' => [
  144. 'driver' => 'mysql',
  145. 'host' => 'rm-wz91v70vq22qr490mio.mysql.rds.aliyuncs.com',
  146. 'database' => 'supply',
  147. 'username' => 'root',
  148. 'password' => 'ihcNp0xtOmcbdx9%',
  149. 'charset' => 'utf8mb4',
  150. 'collation' => 'utf8mb4_0900_ai_ci',
  151. 'prefix' => '',
  152. 'strict' => true,
  153. 'engine' => null,
  154. ],
  155. 'pgsql' => [
  156. 'driver' => 'pgsql',
  157. 'host' => env('DB_HOST', '127.0.0.1'),
  158. 'port' => env('DB_PORT', '5432'),
  159. 'database' => env('DB_DATABASE', 'forge'),
  160. 'username' => env('DB_USERNAME', 'forge'),
  161. 'password' => env('DB_PASSWORD', ''),
  162. 'charset' => 'utf8',
  163. 'prefix' => '',
  164. 'schema' => 'public',
  165. 'sslmode' => 'prefer',
  166. ],
  167. 'mysql_slave' => [
  168. 'driver' => 'mysql',
  169. 'write' => [
  170. 'host' => env('DB_HOST', $default_host),
  171. ],
  172. 'read' => [
  173. 'host' => env('DB_SLAVE_HOST', $default_slave_host),
  174. ],
  175. 'port' => env('DB_PORT', $default_port),
  176. 'database' => env('DB_DATABASE', $default_db),
  177. 'username' => env('DB_USERNAME', $default_username),
  178. 'password' => env('DB_PASSWORD', $default_password),
  179. 'charset' => 'utf8mb4',
  180. 'collation' => 'utf8mb4_unicode_ci',
  181. 'prefix' => env('DB_PREFIX', $default_prefix),
  182. 'strict' => false,
  183. 'engine' => null,
  184. 'loggingQueries' => true,
  185. ],
  186. 'mongodb' => [ //MongoDB
  187. 'driver' => 'mongodb',
  188. 'host' => env('MONGO_HOST', $mongo_host),
  189. 'port' => env('MONGO_PORT', $mongo_port),
  190. 'database' => env('MONGO_DATABASE', empty($mongo_database)?$default_db:$mongo_database),
  191. 'username' => env('MONGO_USERNAME', $mongo_username),
  192. 'password' => env('MONGO_PASSWORD', $mongo_password)
  193. ]
  194. ],
  195. /*
  196. |--------------------------------------------------------------------------
  197. | Migration Repository Table
  198. |--------------------------------------------------------------------------
  199. |
  200. | This table keeps track of all the migrations that have already run for
  201. | your application. Using this information, we can determine which of
  202. | the migrations on disk haven't actually been run in the database.
  203. |
  204. */
  205. 'migrations' => 'migrations',
  206. /*
  207. |--------------------------------------------------------------------------
  208. | Redis Databases
  209. |--------------------------------------------------------------------------
  210. |
  211. | Redis is an open source, fast, and advanced key-value store that also
  212. | provides a richer set of commands than a typical key-value systems
  213. | such as APC or Memcached. Laravel makes it easy to dig right in.
  214. |
  215. */
  216. 'redis' => [
  217. 'client' => 'predis',
  218. 'default' => [
  219. 'host' => env('REDIS_HOST', $redis_host),
  220. 'password' => env('REDIS_PASSWORD', $redis_password),
  221. 'port' => env('REDIS_PORT', $redis_port),
  222. 'database' => env('REDIS_DEFAULT_DATABASE', $redis_database)
  223. ],
  224. 'cache' => [
  225. 'host' => env('REDIS_HOST', $redis_host),
  226. 'password' => env('REDIS_PASSWORD', $redis_password),
  227. 'port' => env('REDIS_PORT', $redis_port),
  228. 'database' => env('REDIS_CACHE_DATABASE', $redis_cache_database)
  229. ]
  230. ],
  231. ];