草庐IT

php - 一组函数的 PSR-4 目录结构和命名空间?

我有一组我觉得有用的PHP函数。我想为他们创建一个PSR-4兼容的存储库,但我找到的指南(1、2、3)似乎只谈论自动加载类。比如我的文件如下,一个文件一个函数:my_cool_function1.phpmy_cool_function2.php...etc.我如何从它们创建符合PSR-4的库? 最佳答案 您无法找到任何不是类的PSR-4自动加载文件的文档的原因是因为specificationstates-它是为自动加载类而设计的。直接取自官方规范:ThisPSRdescribesaspecificationforautoloadin

php - Composer - 自动加载和 PSR-0 与 PSR-4

我开始研究Composer并正在开发一个系统,我将文件核心应用程序文件分开,如下所示:/root|--/src|--/App|--/DBConfig|--/Controller|--/Model|--/Core|--/Helper|--/Controller|--/Model那么,要在composer.json文件中设置此设置并访问所有类/Appmuch/Core会是这样吗?"autoload":{"psr-X":{"App\\":"/src","Core\\":"/src"}}或者有更正确的方法吗?我还阅读了关于PSR-0与PSR-4的文章,但我仍然对使用哪一个有疑问。就我而言,我应

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":