问题标签 [php-fig]

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 回答
176 浏览

php - 如何规避 PSR-2?

当 Laravel 5.1 发布时,PSR-2 将被强制执行。

我是 PHP-FIG 的忠实粉丝,不幸的是,我已经习惯并习惯了新行中的控制结构。

考虑一下当前已经遵守 PSR-2 的代码:

我理解以下不是 PSR-2:

但是,这些变化呢?

正如你所看到的,当我进入一个新行时,我沉迷于由前导花括号产生的空白。

是否可以正确考虑提到的任何变体 PSR-2?

0 投票
2 回答
1151 浏览

validation - 如何在 PHP 中解析/验证/处理 http 标头

目前我正在构建自己的 php 框架,并且正在创建 PHP-FIG PSR-7 MessageInterface 的实现。特别是 withHeader 方法。它指出该方法可能会抛出一个异常:\InvalidArgumentException 用于无效的标头名称或值。

所以我想知道,标题何时有效或无效?值相同。或者我应该接受任何标题和任何标题值?那可能很危险吧?

我现在可以笼统地说,如果一个标题有多个值,它们是逗号分隔的。但这并不总是适用。例如,如果我查看用户代理标头,则值本身有时包含逗号。但是您应该将其视为单个值。

0 投票
2 回答
272 浏览

php - 在 PHP 自动加载中出错

我正在使用 PSR-0 进行自动加载,我知道我需要使用 PSR-4,我将在后面部分使用它。即使 PSR-4,也欢迎回答。

我有以下目录结构,自动加载工作正常。

对于以下目录结构,其给出的错误如下

警告:需要(EntityGenerator\Database\DatabaseConnection.php):无法打开流:第 15 行的 C:\wamp\www\entity\EntityGenerator\autoload.php 中没有这样的文件或目录

谁能解释为什么我会收到第二个目录结构的错误。

如果有人需要整个代码进行测试,请找到以下链接

https://github.com/channaveer/EntityGenerator

0 投票
3 回答
1216 浏览

php - 编程时行结束会导致什么?

在PSR-2 文件的 2.2 中有一件事情让我很困惑。

在此处输入图像描述

我所知道的是,不同的操作系统默认使用不同的行尾:

  • 窗户:CRLF
  • Unix:LF
  • 麦克:CR

我想知道为什么“所有 PHP 文件必须使用 Unix LF(linefeed) 行尾”。或者换句话说,行结束会导致什么?

0 投票
2 回答
513 浏览

php - 如何在 PSR-15 中间件堆栈中调用函数(控制器操作)

我已经从PHP-FIG(HTTP 服务器请求处理程序)中阅读了 PSR-15,并且想知道何时调用一个动作(控制器动作或闭包)。

通过所有中间件进行处理时,应在传递所有中间件后调用该操作。在操作之后,所有中间件再次从内部传递到外部(如Slim 框架的用户指南中所述)。

我在 GitHub 上浏览了 Laravel 的代码,但不知道他们是如何调用动作然后再次遍历所有中间件的。

这个答案告诉我 Slim 将自己添加到中间件堆栈中。我猜它然后以某种方式执行动作。但是,Slim 使用的是双通道。

中间件堆栈和执行如何通过单次传递(如 PSR-15 中所述)并在所有中间件之间调用操作?

0 投票
0 回答
619 浏览

php - 我应该同时实现 RequestInterface 和 ServerRequestInterface

我目前正在为我的个人 PHP 框架编写HTTP 消息接口建议 (PSR-7)的实现。我已经为推荐中的每个接口编写了类。但现在我意识到我不需要对出站请求进行抽象。

目前我有:

  • Message对于MessageInterface,
  • Request对于RequestInterface,
  • Response对于ResponseInterface,
  • ServerRequest对于ServerRequestInterface,
  • Stream对于StreamInterface,
  • UploadedFile对于UploadedFileInterface, 和,
  • UriUriInterface.

我想知道我是否必须实现建议的每个接口才能声称我的框架使用它?或者我可以只实现我需要的部分吗?

0 投票
1 回答
526 浏览

php - 子属性的复数或单数命名标准

关于类命名约定的文章相当多,但关于属性和变量的内容却不多。

典型的经验法则似乎是做听起来正确的事情。单个项目的变量名称应为单数,例如$user. 数组通常是复数形式,例如$users或与适当的描述符(例如$userList.

假设使用复数数组约定,那么用户的 id、姓名、性别、年龄等应该使用什么?例如,$userName$usersName

这应该如何应用于数组索引名称?通常我会保持它的通用性,因为数组名称暗示索引适用于什么,例如$users=['id'=>123,'name'=>'bob'];,其他时候它需要更具描述性,应该是['userId'=>123,'userName'=>'bob']还是['usersId'=>123,'usersName'=>'bob']

如果存在,请包括对定义这些命名约定的任何权威正式机构的任何引用。

0 投票
1 回答
101 浏览

php - TYPO3 后端和 PSR-15 的最佳实践

我有一个关于 TYPO3 9(和未来版本)和 PSR-15 的问题。

AFAIK 大多数后端模块handleRequest为后端模块控制器实现了一种方法,该方法具有与 PSR-15 相同的签名RequestHandlerInterface

它是否打算在未来的版本中实现这个接口,并且有什么反对为我自己的后端模块实现的吗?

我正在重建一个与 TYPO3 9 兼容的整个后端模块,并希望确保这种方法在未来的版本中是可行的(至少在 TYPO3 10 之前)。

该模块本身运行了将近 10 年,没有进行任何大修,但由于 BaseScriptClass 已被弃用,我认为别无选择。

感谢您的反馈意见。

0 投票
3 回答
1112 浏览

php - PHP 中的依赖注入 (slim, php-di)

我有一个 Slim Php (slim4) 应用程序,我在其中添加了 Monolog 以进行日志记录。我将记录器添加到应用程序中,如下所示:

这适用于在我的大多数课程中注入记录器,只需执行以下操作:

现在我还想在中间件中使用记录器,如身份验证。我不知道如何正确地做到这一点。我可以通过将记录器添加为容器中的命名条目来实现此功能,如下所示:

然后通过从容器中取回它作为构造函数参数将其传递给中间件:

但是这个:

  • a) 按类名中断其他类的注入
  • b) 显然不是最佳实践

那么将这个记录器注入中间件的正确方法是什么?

0 投票
1 回答
370 浏览

php - 是否对 PSR 兼容的控制结构使用替代 PHP 语法?(与 HTML 混合时)

我已经通过 PHP-Fig 网站查看了与控制结构的替代 PHP 语法相关的任何 PSR,但没有找到任何关于它的信息。

替代语法是这样的,例如:

那么它只是没有定义,因此可以使用,还是因为在编码风格部分没有提到它而不符合要求?