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)
}
}
}