PHP经验分享PHP开发

SWOOLE开发实时聊天系统(四)入口文件、配置文件和AutoL

2020-03-07  本文已影响0人  公式般欢笑

首先编写一个autoload.php文件,以便所有的文件都可以自动载入,而不需要频繁的include.

./autoload.php
<?php
function autoload($classname){
    $classname=str_replace("\\",'/',$classname);
    $classpath=__DIR__.'/'.$classname.'.php';
    if(file_exists($classpath))
        require_once($classpath);
    else
        echo 'class file'.$classpath.'not found!';
}
spl_autoload_register('autoload');

然后需要引入一个config文件,在里面保存全局的配置。

<?php
return $params = [
    'release' => [
        'redis' => [
            'host' => '127.0.0.1',
            'port' => 6379,
        ]
    ],
    'test' => [
        'redis' => [
            'host' => '127.0.0.1',
            'port' => 6379,
        ],
    ],
    'local' => [
        'redis' => [
            'host' => '127.0.0.1',
            'port' => 6379,
        ],
    ],
];

因为当前我们不需要其他配置,所以只写入redis的配置文件。在这个配置文件中,我们将生产环境、测试环境和本地开发环境中的不同配置都放到了同一个配置文件中,然后在服务器上测试一个变量,来区分具体是哪个环境。
在我的本地环境中,打印环境变量,可以看到

$ echo $CHATENV
local

然后写一个index.php引入之前写好的autoload和config文件

<?php
define("ROOT",dirname(__DIR__)."/");

//引入框架autoload类
include ROOT .'autoload.php';

//引入config文件
$params=include( ROOT . 'config/config.php');
defined("CHATENV") or define("CHATENV",getenv('CHATENV'));
defined("PARAMS") or define("PARAMS",$params);
var_dump(PARAMS);die;

测试一下,可以看到已经能打印出我们的全局变量了。

array(3) {
  ["release"]=>
  array(1) {
    ["redis"]=>
    array(2) {
      ["host"]=>
      string(9) "127.0.0.1"
      ["port"]=>
      int(6379)
    }
  }
  ["test"]=>
  array(1) {
    ["redis"]=>
    array(2) {
      ["host"]=>
      string(9) "127.0.0.1"
      ["port"]=>
      int(6379)
    }
  }
  ["local"]=>
  array(1) {
    ["redis"]=>
    array(2) {
      ["host"]=>
      string(9) "127.0.0.1"
      ["port"]=>
      int(6379)
    }
  }
}
上一篇 下一篇

猜你喜欢

热点阅读