Laravel psr-4 不自动加载

2024-04-15

我有一个在本地运行良好的 Laravel 项目(Mavericks),但 psr-4 下的类未加载到我们的阶段服务器(CentOS)上。每次尝试作曲家更新或运行 artisan 命令时,我都会收到反射“未找到类”错误。

我所有的应用程序特定类都存储在我的 Laravel 项目中的 app/heatherland 下,例如:

app/heatherland/import/ImportJob.php (file contains HeatherLand\Import\ImportJob)

我的composer.json 包含此条目:

"autoload": {
    "classmap": [
        "app/commands",
        ...
        "app/database/seeds",
    ],
    "psr-4": {
        "HeatherLand\\": "app/heatherland"
    }
},

在本地,psr-4 类被添加到vendor/composer/autoload_classmap.php 中的数组中。它们不会添加到阶段服务器上的此文件中。如果我手动剪切和粘贴它们,artisan 命令可以正常工作,但下次运行 Composer 命令时,自动加载文件将被覆盖。本地和舞台上的 autoload_psr4.php 都有以下条目,对我来说看起来不错:

'HeatherLand\\' => array($baseDir . '/app/heatherland'),

这是我尝试过/检查过的内容的列表:

  • 类、文件夹和文件名的大小写一致且正确。
  • 我一直在自由地使用 Composer dump-autoload,无论是否带有 -o 选项
  • 我可以使用 --no-scripts 选项运行作曲家更新,但 artisan 仍然无法运行
  • 文件夹名称是小写的,并且我尝试更改它们以反映命名空间的大小写(编辑:这从未发生过,至少没有成功)。
  • 我尝试从我的命名空间中删除 CamelCase(例如,将其更改为 Heatherland),并且我的任何文件夹/文件名中都没有任何下划线。
  • 我正在运行 PHP 5.4.30,并且 Composer 是最新的。我的本地设置和阶段服务器上的版本是相同的。 Laravel 4.1.30。
  • 两个系统中都没有重复的composer.phar

欢迎任何新的建议。在这一点上,如果我做了一些愚蠢的事情,我会非常高兴。


PSR-4 确实对大小写非常敏感,比 Laravel 本身还要敏感。完整文件夹路径和名称必须与命名空间相同。唯一不需要相同的地方是在composer.json 的PSR-4 部分中有引用的地方。

这只会成为特定情况操作系统的问题。我在 Mac 上没有问题,但 CentOS 拒绝玩。

请注意,这与 Laravel 特定框架在其文档中使用的做法不同,后者使用小写文件夹路径和 CamelCase 命名空间。这不会在任何操作系统上造成任何问题。2015 年 7 月预计到达时间:此信息适用于 Laravel 4;看起来 Laravel 5 默认文件夹结构遵循 psr-4 标准。

我最终得到了一个像这样的文件夹结构:

app/heatherland
  Import
    ImportJob.php

命名空间例如

HeatherLand\Import

以及按照原始问题的composer.json条目:

"autoload": {
    "classmap": [
        "app/commands",
        ...
        "app/database/seeds",
    ],
    "psr-4": {
        "HeatherLand\\": "app/heatherland"
    }
},

自我提示:记住运行composer dump-autoload。尽早倾倒,经常倾倒。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel psr-4 不自动加载 的相关文章

  • OSX - Composer - lib-openssl 要求

    自从上次 XCode 更新到版本 7 3 1 以来 我遇到了以下问题composer and openssl在 OSX 上 更新之前有效 我尝试通过作曲家更新来更新软件包 套餐 ricardoper twitteroauth 需要lib o
  • 作曲家和 Yii

    我使用 Composer 作为我的依赖管理器 因为我需要使用 Yii Framework 进行开发 所以我将其添加到我的composer json 文件中 所以它看起来像这样 other properties require other d
  • Laravel 4:Facades 是如何解决的?

    我有点想看看 Laravel 4 发生了什么facades在引擎盖下 我们以这个 Facade 为例 File get someArgs 如果我没有记错的话 逐步 过于简化 的调用将是 static method invocation wh
  • 用户登录时如何更新updated_at列?

    我正在尝试更新updated at每次用户登录时 列到当前时间 但我收到以下错误 InvalidArgumentException 找不到四位数年份 数据丢失 PHP input Input all remember Input has r
  • Laravel项目部署到Cpanel时出现404错误如何解决?

    我正在尝试将我的 laravel Laravel Framework 7 28 3 部署到 Cpanel 但出现 404 错误 我将项目上传到 public html 修改了 index php 文件以指向正确的文件 如下所示 我认为ind
  • Http Auth 不适用于 PHP

    我使用 Laravel Lumen Shield 扩展进行 Http 身份验证 但是在我的本地计算机上一切都很完美 我只在我们的服务器上遇到了问题 问题是在我提交正确的登录数据后 登录屏幕再次出现 我尝试了不同的登录数据 不同的浏览器 登录
  • 我如何在 Laravel 5.5 的 FormRequest 类中返回自定义响应?

    我正在制作一个 API 我想返回错误数组 其格式如下 validator gt errors 当我通过手动方式验证请求时生成 但我无法操纵响应 我想找到正确的制作方法 这可以在 Laravel 5 4 中通过formatErrors方法并包
  • Laravel ErrorException:未定义的变量:\storage\framework\views\ 中的错误

    我尝试使用 redis 队列来延迟发送邮件 但每次都会收到错误 ErrorException 未定义的变量 错误 C wamp64 www laravel boltra storage framework views c653bafa95f
  • Vagrant - Homestead 设置多个站点

    我已经使用 homestead yaml 映射了文件夹等 ip 192 168 10 10 folders map Users User Desktop folder Homestead First to home vagrant Firs
  • 忽略 php Composer 中的开发依赖项

    我开发了一个基于 Laravel 的作曲家项目 我需要将其安装在远程生产服务器上 问题是我的权限 访问权限有限 所以我的选择是 存档 包 使用composer archive 并在生产时拆包 我需要归档哪些文件夹以及如何忽略包的开发依赖项以
  • Laravel:将变量传递给多个视图

    我想动态地制作菜单 因此显示 本月电影 而不是 十二月电影 参见图片 十二月是每月更新的当前月份 我的问题是菜单不属于特定的路由 控制器 因此我无法像其他路由一样传递变量 例子 month Carbon now gt format F re
  • 如何在 Laravel 中存储非 php 文件的模板?

    我们可以存储PHP模板文件使用bladeLaravel 中的模板引擎 但是 我想在远程服务器上创建一个配置文件 每个文件包含 20 30 行以上 到目前为止 我一直在使用Perl 我曾经执行 Perl 文件 该文件用于将内容转储到一个文件中
  • Laravel 5 / Lumen 请求标头?

    所以我不太确定如何解决这个问题 我已经尝试了一些方法 我将在下面列出其中之一 但是我想要做的是将 http 请求中发送的信息存储在 PHP 变量中 这是 Chrome Postman 发送我想要发送的请求的视图 注意 pubapi 是一个
  • 如何在 Laravel 中返​​回唯一值

    这里我有这个示例数据 它根据类别产品返回 我需要限制重复值 Raw JSON brand id fe877b45 8620 453a 8805 63f0cbd80752 name No Brand slug no brand descrip
  • AngularJS + Laravel 5 身份验证

    在使用 AngularJS 构建 SPA 时 我想在 AngularJS 网站中实现用户身份验证 但是 我不知道从哪里开始以及最佳实践是什么 基本上我有一个确定可以担任一个或多个角色 我寻找了一些例子 这样我就可以对如何正确处理这个问题有一
  • 使用 with 的热切加载模型,但给它起了另一个名字 - Laravel 5.2

    是否可以使用 with 方法来使用预加载 但给它另一个名称 就像是 gt with documents as product documents documents as categories 我有一个可以是产品或类别的文档表 急切加载可以
  • /bootstrap/start.php 中的 Laravel 错误:\Illuminate\Foundation\Application 未找到

    因此 我在开发服务器上安装了 Laravel php5 5 3 标准安装 安装了 mcrypt 并收到以下错误消息 Fatal error Class Illuminate Foundation Application not found
  • 表单请求中的 Laravel 数组验证

    我无法验证 Form Request 类中包含数组元素的字段 规则方法 public function rules return state gt required state 0 gt required state gt required
  • laravel Blade 模板不渲染

    进入 Laravel 后 我尝试使用 Blade 模板 但它没有渲染 我的所有示例都来自 Laravel 文档 UPDATE 所以这是我的master blade php 文件位于资源 gt 视图 gt master blade php y
  • AngularJS 和 Laravel - 跨域 CORS / XHR 请求缺少(记住)cookie

    当我不使用 Chrome 中的 disable web security 选项时 我的 CORS XHR 请求在请求标头中缺少 Remember xyz cookie 如果我启用该选项 remember xyz cookie 将包含在请求标

随机推荐

  • 如何从 TFS MS Build 或 TFS API 获取构建警告

    我正在尝试从 MS Build 获取构建警告 在包含或具有多个解决方案的构建中 是否可以使用 TFS API 或使用 QUERY 的任何 TFS DB 进行获取 你可以使用这个TFS用于获取日志的 REST API https www vi
  • splice 不适用于数组行 vue js

    我有一个对象数组 但是当我想从数组列表中删除对象时 仅从末尾删除项目 div class hours 然后我将点击功能放在图标上 div
  • 不使用python创建新的conda环境

    The 康达文档 https docs conda io projects conda en latest user guide tasks manage environments html creating an environment
  • Android / Java WebView 文件上传在 Android 版本 10 和 11 中失败

    我有一个 Android 应用程序 其中有一个网络视图 这个 webview 包含一个用于上传图片的文件上传 它的工作方式就像 Android 6 到 9 的魅力一样 对于版本 10 如果我使用图库中的图片 它仍然可以工作 但如果我尝试直接
  • QGraphicsPixmapItem 不可选

    我想要我的QGraphicsPixmapItem变得可选择 即以更一般的方式可点击 QGraphicScene但事实并非如此 我其实是在修改Qt s 图表场景示例 http doc qt nokia com 4 7 snapshot gra
  • Leakcanary 使用 AppCompatActivity 和 FragmentStatePagerAdapter 显示片段泄漏

    我已经遇到这个问题有一段时间了 我真的不知道还能尝试什么 我在我的项目中使用了 Leakcanary 这样我就可以强迫自己以 正确的方式 学习 android 而不会选择导致内存泄漏的模式 我正在构建一个应用程序 我已经将其精简了很多 但我
  • 如何使用 jQuery 处理复选框的更改?

    我有一些代码
  • 如何禁用 Nexus Galaxy 画布上的点击突出显示?

    我正在编写一个使用 HTML5 画布的 Web 应用程序并在 Nexus Galaxy 上进行测试 当用户点击画布时 它会突出显示青色一秒钟 即使我在 touchstart 事件上调用了 PreventDefault 我也尝试过一些CSS规
  • jQuery 和 CSS - 按高度剪切文本,不截断

    因为我想切换文本 所以需要隐藏其中的一部分 Problem 我的文本高度将为 X 或更少像素 div 的高度取决于侧边栏的高度 并且不像此演示那样静态 如果最后一行的字母现在被截断 参见演示 我也想隐藏该行 看看我的演示 http jsfi
  • Oracle REGEX_SUBSTR 不支持空值

    我有一个 regex substr 不支持 null 值的问题 select REGEXP SUBSTR 2035197553 2 S 14 JUN 14 P 1 1 AS phn nbr REGEXP SUBSTR 2035197553
  • iOS Safari – 如何禁用过度滚动但允许可滚动 div 正常滚动?

    我正在开发一个基于 iPad 的网络应用程序 需要防止过度滚动 使其看起来不像网页 我目前正在使用它来冻结视口并禁用过度滚动 document body addEventListener touchmove function e e pre
  • 将 JPA AttributeConverter 用于布尔 Y/N 字段:“无法呈现布尔文字值”

    我正在实施解决方案here https stackoverflow com a 22368268 26535将 Y N 列转换为布尔值 Basic optional false Column name ACTIVE YN Convert c
  • 使用数字属性的 MVC3 DataAnnotationsExtensions 错误

    我已经安装了 Scott 的 Kirkland DataAnnotationsExtensions 在我的模型中我有 Numeric public double expectedcost get set 在我看来 Html EditorFo
  • 根据磁盘可用空间获取节点IP

    我正在尝试编写一个 Ansible 剧本来检查多个服务器上的磁盘空间 到目前为止 这是我的 Ansible 剧本 hosts all become yes tasks name Check freespace shell df h awk
  • 在第二次编辑后刷新表单[重复]

    这个问题在这里已经有答案了 嘿大家好 我目前正在尝试在更改完成后立即刷新表单 在我的第一个表单上 我按下 创建 按钮 这将打开另一个表单 form2 第二个表单将具有输入字段 并允许您输入填充第一个表单上的组合框的值 在第二个表单上有一个
  • 标题消息就像 Stack Overflow 中一样

    这是我第一次访问堆栈溢出 我看到了一条漂亮的标题消息 其中显示了文本和关闭按钮 标题栏是固定的 非常能吸引访问者的注意力 我想知道你们中是否有人知道获得相同类型标题栏的代码 快速的纯 JavaScript 实现 function Messa
  • openui5:如何在 RowRepeater 中获取当前 JSON 模型元素

    我无法获取绑定到 RowRepeater 元素的当前 JSON 模型元素 对于表和列表 我只需检索当前索引 或多个索引 并根据这些值 指向 JSON 模型中的匹配元素 但是 RowRepeater 元素没有当前索引属性 我觉得我应该能够直接
  • 主题消息可以在activemq中持久化吗?

    我对 JMS 和 ESB 非常陌生 我使用 activemq 作为 JMS 使用 mule 作为 ESB 当我将消息从一个队列转发到另一个队列时 jms 连接器参数 persistentDelivery 为 true 它会在 activem
  • 将部分 Activity/Fragment 保存为图像

    我试图保存我的活动的一部分 没有工具栏和状态栏 我现在拥有的代码可以保存整个屏幕 请参考下图 我现在拥有的代码 llIDCardRootView LinearLayout view findViewById R id ll id card
  • Laravel psr-4 不自动加载

    我有一个在本地运行良好的 Laravel 项目 Mavericks 但 psr 4 下的类未加载到我们的阶段服务器 CentOS 上 每次尝试作曲家更新或运行 artisan 命令时 我都会收到反射 未找到类 错误 我所有的应用程序特定类都