问题标签 [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.
php - 如何规避 PSR-2?
当 Laravel 5.1 发布时,PSR-2 将被强制执行。
我是 PHP-FIG 的忠实粉丝,不幸的是,我已经习惯并习惯了新行中的控制结构。
考虑一下当前已经遵守 PSR-2 的代码:
我理解以下不是 PSR-2:
但是,这些变化呢?
正如你所看到的,当我进入一个新行时,我沉迷于由前导花括号产生的空白。
是否可以正确考虑提到的任何变体 PSR-2?
validation - 如何在 PHP 中解析/验证/处理 http 标头
目前我正在构建自己的 php 框架,并且正在创建 PHP-FIG PSR-7 MessageInterface 的实现。特别是 withHeader 方法。它指出该方法可能会抛出一个异常:\InvalidArgumentException 用于无效的标头名称或值。
所以我想知道,标题何时有效或无效?值相同。或者我应该接受任何标题和任何标题值?那可能很危险吧?
我现在可以笼统地说,如果一个标题有多个值,它们是逗号分隔的。但这并不总是适用。例如,如果我查看用户代理标头,则值本身有时包含逗号。但是您应该将其视为单个值。
php - 在 PHP 自动加载中出错
我正在使用 PSR-0 进行自动加载,我知道我需要使用 PSR-4,我将在后面部分使用它。即使 PSR-4,也欢迎回答。
我有以下目录结构,自动加载工作正常。
对于以下目录结构,其给出的错误如下
警告:需要(EntityGenerator\Database\DatabaseConnection.php):无法打开流:第 15 行的 C:\wamp\www\entity\EntityGenerator\autoload.php 中没有这样的文件或目录
谁能解释为什么我会收到第二个目录结构的错误。
如果有人需要整个代码进行测试,请找到以下链接
php - 编程时行结束会导致什么?
在PSR-2 文件的 2.2 中有一件事情让我很困惑。
我所知道的是,不同的操作系统默认使用不同的行尾:
- 窗户:CRLF
- Unix:LF
- 麦克:CR
我想知道为什么“所有 PHP 文件必须使用 Unix LF(linefeed) 行尾”。或者换句话说,行结束会导致什么?
php - 我应该同时实现 RequestInterface 和 ServerRequestInterface
我目前正在为我的个人 PHP 框架编写HTTP 消息接口建议 (PSR-7)的实现。我已经为推荐中的每个接口编写了类。但现在我意识到我不需要对出站请求进行抽象。
目前我有:
Message
对于MessageInterface
,Request
对于RequestInterface
,Response
对于ResponseInterface
,ServerRequest
对于ServerRequestInterface
,Stream
对于StreamInterface
,UploadedFile
对于UploadedFileInterface
, 和,Uri
为UriInterface
.
我想知道我是否必须实现建议的每个接口才能声称我的框架使用它?或者我可以只实现我需要的部分吗?
php - 子属性的复数或单数命名标准
关于类命名约定的文章相当多,但关于属性和变量的内容却不多。
典型的经验法则似乎是做听起来正确的事情。单个项目的变量名称应为单数,例如$user
. 数组通常是复数形式,例如$users
或与适当的描述符(例如$userList
.
假设使用复数数组约定,那么用户的 id、姓名、性别、年龄等应该使用什么?例如,$userName
或$usersName
?
这应该如何应用于数组索引名称?通常我会保持它的通用性,因为数组名称暗示索引适用于什么,例如$users=['id'=>123,'name'=>'bob'];
,其他时候它需要更具描述性,应该是['userId'=>123,'userName'=>'bob']
还是['usersId'=>123,'usersName'=>'bob']
?
如果存在,请包括对定义这些命名约定的任何权威正式机构的任何引用。
php - TYPO3 后端和 PSR-15 的最佳实践
我有一个关于 TYPO3 9(和未来版本)和 PSR-15 的问题。
AFAIK 大多数后端模块handleRequest
为后端模块控制器实现了一种方法,该方法具有与 PSR-15 相同的签名RequestHandlerInterface
。
它是否打算在未来的版本中实现这个接口,并且有什么反对为我自己的后端模块实现的吗?
我正在重建一个与 TYPO3 9 兼容的整个后端模块,并希望确保这种方法在未来的版本中是可行的(至少在 TYPO3 10 之前)。
该模块本身运行了将近 10 年,没有进行任何大修,但由于 BaseScriptClass 已被弃用,我认为别无选择。
感谢您的反馈意见。
php - PHP 中的依赖注入 (slim, php-di)
我有一个 Slim Php (slim4) 应用程序,我在其中添加了 Monolog 以进行日志记录。我将记录器添加到应用程序中,如下所示:
这适用于在我的大多数课程中注入记录器,只需执行以下操作:
现在我还想在中间件中使用记录器,如身份验证。我不知道如何正确地做到这一点。我可以通过将记录器添加为容器中的命名条目来实现此功能,如下所示:
然后通过从容器中取回它作为构造函数参数将其传递给中间件:
但是这个:
- a) 按类名中断其他类的注入
- b) 显然不是最佳实践
那么将这个记录器注入中间件的正确方法是什么?
php - 是否对 PSR 兼容的控制结构使用替代 PHP 语法?(与 HTML 混合时)
我已经通过 PHP-Fig 网站查看了与控制结构的替代 PHP 语法相关的任何 PSR,但没有找到任何关于它的信息。
替代语法是这样的,例如:
那么它只是没有定义,因此可以使用,还是因为在编码风格部分没有提到它而不符合要求?