Skip to content

Commit ba9a313

Browse files
committed
Merge branch 'dev'
2 parents 1b1eb74 + 2488f02 commit ba9a313

File tree

4 files changed

+84
-44
lines changed

4 files changed

+84
-44
lines changed

app/helpers.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -234,10 +234,11 @@ function system_check()
234234
throw new LlfException(34520006);
235235
}
236236

237-
// 如果是在腾讯云函数部署,则不需要检查这几项
237+
// 如果是在云函数部署,则不需要检查这几项
238238
if (IS_SCF) {
239-
system_log('检测到运行环境为腾讯云函数,所有环境变量将直接从环境中读取,如果 .env 文件存在的话,则优先使用 .env 文件中的环境变量');
240-
system_log('在腾讯云函数,可以参考此处修改或新增环境变量,无需重建:https://github.com/luolongfei/freenom/blob/main/resources/screenshot/scf_env_modify.png');
239+
system_log('检测到运行环境为云函数,所有环境变量将直接从环境中读取,环境中找不到的变量,则直接从 .env.example 文件中读取');
240+
system_log('如果是在腾讯云函数,可以参考此处修改或新增环境变量,无需重建:https://github.com/luolongfei/freenom/blob/main/resources/screenshot/scf_env_modify.png');
241+
system_log('如果是在阿里云函数,可以直接在【函数详情】->【函数配置】->【环境信息】处编辑环境变量');
241242
} else {
242243
if (!function_exists('putenv')) {
243244
throw new LlfException(34520005);

index.php

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@
22
/**
33
* 入口文件
44
*
5-
* 腾讯云函数版本维护
5+
* 云函数版本维护
66
* 1、去掉顶部的 “#!/usr/bin/env php”,将文件名改为 index.php
77
* 2、将 “define('IS_SCF', false);” 改为 “define('IS_SCF', true);”
8-
* 3、使用 function main_handler($event, $context) {} 将下面的 try catch 部分包起来,
9-
* 并在 try 最后一行追加 “return '云函数执行成功。';”,在 main_handler 函数的最后一行追加 “return '云函数执行失败。';”
8+
* 3、干掉最下方的 run(); 调用
109
*
1110
* @author mybsdc <[email protected]>
1211
* @date 2019/3/2
@@ -18,13 +17,13 @@
1817
ini_set('display_errors', 1);
1918
set_time_limit(0);
2019

21-
define('IS_SCF', true); // 是否腾讯云函数环境
20+
define('IS_SCF', false); // 是否云函数环境
2221
define('IS_CLI', PHP_SAPI === 'cli');
2322
define('DS', DIRECTORY_SEPARATOR);
2423
define('ROOT_PATH', realpath(__DIR__));
2524
define('VENDOR_PATH', realpath(ROOT_PATH . '/vendor'));
2625
define('APP_PATH', realpath(ROOT_PATH . '/app'));
27-
define('DATA_PATH', IS_SCF ? '/tmp' : realpath(ROOT_PATH . '/app/Data')); // 腾讯云函数只有 /tmp 目录的读写权限
26+
define('DATA_PATH', IS_SCF ? '/tmp' : realpath(ROOT_PATH . '/app/Data')); // 云函数只有 /tmp 目录的读写权限
2827
define('RESOURCES_PATH', realpath(ROOT_PATH . '/resources'));
2928

3029
date_default_timezone_set('Asia/Shanghai');
@@ -66,28 +65,6 @@ function exception_handler($e)
6665
Message::send("具体的异常内容是:\n" . $e->getMessage(), '主人,未捕获的异常');
6766
}
6867

69-
/**
70-
* @return string
71-
*/
72-
function run()
73-
{
74-
try {
75-
system_check();
76-
77-
$class = sprintf('Luolongfei\App\Console\%s', get_argv('c', 'FreeNom'));
78-
$fn = get_argv('m', 'handle');
79-
80-
$class::getInstance()->$fn();
81-
82-
return '云函数执行成功。';
83-
} catch (\Exception $e) {
84-
system_log(sprintf('执行出错:<red>%s</red>', $e->getMessage()), $e->getTrace());
85-
Message::send("执行出错:\n" . $e->getMessage(), '主人,捕获异常');
86-
}
87-
88-
return '云函数执行失败。';
89-
}
90-
9168
/**
9269
* 腾讯云函数
9370
*
@@ -116,3 +93,25 @@ function handler($event, $context)
11693

11794
return run();
11895
}
96+
97+
/**
98+
* @return string|bool
99+
*/
100+
function run()
101+
{
102+
try {
103+
system_check();
104+
105+
$class = sprintf('Luolongfei\App\Console\%s', get_argv('c', 'FreeNom'));
106+
$fn = get_argv('m', 'handle');
107+
108+
$class::getInstance()->$fn();
109+
110+
return IS_SCF ? '云函数执行成功。' : true;
111+
} catch (\Exception $e) {
112+
system_log(sprintf('执行出错:<red>%s</red>', $e->getMessage()), $e->getTrace());
113+
Message::send("执行出错:\n" . $e->getMessage(), '主人,捕获异常');
114+
}
115+
116+
return IS_SCF ? '云函数执行失败。' : false;
117+
}

libs/Env.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public function init($fileName = '.env', $overload = false)
2222
{
2323
if (file_exists(ROOT_PATH . DS . $fileName)) {
2424
$this->allValues = $overload ? Dotenv::create(ROOT_PATH, $fileName)->overload() : Dotenv::create(ROOT_PATH, $fileName)->load();
25-
} else if (IS_SCF) { // 腾讯云函数直接从 .env.example 读取默认环境变量
25+
} else if (IS_SCF) { // 云函数直接从 .env.example 读取默认环境变量
2626
$fileName = '.env.example';
2727
if (file_exists(ROOT_PATH . DS . $fileName)) {
2828
$this->allValues = $overload ? Dotenv::create(ROOT_PATH, $fileName)->overload() : Dotenv::create(ROOT_PATH, $fileName)->load();

run

Lines changed: 53 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,10 @@
33
/**
44
* 入口文件
55
*
6-
* 腾讯云函数版本维护
6+
* 云函数版本维护
77
* 1、去掉顶部的 “#!/usr/bin/env php”,将文件名改为 index.php
88
* 2、将 “define('IS_SCF', false);” 改为 “define('IS_SCF', true);”
9-
* 3、使用 function main_handler($event, $context) {} 将下面的 try catch 部分包起来,
10-
* 并在 try 最后一行追加 “return '云函数执行成功。';”,在 main_handler 函数的最后一行追加 “return '云函数执行失败。';”
9+
* 3、干掉最下方的 run(); 调用
1110
*
1211
* @author mybsdc <[email protected]>
1312
* @date 2019/3/2
@@ -19,13 +18,13 @@ error_reporting(E_ERROR);
1918
ini_set('display_errors', 1);
2019
set_time_limit(0);
2120

22-
define('IS_SCF', false); // 是否腾讯云函数环境
21+
define('IS_SCF', false); // 是否云函数环境
2322
define('IS_CLI', PHP_SAPI === 'cli');
2423
define('DS', DIRECTORY_SEPARATOR);
2524
define('ROOT_PATH', realpath(__DIR__));
2625
define('VENDOR_PATH', realpath(ROOT_PATH . '/vendor'));
2726
define('APP_PATH', realpath(ROOT_PATH . '/app'));
28-
define('DATA_PATH', IS_SCF ? '/tmp' : realpath(ROOT_PATH . '/app/Data')); // 腾讯云函数只有 /tmp 目录的读写权限
27+
define('DATA_PATH', IS_SCF ? '/tmp' : realpath(ROOT_PATH . '/app/Data')); // 云函数只有 /tmp 目录的读写权限
2928
define('RESOURCES_PATH', realpath(ROOT_PATH . '/resources'));
3029

3130
date_default_timezone_set('Asia/Shanghai');
@@ -67,14 +66,55 @@ function exception_handler($e)
6766
Message::send("具体的异常内容是:\n" . $e->getMessage(), '主人,未捕获的异常');
6867
}
6968

70-
try {
71-
system_check();
69+
/**
70+
* 腾讯云函数
71+
*
72+
* @param $event
73+
* @param $context
74+
*
75+
* @return string
76+
*/
77+
function main_handler($event, $context)
78+
{
79+
return run();
80+
}
81+
82+
/**
83+
* 阿里云函数
84+
*
85+
* @param $event
86+
* @param $context
87+
*
88+
* @return string
89+
*/
90+
function handler($event, $context)
91+
{
92+
$logger = $GLOBALS['fcLogger'];
93+
$logger->info('开始执行阿里云函数');
94+
95+
return run();
96+
}
7297

73-
$class = sprintf('Luolongfei\App\Console\%s', get_argv('c', 'FreeNom'));
74-
$fn = get_argv('m', 'handle');
98+
/**
99+
* @return string|bool
100+
*/
101+
function run()
102+
{
103+
try {
104+
system_check();
75105

76-
$class::getInstance()->$fn();
77-
} catch (\Exception $e) {
78-
system_log(sprintf('执行出错:<red>%s</red>', $e->getMessage()), $e->getTrace());
79-
Message::send("执行出错:\n" . $e->getMessage(), '主人,捕获异常');
106+
$class = sprintf('Luolongfei\App\Console\%s', get_argv('c', 'FreeNom'));
107+
$fn = get_argv('m', 'handle');
108+
109+
$class::getInstance()->$fn();
110+
111+
return IS_SCF ? '云函数执行成功。' : true;
112+
} catch (\Exception $e) {
113+
system_log(sprintf('执行出错:<red>%s</red>', $e->getMessage()), $e->getTrace());
114+
Message::send("执行出错:\n" . $e->getMessage(), '主人,捕获异常');
115+
}
116+
117+
return IS_SCF ? '云函数执行失败。' : false;
80118
}
119+
120+
run();

0 commit comments

Comments
 (0)