CaiWuXiTong/app/Utilities/Console.php
15061959991 1adf627c0d feat: 财务系统二次开发 - 营销账户账单功能
- 基础环境:Docker 部署配置,源码挂载实时同步
- 修复:super_admin 权限补全、登录重定向循环
- 开发:店铺营销账户账单 - 抖音账户(15字段汇总账单)
- 开发:店铺营销账户账单 - 淘系支付宝账户(8字段流水账单)
- 开发:店铺营销账户账单 - 拼多多账户(7字段流水账单)
- 业务页面导航集成:config/business_navigation.php + Business\Pages 控制器
- 各平台独立表结构和视图,互不影响
2026-07-21 18:43:52 +08:00

57 lines
1.3 KiB
PHP

<?php
namespace App\Utilities;
use Illuminate\Console\Application;
use Illuminate\Support\Str;
use Symfony\Component\Process\Process;
use Throwable;
class Console
{
public static function run($string, $timeout = 0)
{
$command = sprintf('%s %s %s', escapeshellarg(PHP_BINARY), Application::artisanBinary(), $string);
logger('Console command:: ' . $command);
try {
$process = Process::fromShellCommandline($command, base_path());
$process->setTimeout($timeout);
$process->mustRun();
$output = $process->getOutput();
if (static::isValidOutput($output)) {
return true;
}
} catch (Throwable $e) {
$output = $e->getMessage();
}
logger('Console output:: ' . $output);
return static::formatOutput($output);
}
public static function formatOutput($output)
{
$output = nl2br($output);
$output = str_replace(['"', "'"], '', $output);
$output = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $output);
return $output;
}
public static function isValidOutput($output)
{
$errors = [
'Content-Type: application/json',
'CSRF token mismatch',
];
return !Str::contains($output, $errors);
}
}