标签: psr-1

StudlyCaps和CamelCase有什么区别?

PSR建议,方法名必须在camelCase中声明,类名必须在StudlyCaps中声明.

psr-2 psr-1

24
推荐指数
3
解决办法
2万
查看次数

PSR-2 PHP三元语法中是否需要括号?

问题:PSR-2 PHP三元语法中是否需要括号?

寻找以下三元语句的语法符合PSR-2(如果有) - 我还需要指向文档或某些权限链接:

$error = ($error_status) ? 'Error' : 'No Error';

要么

$error = $error_status ? 'Error' : 'No Error';


注意: php.net它显示括号的语法,但我无法在任何'官方PSR-2'文档中找到它.


结论

如果没有PSR-2标准,哪种方式是最常见的惯例?

php psr-2 psr-1

9
推荐指数
1
解决办法
5533
查看次数

在类的函数中编写输出是我不应该做的事情?

最近我正在努力适应PSR标准.在PSR-1文件中声明:

文件应该声明符号(类,函数,常量等)或引起副作用(例如生成输出,更改.ini设置等),但不应该同时执行这两种操作.

这是否意味着echo '<b>some bold text</b>';在类中的函数中写输出(比如说)是我不应该做的?

php psr-1

6
推荐指数
1
解决办法
480
查看次数

php代码嗅探器什么都不返回……我的代码是标准的吗?

我有一个 Laravel 应用程序(用 composer 创建),我试图确保它符合 PHP 编码标准(级别 PSR-1)。我跑:

$ phpcs --standard=PSR1 my_app/
Run Code Online (Sandbox Code Playgroud)

并在几秒钟内返回一个新的、空的、随时可用的命令行:

$
Run Code Online (Sandbox Code Playgroud)

这是否意味着我的代码符合 PSR-1 中的所有要求和标准?它只做同样的事情:

$ phpcs my_app/
$ phpcs --standard=PEAR my_app/
$ phpcs --standard=PSR1 --report=summary lauras_app/
Run Code Online (Sandbox Code Playgroud)

我只想确保如果命令什么都不返回,那意味着我的代码是标准的。谢谢!

php pear code-standards phpcodesniffer psr-1

5
推荐指数
1
解决办法
1401
查看次数

PSR-2。什么时候目录要大写?

据我了解,根据 PSR-2 标准,我们应该将包含类的目录名称大写。但是如果该目录还包含一些其他文件,例如样式和脚本怎么办?

假设我有一个插件目录,每个插件都可以包含模板和其他内容:

plugins
  PluginName // lowercase?
    PluginName.php // Contains base class "PluginName"
    templates
      home.tpl
    css
      css.css
    js
      js.js
  PluginName2
    ....
Run Code Online (Sandbox Code Playgroud)

这个结构正确吗?

php psr-0 psr-4 psr-2 psr-1

4
推荐指数
1
解决办法
3952
查看次数

PSR-1:2.3。副作用:配置文件中的变量

PSR-1包括建议2.3。副作用

一个文件应该声明新的符号(类、函数、常量等)并且不会引起其他副作用,或者它应该执行带有副作用的逻辑,但不应该两者都做。

考虑一个 config.php 文件中的这个例子(我自己的):

/**
 * Parsing the database URL.
 * DATABASE_URL is in the form:
 *  postgres://user:password@hostname:port/database
 * e.g.:
 *  postgres://u123:pabc@ec2.eu-west-1.compute.amazonaws.com:5432/dxyz
 */
$url = parse_url(getenv('DATABASE_URL'));
define('DB_HOST', $url['host']);
define('DB_NAME', substr($url['path'], 1)); // get rid of initial slash
define('DB_USER', $url['user']);
define('DB_PASSWORD', $url['pass']);

Run Code Online (Sandbox Code Playgroud)

如果我这样做,我实际上没有尊重建议。phpcs理所当然地会抱怨它,因为变量:

FILE: config.php
-----------------------------------------------------------------------------------------------------------------
FOUND 0 ERRORS AND 1 WARNING AFFECTING 1 LINE
-----------------------------------------------------------------------------------------------------------------
 1 | WARNING | A file should declare new symbols (classes, functions, constants, etc.) and cause no other side …
Run Code Online (Sandbox Code Playgroud)

php standards psr-1 php-fig

4
推荐指数
1
解决办法
291
查看次数

在PSR标准中,它表示在类型声明后没有变量名称?

任何人都可以建议PSR标准文件中的哪些文件表明类成员变量中的变量类型后应该没有任何内容?

我通过执行以下操作使用了PHP CodeStyle Fixer:php-cs-fixer fix MyConsoleCommand.php

...它从docblock中删除了变量.我已经做了一段时间了,我相信这是正确的,符合标准的.

谁能确认一下?

     /**
-     * @var SiteManager $siteManager
+     * @var SiteManager
      */
     private $siteManager;

     /**
-     * @var Registry $doctrine
+     * @var Registry
      */
     private $doctrine;
Run Code Online (Sandbox Code Playgroud)

php symfony psr-2 psr-1

3
推荐指数
1
解决办法
265
查看次数

使用 ini_set() 的 PSR-1 兼容替代方案是什么?

我正在使我的代码库符合 PSR-2(因此符合 PSR-1)并且我遇到了以下代码:

public function init()
{
    parent::init();

    // Allow A Larger PHP Memory Limit For This Script
    ini_set("memory_limit", "512M");

    // Allow A Larger Script Execution Limit For This Script
    ini_set('max_execution_time', 300);
}
Run Code Online (Sandbox Code Playgroud)

这用于增加此特定脚本(只能由站点管理员访问并且不经常运行)能够消耗的内存量和执行时间。

在 php.ini 中设置默认值memory_limitmax_execution_time(所有标准脚本/文件都会遵守),然后在需要时增加这些限制,对我来说当然感觉是一个完全可以接受和合乎逻辑的实现。

但是,我记得 PSR-1 声明:

“文件应该声明符号(类、函数、常量等)或引起副作用(例如生成输出、更改 .ini 设置等),但不应同时进行。”

然后继续说明 usingini_set()是副作用的一个例子(至少他们的例子表明它在类或函数的范围之外使用):

<?php
// side effect: change ini settings
ini_set('error_reporting', E_ALL);
Run Code Online (Sandbox Code Playgroud)

可以在此处查看此文档

因此,我的问题是:

  1. 在类方法中(根据我的上下文)使用 ini_set() 是副作用的一个例子吗?
  2. 如果是这样,什么是符合 PSR-1 的替代方案?

这个特定的脚本需要有更多的内存使用和执行时间,但我不想只为此增加全局 php.ini 设置,因为这将允许所有其他 PHP 进程使用更多的内存和执行时间。

php ini ini-set side-effects psr-1

3
推荐指数
1
解决办法
273
查看次数

哪个版本的PSR有效?

也许我完全不明白.我读到PSR是PHP标准推荐,但有几个版本的PSR,例如自动加载器使用PSR-4而不是基本编码标准使用PSR-1

我必须遵循特定的PSR版本或者我必须合并它们的好部分?

Symfony遵循PSR-0,PSR-1,PSR-2和PSR-4文档中定义的标准,然后每个框架使用不同的PSR?

php psr-4 psr-1

2
推荐指数
1
解决办法
747
查看次数

PSR-1 2.3副作用规则示例

接下来是另一个问题

在《PSR-1指南》中,第2.3节“副作用”规则限制include了在同一文件中使用和声明函数,例如:

<?php
// side effect: loads a file
include "file.php";

// declaration
function foo()
{
    // function body
}
Run Code Online (Sandbox Code Playgroud)

但是您可以include在函数内添加文件吗?

例如

<?php
// declaration
function foo()
{
    // side effect: loads a file
    include "file.php";
}
Run Code Online (Sandbox Code Playgroud)

php standards psr-1

1
推荐指数
1
解决办法
2604
查看次数