Skip to content

PHP 框架核心对照表

总结一句话

  • Laravel:比较像 PHP 世界里的 Spring Boot + Django,偏规范、偏大厂风格。
  • ThinkPHP:更像 Express + 一点 ORM,灵活,国内公司小项目、外包系统常见。
功能点Laravel (国际主流)ThinkPHP (国内常见)类比(Java / Python / JS)
核心架构MVC(Model-View-Controller),强约束,优雅风格MVC,但约束松,代码风格因人而异Spring MVC / Django / Express
依赖管理Composer(类似 npm/pip/maven)Composer(同样用)Maven(Java)、pip(Python)、npm(JS)
ORMEloquent ORM,链式调用强大,和 ActiveRecord 模式结合自带 ORM(简单),常有人直接写 SQLHibernate(Java)、Django ORM、Sequelize
路由基于闭包或控制器映射,语法简洁路由规则灵活(URL 模式化强)Spring Boot @RequestMapping、Flask 路由、Express 路由
模板引擎Blade(有 @if、@foreach 语法糖)原生模板或内置简化语法Thymeleaf(Java)、Jinja2(Python)、EJS(JS)
依赖注入 / 容器有 Service Container,支持依赖注入支持,但用得少Spring IoC / NestJS
中间件内置支持,比如认证、日志、跨域有,但用得不多Spring Filter、Flask Middleware、Express Middleware
认证 / 权限Laravel Passport、Sanctum 等官方方案需要自己写或第三方扩展Spring Security、Django Rest Auth、Passport.js
生态Nova(后台)、Horizon(队列监控)、Cashier(支付)、Scout(搜索)中文文档、国内社区活跃,但生态没 Laravel 丰富Spring Cloud、Django REST + 插件、Next.js + npm
风格“优雅优先”,架构清晰,适合大中型系统“实用主义”,上手快,适合快速交付Laravel ≈ Spring Boot / Django;ThinkPHP ≈ Express / Flask

项目结构对比

快速映射

  • Laravel 的 Controller = Spring 的 @RestController
  • Laravel 的 Model = Spring 的 @Entity + JPA Repository
  • Laravel 的 Migration = Flyway/Liquibase 脚本
  • Laravel 的 Service = 你自己建个 app/Services/,和 Spring Boot 的 service 层一样
  • Laravel 的 routes 文件 = Spring 的注解路由(只是换了个地方集中写)

项目结构对照

框架 / 功能模块应用核心控制器模型 / 实体服务层路由定义配置文件模板 / 视图静态资源数据库迁移数据填充国际化测试依赖管理命令行工具
Laravelapp/app/Http/Controllers/app/Models/app/Services/ (可自建)routes/web.php, routes/api.phpconfig/ + .envresources/views/public/database/migrations/database/seeders/resources/lang/tests/composer.jsonartisan
ThinkPHPapplication/application/controller/application/model/application/common/model/application/service/route/config/ + .envapplication/view/public/database/migrations/database/seeds/lang/tests/composer.jsonthink
Spring Bootsrc/main/java/com/example/controller/entity/ + repository/service/注解:@RequestMapping / @GetMappingsrc/main/resources/application.ymlresources/templates/resources/static/db/migration/ (Flyway / Liquibase)data.sql / import.sqlresources/i18n/src/test/java/pom.xml / build.gradlemvn spring-boot:run / gradlew bootRun

总结风格差异

  • Laravel:国际范,像 Spring Boot + Django,约束清晰、目录分明、生态齐全。
  • ThinkPHP:更贴近国内团队习惯,目录更自由,很多项目会随意改动,风格上像 Express + ORM
  • Spring Boot:更“强工程化”,通过包结构 + 注解约束来组织项目。

所有文章版权皆归博主所有,仅供学习参考。