Laravel 11的目录结构有哪些重大变化? (精简版应用结构)

被直接删除的目录是app/Http、app/Exceptions、app/Http/Middleware和config/;这些路径在新项目中默认不存在,强行引用会报错,中间件与异常处理逻辑已统一收口至bootstrap/app.php的withMiddleware和withExceptions闭包。

laravel 11的目录结构有哪些重大变化? (精简版应用结构)

Laravel 11 彻底移除了 app/Httpapp/Exceptionsapp/Http/Middleware 等传统子目录,也不再默认提供 config/ 目录——这不是“精简”,而是重构后的约定优先设计。

哪些目录被直接删除了?

这些路径在新项目中默认不存在,强行引用会报错:

  • app/Http/Kernel.php → 全局中间件逻辑现在统一收口到 bootstrap/app.php 中的 withMiddleware 闭包
  • app/Http/Middleware/ → 中间件类可放在 app/Middleware/(需手动创建),但更推荐按需注册,避免冗余
  • app/Exceptions/Handler.php → 异常处理逻辑迁移到 bootstrap/app.phpwithExceptions 闭包
  • config/ 目录 → 配置不再通过 PHP 文件加载,改由 bootstrap/app.php 内联定义或使用 Laravel 的新配置服务(如 Illuminate/Support/Facades/Config 动态设置)

模型属性转换怎么写?casts() 方法必须用吗?

是的,Laravel 11 要求将 $casts 数组改为 casts() 实例方法,这是强制性变更:

class User extends Model
{
    // ✅ Laravel 11 正确写法
    protected function casts(): array
    {
        return [
            'email_verified_at' => 'datetime',
            'settings' => 'array',
        ];
    }
}

⚠️ 常见错误:仍保留 protected $casts = [...] —— 框架会忽略它,且不报错,导致类型转换失效;旧项目升级时务必全局搜索替换。

名品购物网店系统

名品购物网店系统

适合品牌专卖店专用,从前台的美工设计就开始强调视觉形象,有助于提升商品的档次,打造网店品牌!后台及程序核心比较简洁,着重在线购物,去掉了繁琐的代码及垃圾程式,在结构上更适合一些中高档的时尚品牌商品展示. 率先引入语言包机制,可在1小时内制作出任何语言版本,程序所有应用文字皆引自LANG目录下的语言包文件,独特的套图更换功能,三级物品分类,购物车帖心设计,在国内率先将购物车与商品显示页面完美结合,完

下载

CQRS 目录(app/Actionsapp/Queries)是自动生成的吗?

不是。这些目录是 Laravel 11 新增的**推荐约定路径**,但不会自动创建。运行命令时才生成:

  • php artisan make:command CreateUserCommand → 默认输出到 app/Commands/(非 app/Actions/
  • php artisan make:query GetUserQuery → 需要先手动建 app/Queries/,否则报错“Class not found”
  • 若想启用官方 CQRS 推荐结构,得先执行:
    mkdir -p app/{Actions,Commands,Queries}

注意:app/Actions/ 是用于封装无状态业务逻辑(如“发送欢迎邮件”),和 Commands(含队列、事件分发)职责不同,别混用。

最易被忽略的一点:Laravel 11 的“精简”不是删功能,而是把配置权从文件转移到代码入口(bootstrap/app.php)。很多问题其实源于没重写这个文件里的 withMiddlewarewithExceptions 闭包——而不是目录少了就完事了。

https://www.php.cn/faq/1971934.html

发表回复

Your email address will not be published. Required fields are marked *