问题标签 [psr-4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
744 浏览

model-view-controller - 带有控制器的 Slim 框架 PSR 4

我正在制作基于 Slim 框架的应用程序。我正在遵循 PSR 4 模式。这个应用程序基本上是在处理 RESTful 服务。为了使其在未来更加灵活,我们采用了一种不同于传统超薄编码的方法。我的目录结构如下所示,

在“路由”目录中,我将存储一些带有菜单链接的 yaml 文件。这些将在路由器组件中进行解析,以生成控制器及其方法的正确可调用路径。

但是,我面临的问题是确定哪个是这样做的好方法?如何从 .yml 文件中分配每个路由器项目并将它们用作

如需进一步参考,其中一个 yaml 文件如下所示,

什么将是一个好的和有效的方法?请建议。

0 投票
2 回答
232 浏览

php - PHP Composer Autoloader 简单结构

我有 Composer 工作,我想使用它的自动加载器来加载我的类,但它不工作。这是我的目录结构。我保持它非常简单开始。

在 webgl.php 里面我有:

在 index.php 我有:

我的 composer.json 为自动加载定义了这个:

如果我取消注释第二个要求,则脚本可以工作,否则我会收到“致命错误:第 5 行的 /vagrant/index.php 中找不到类 'controllers\webgl'”。

我以为文件夹结构、类命名空间和类名都符合psr-4。但我一定是误会了什么。我已经阅读了大量类似的问题,但没有一个能够为我排序。

谁能告诉我为什么我的课程没有加载以及我应该做些什么来解决它?

0 投票
1 回答
3754 浏览

php - 如何自动加载文件名与类名不同的类?

我看过这些,

如何使用不同的文件名自动加载类?PHP

加载一个名称与作为参数传递给自动加载器的名称不同的类

我可以改变,但在我的 MV* 结构中,我有:

在他们的实际课程中,

我试图与名称保持一致。如果我没有添加类名后缀(Controller、Model),我将无法加载该类,因为那是在重新声明。

如果我保留我的类的名称,自动加载会失败,因为它会寻找一个名为

当文件名是真的,

我唯一的方法是(无顺序):

  • 使用create_alias
  • 重命名我的文件(customer.model.php 到 customermodel.php)
  • 重命名我的课程
  • 使用正则表达式
  • 使用包含文件的引导程序(include, require_once等)

?

示例代码,

看来我必须重命名文件,

http://www.php-fig.org/psr/psr-4/

“终止类名对应于以 .php 结尾的文件名。文件名必须与终止类名的大小写匹配。”

0 投票
0 回答
245 浏览

php - PHP 通过使用 PSR-4 的“使用”来包含类

我正在使用 PSR-4,我在 composer.json 上定义了 psr-4 部分

当我尝试使用“use”关键字导入类时

我收到此错误:UploadFilesController.php 第 13 行中的 FatalErrorException:找不到类 'Controllers\Controller'

如果我将静态路由设置为文件

它可以工作,但之后发现其他文件也存在同样的问题,包括像 Illuminate 这样的 PHP 类。

有什么问题?

0 投票
1 回答
690 浏览

php - 使用 composer 自动加载嵌套类

我创建了一个非常基本的验证器类。

我的基本代码在我的 src/ 文件夹中,它会自动加载

这很好用,所以当我实例化 a new "kevdotbadger\Validator\ Validatoris 给我src/Validator.php

然后我的 Validator.php 类在我的src/Rules目录中加载了一堆子类。这些是通过使用神奇加载的__call,所以->between()应该寻找src/Rules/between.php. 但是,由于某种原因,尽管它是在我的 composer.json 文件中设置的,但它通常不会加载。

我的整个代码库可在https://github.com/kevdotbadger/validator/

我是否正确设置了我的命名空间?我认为问题可能出在 php 5.3 版上,但是我需要使用 5.3 版。

谢谢。

0 投票
1 回答
398 浏览

php - 将一个单独的 Laravel 应用程序自动加载到 Lumen

我正在使用 Lumen 为现有的 Laravel 应用程序编写 API。为了允许 API 的控制器访问 Laravel 应用程序的模型,我将 Laravel 应用程序添加为 git 子模块,并通过 composer.json 文件将其设置为自动加载到“Main”命名空间中:

这很好用,但我想问一下这会对内存使用产生什么影响。是整个 Laravel 应用程序都被加载到内存中(从而导​​致性能下降),还是 Lumen 应用程序在引用 Main\Model 类时只是被告知“在哪里看”?

谢谢

0 投票
2 回答
1448 浏览

cakephp - CakePHP3 插件自动加载类

我正在制作一个 CakePHP3 插件,并且正在使用我编写的使用 PSR-4 自动加载的库。如果我需要应用程序的 composer.json 中的库,它会正确自动加载,我可以在我的应用程序中的任何地方使用它,包括插件。当我尝试通过我的插件的 composer.json 要求它时,它安装得很好,并且 composer 没有给出任何错误,但它似乎没有自动加载。当我转到由使用该库的插件控制的页面时,我收到找不到该类的错误。

难道我做错了什么?我签vendor/composer/autoload_psr4.php入了我的插件文件夹,我的课程在那个文件中。我也在composer dump-autoload应用程序目录和插件目录中运行,但它没有帮助。

我使用插件烘焙插件,cake bake plugin MyPlugin然后编辑插件的 composer.json 的 require 部分以包含我的库。然后我跑了composer update,它安装了库,plugins/MyPlugin/vendor/mylibrary没有错误。

0 投票
1 回答
452 浏览

php - 命名空间不起作用,使用 composer psr-4

我正在使用 slim 框架、composer 和 psr-4 自动加载。

这是在作曲家:

注意:我也尝试了上述方法"Shorty\\":"app/Shorty/Models"

目录结构:app/Shorty/Models/Trap.php

内部Trap.php

在我的路线中:

我得到:找不到类“陷阱”

我做错了什么?

0 投票
2 回答
2605 浏览

php - 在 Laravel 5 项目中使用枚举类

我想在我的 laravel 5 应用程序中使用一些枚举类。它们仿照此 PHP 手册页示例: http: //php.net/manual/en/class.splenum.php

文件 app\Enums.php 如下所示:

我想从控制器中使用这些。我在控制器的顶部放了一条 use 语句:

当我尝试使用这样的类时:

我收到一个错误:找不到类“MyApp\Http\Controllers\Quiz\CategoryFamily”

我已经运行了 compose dump-autoload 以防万一。

如何从内部控制器(多个控制器)中使用我的 Enum 类?

0 投票
1 回答
562 浏览

php - Zend 1 不适用于 psr-4 命名空间

我正在研究 zend 框架 1 但我想使用 \ 而不是 _

这工作正常但是当我改变它时

然后它给了我一个错误

我在作曲家中创建了命名空间

那么如何在代码中使用这些命名空间

这在 Zend Framework1 中可行吗?