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

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

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

学习

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

更多

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

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
PHP 进阶/课时/现代 PHP 工程
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综合练习

现代 PHP 工程

命名空间、类型声明、DI、PSR 标准。

30 分钟

现代 PHP 工程

PHP 8+ 带来 命名空间、严格类型、构造器属性提升与只读属性。本课还介绍依赖注入与 PSR 标准。前置 php-essentials;路径 /roadmaps/php。

学习目标

  • 用命名空间组织代码并配合 Composer 自动加载
  • 编写带类型声明的可维护函数与类
  • 理解 DI 容器与 PSR-4 / PSR-12 的意义

命名空间与类型

<?php
declare(strict_types=1);

namespace App\Service;

final readonly class LessonDto {
    public function __construct(
        public string $slug,
        public string $title,
        public int $order,
    ) {}
}

function formatLesson(LessonDto $lesson): string {
    return sprintf('#%d %s (%s)', $lesson->order, $lesson->title, $lesson->slug);
}

declare(strict_types=1) 让类型检查更严格;readonly 属性创建后不可变。

Composer 自动加载

composer.json:

{
  "autoload": {
    "psr-4": {
      "App\\": "src/"
    }
  }
}

运行 composer dump-autoload 后,App\Service\LessonDto 自动映射到 src/Service/LessonDto.php。

依赖注入

namespace App\Service;

class LessonService {
    public function __construct(
        private LessonRepository $repo,
    ) {}

    public function get(string $slug): ?LessonDto {
        $row = $this->repo->findBySlug($slug);
        return $row ? new LessonDto($row['slug'], $row['title'], (int) $row['order']) : null;
    }
}

构造函数注入便于测试;Laravel、Symfony 内置 DI 容器。团队遵循 PSR-4(自动加载)与 PSR-12(代码风格)。

练习

  • 创建 App\Repository\LessonRepository 接口与实现
  • 配置 PSR-4 自动加载并 composer dump-autoload

小结

命名空间 + 类型 + DI + PSR = 可协作的现代 PHP 项目。 下一课数据库与 ORM。

加载本节练习…
← 上一课
OOP 深入
下一课 →数据库与 ORM