草庐IT

php - 在 PHP CodeSniffer 中使用带有异常的 PSR-2

我正在尝试为PHPCodeSniffer设置一个规则集以在一组开发人员中强制执行代码风格,但我遇到了一些麻烦。除了两件事,我们愿意遵守PSR-2。我们希望类声明在同一行上有左大括号,函数也一样。第一个我设法修复了,但函数在同一行上打开大括号的错误不会消失。我已将其追溯到sniffGeneric.Functions.OpeningFunctionBrace.BsdAllman和错误BraceOnSameLine,但将此排除项添加到我的规则集中没有任何作用。我的规则集是这样的:ThecodingstandardforOrganizationXYZ.我试图从报告中删除的消息是这样的:15|E

php - 为什么下划线在 PSR-0 标准中转换为目录分隔符?

PSR-0(https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md)标准指定类名中的下划线应转换为相应文件名中的目录分隔符。对我来说,这似乎不是一个好主意,因为当不了解标准的人无意中在类名中使用下划线时,自动加载器突然找不到类和各种奇怪的错误时,它会产生很多错误出现(例如,参见这个stackoverflow问题:Symfony2.1mappingerror:class_parents())所以我想这个“特性”一定有某种原因(与某些库的历史兼容性?)。我的问题是:有人知道为什么在PSR-0标准中引入这个

php - 是否有用于编写/重构 PSR-1/2 兼容代码的 Netbeans/PHPStorm 插件(如 phphint.org)

正如标题所说:是否有用于编写/重构PSR兼容代码的Netbeans/PHPStorm插件?phphint.org正是这样做的,但只提供在线复制和粘贴工具,而不是集成了IDE的实时解决方案。我要搜索的是:在输入时“实时”PSR代码检查重组/重构项目以符合PSR(1/2)编码指南(尽可能)如果您想知道我在说什么:PSR-1BasicCodingStandard和PSR-2CodingStyleGuide是由PHP大佬发布的编码指南。 最佳答案 对于PhpStorm代码格式可以简单地设置为PSR1/PSR2:文件->设置->代码样式->P

php - 如何正确使用 composer psr-4 fallback

我有一个目录将保留所有“助手”类和函数。我们将该目录称为helpers。我想配置PSR-4回退目录指向这个helpers目录:"autoload":{"psr-4":{"":"helpers/"}}来自Composer文档:...fallbackdirectorywhereanynamespacewillbelookedfor.所以我的理解是,如果我在该目录中的文件/类具有符合PSR-4的名称,我的应用程序应该能够在那里找到它们。现在我创建了一个helpers/Logger.php类Logger为了1)符合PSR-4和2)正常工作,这个类应该使用什么命名空间?我试过了namespace

php - 了解 PHP-FIG : PSR-3 (Logger Interface)

作为学习经验,我正在使用FIG标准构建基于PHP的CMS。有人可以向我解释一下我应该如何将PSR-3集成到我的项目中吗?我下载了源@https://github.com/php-fig/log/tree/master/Psr/Log我想我不知道如何进行。我不明白LoggerAwareInterface的作用。我应该修改上面的源代码来实际记录我想要的数据,还是将其作为我自己的日志类的包装器工作。任何帮助/信息将不胜感激。附言我应该指出,我能找到的最佳指南是http://phpmaster.com/logging-with-psr-3-to-improve-reusability/(特别是

php - 如果 PHP 库可以注册自己的自动加载器,那么为什么 PSR-0 要求它们位于统一目录中?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我正在构建一个框架(这是一个巨大的简化——请不要推荐使用现有的框架,这没有帮助),我希望能够将其他库集成到其中。PSR-0建议建议每个子命名空间中的所有文件都包含在它们自己的特定目录中。为了让我的框架的用户不那么复杂,我想将所有内容都保存在一个命名空间中,但将文件组织到目录中。如果PHP库可以使用spl_register_autoload()注册它们自己

php - PSR-4 自动加载在自定义库的 Composer 中如何工作?

根据我对PHP中命名空间工作原理的理解,我使用了以下目录结构:project_rootapp/|lib/||MyCompany/|||Utility/||||Logger.php|||Core/||||User.phpvendor/composer/symfony/guzzle/bootstrap.phpcomposer.json根据PSR-4规范,完全限定的类名具有以下形式:\(\)*\问题1:从我上面的目录结构来看,下面的假设是否正确?命名空间名称=我的公司SubNamespaceNames=实用程序|核心类名=记录器|用户问题2:如果我的bootstrap.php文件包含以下内容

php - Composer 自动加载器 psr-0 命名空间

我已经创建了一个自定义的composer包,但我无法为其设置正确的自动加载选项。我所有的类都在MyNamespace/Common命名空间下。例如,为了包含我的ArrayHelper类,我确实使用了Mynamespace/Common/Helper/ArrayHelper。这是我的composer.json的相关部分:"autoload":{"psr-0":{"MyNamespace\\":""}}我读过这个:composer.json/autoload有什么帮助吗? 最佳答案 您必须导航到命名空间的文件位置。"autoload":

php - 具有 PSR-4 自动加载功能的 Composer : classes from namespace not loading

我有以下项目结构:-root|-srccomposer.json已经有一个PSR-4条目:"autoload":{"psr-4":{"MyNamespace\\":"myusername/src"}}/Vendor/test.phpisDone();Vendor/myusername/src/MyNamespace/File.php但我总是遇到fatalerrorFatalerror:Class'MyNamespace\File'notfoundin[...]Composer设置或文件结构是否正确?我能做什么?编辑1:我可以很好地加载外部供应商 最佳答案

php - 使用 Composer 自动加载 PSR-4

我用composer的自动加载类系统运行一个portail:"autoload":{"psr-4":{"Portal\\":"src/"}}它在我运行composer.phardump-o时有效,例如我的类Boostrap被很好地引用到vendor/composer/autoload_classmap.php文件中:'Portal\\Core\\Bootstrap'=>$baseDir.'/src/core/Bootstrap.php',但是当我不在自动加载转储上运行优化选项时,自动加载系统不再工作:Fatalerror:Class'Portal\Core\Bootstrap'notf