CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
PHP 进阶/课时/集成与 CLI
RawBlame
课时目录12 节

PHP 进阶

  1. 01PHP 进阶地图
  2. 02语法与数据结构
  3. 03Web 与超全局变量
  4. 04安全基础
  5. 05OOP 深入
  6. 06现代 PHP 工程
  7. 07数据库与 ORM
  8. 08性能与运维
  9. 09测试与静态分析
  10. 10框架生态
  11. 11集成与 CLI
  12. 12综合练习

集成与 CLI

cURL、环境变量、进程控制。

25 分钟

集成与 CLI

PHP 不只服务 Web——CLI 脚本、cURL 调用外部 API、环境变量与进程控制 同样常用。前置 php-essentials;路径 /roadmaps/php。

学习目标

  • 用 cURL 调用 REST API 并处理 JSON 响应
  • 读取 .env 与环境变量管理配置
  • 编写 CLI 脚本并用 proc_open 执行外部命令

cURL 调用 API

<?php
declare(strict_types=1);

function fetchJson(string $url, array $headers = []): array {
    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_TIMEOUT => 10,
        CURLOPT_HTTPHEADER => array_merge(['Accept: application/json'], $headers),
    ]);
    $body = curl_exec($ch);
    if ($body === false) {
        throw new RuntimeException(curl_error($ch));
    }
    curl_close($ch);
    return json_decode($body, true, 512, JSON_THROW_ON_ERROR);
}

$data = fetchJson('https://api.example.com/tracks/php-advanced-essentials');

环境变量

.env 文件(勿提交到 Git):

DB_HOST=127.0.0.1
DB_NAME=coderoadmap
API_KEY=your-secret-key
$host = getenv('DB_HOST') ?: 'localhost';
// 或使用 vlucas/phpdotenv
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->load();
$dbHost = $_ENV['DB_HOST'];

CLI 脚本

#!/usr/bin/env php
<?php
declare(strict_types=1);

if ($argc < 2) {
    fwrite(STDERR, "Usage: sync-lessons.php <track-slug>\n");
    exit(1);
}

$slug = $argv[1];
echo "Syncing track: $slug\n";
// 同步逻辑…

运行:php sync-lessons.php php-advanced-essentials。Cron 定时执行维护任务。需调用外部程序时用 proc_open,并过滤用户输入以防命令注入。

练习

  • 写 CLI 脚本:读取 track slug 参数,cURL 获取远程 JSON 并打印标题
  • 用 .env 存 API 密钥,脚本从环境变量读取
  • 配置 Cron 每 5 分钟运行一次同步脚本

小结

cURL 连外部、env 管配置、CLI 做批处理。 下一课综合练习。

加载本节练习…
← 上一课框架生态
下一课 →综合练习