问题标签 [psr-0]

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 投票
6 回答
25787 浏览

php - 如果 classmap 实际上更快,为什么要在 composer 中使用 PSR-0 或 PSR-4 自动加载?

我知道您可以使用 PSR 标准来定位文件,或者告诉作曲家一个目录来扫描类。文档建议使用PSR-4标准。composer 还有一个选项可以创建一个优化的自动加载器,它基本上会生成一个完整的 classmap。那么,如果最好的加载方式是使用类映射,为什么还要使用 PSR-4?

保持目录结构对我来说是有意义的,因为无论如何这是组织的好方法。但是,似乎合乎逻辑的选择是在开发机器上使用 PSR-4 加载,然后在生产环境中使用类映射。这样,您不必每次创建新类时都重新构建类映射,但生产环境会创建一个完整的类映射作为部署过程的一部分,而无需额外调用

0 投票
1 回答
730 浏览

php - 使用 Symfony 自动加载器

我正在测试将我的应用程序从现在使用的 SplAutoloading 迁移到 Symfonies 自动加载器。

我的应用程序结构是

我的 Test.php 是这样的

试图将它加载到我的 index.php

不知道为什么类不能像这样加载?有什么帮助吗?这里的正确用法是什么

0 投票
0 回答
223 浏览

php - 作曲家没有加载我的 psr-0 类

由于某种原因,作曲家找不到我的课程。我有一个看起来像这样的文件夹结构:

我的 composer.json 自动加载部分如下所示:

例如,我的Class.php文件如下所示:

那么为什么我尝试加载该类,src/Vendor/Lib/Class.php我只是在我的代码中执行此操作:

但是后来PHP给了我找不到类的错误。

我已经尝试过,composer update但这并没有解决它。

那为什么它找不到我的班级?我在这里做错了什么?

0 投票
1 回答
436 浏览

php - 如何在 laravel 中使用 psr-0 添加外部类

我在 laravel 中为 Amaezone S3 服务添加了我自己的课程。这是我的作曲家文件

我已经创建了目录app/src/App

并将amezone的所有lib放入该目录

现在创建一个类Amezones3.php并放一些我自己的代码,在这个类中我想添加一个类,它是 amezoneS3 服务类。

在课堂Amezones3.php上我的构造函数如下

} ?>

但是当我运行会出错的页面时

我正在关注这个在这里工作正常的视频

注意:一切正常,但是当我尝试将一个类包含到无法正常工作的构造函数中时。

请帮忙。

提前致谢。普拉兹

0 投票
1 回答
2670 浏览

php - Composer 使用命名空间覆盖/扩展类

我有一个命名空间(例如\App\),其中包含我封装的所有应用程序,目前我正在使用 composer 使用 PSR-0 自动加载此命名空间并检查两个不同的文件夹,“Main”“Client”。(优先考虑客户端文件夹,允许我通过仅在客户端文件夹中创建必要的覆盖文件来覆盖主应用程序功能以满足客户端的请求)

现在,我想如果客户端的覆盖类扩展原来的类会更好,因为我意识到这样做的主要用途是只编辑一些类方法,我想在未来证明“覆盖类" 用于可能出现在“主类”中的新方法。我一直在努力寻找一种方法来实现这一点,即保留命名空间。

示例:销售控制器类 ==> \App\Controller\Sale

  • 如果没有“Client/App/Controller/Sale.php”文件,则使用默认的“Main/App/Controller/Sale.php”
  • 但如果有,我想要的是“Client/App/Controller/Sale.php”可以扩展“Main/App/Controller/Sale.php”

    /li>
  • 这样,我可以只覆盖客户端类中的一些方法,如果主类得到更新,它将反映在客户端的应用程序中。

问题是,由于客户端和主类都在\App\命名空间中,我想不出一种方法来让上面的“use”语句工作。主要原因是我放入的任何前置命名空间(在示例中为"\Main + namespace)都不起作用,因为文件的命名空间会有所不同。

我认为它可以工作的另一种方法是修改作曲家自动加载,并检查命名空间是否以“Main”或“Original”开头,然后从命名空间中删除该部分并强制使用“Main”文件夹。但我找不到可以实施的地方。

我考虑的另一个解决方案是在子类中细分主类功能,可以使用当前的自动加载方案覆盖,但我不知道将这么多类和文件分散在系统中是否明智。

任何帮助或指导总是受欢迎的。

0 投票
1 回答
235 浏览

symfony - ClassNotFoundException - 如何在 symfony (2.4.4) 中注册自定义命名空间

我有一个新的捆绑MyBundlesrc/MyVendor/Bundle/MyBundle/

在默认控制器中,我希望使用MyClass位于名为的命名空间中的类MyVendor\MyComponent

它位于src/MyVendor/Component/MyComponent/src/MyVendor/MyComponent/MyClass.php

我试过做

app/autoload.php但我仍然收到ClassNotFoundException错误。

要么我遗漏了一些微妙的东西,要么我的想法完全错误(错误的 psr-0 目录结构),或者这应该仅通过作曲家的自动加载来完成,例如

无论哪种情况,我都将不胜感激。

谢谢你

0 投票
0 回答
2387 浏览

php - 关联数组索引的 PSR-2 标准是什么(以及直接从查询中提取时的正确命名方法是什么)

关联数组索引的 PSR-2 标准是什么?为了一致性,我会假设 camelCase,但是考虑这样的情况(我使用的是 Laravel 4+):

现在$row包含带下划线的数组索引 (snake_case)。你会怎么做?

你永远不会让数组索引有下划线,做额外的工作来从查询中格式化它们吗?或者您是否仅在从数据库中提取数据的情况下才允许这样做(也许您可以通过对自己说“嘿,这对我来说是一个直接来自查询的指标”来证明这一点)?还要考虑到您的应用程序中可能有其他地方使用这样的索引:data['favoriteColor']. 请记住我的另一个问题的答案:在 Laravel Eloquent 模型中,我们是否使用 camelCase 调用表字段名称,即使它们在数据库中包含下划线?

0 投票
3 回答
1972 浏览

php - PSR-0 找不到类

我完全被这个问题困住了!我正在使用php-simple-html-dom-parser,它加载了 PSR-0。我对 PSR-0 不是很熟悉。但是我就像自述文件显示的那样使用这个类,但我无法让它工作。

在我的 IDE 中,自动完成工作正常,没有显示任何错误。但是当我运行脚本时,我得到了这个错误:

致命错误:在第 3 行的 C:\xampp\htdocs\folder\test.php 中找不到类 'Sunra\PhpSimple\HtmlDomParser'

代码:

文件结构:

正如我所说,我真的不知道出了什么问题。所以可能我正在寻找错误的东西,这就是我发布这个问题的原因。

0 投票
1 回答
3524 浏览

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

我开始学习 Composer 并正在开发一个系统,我将文件核心应用程序文件分开,如下所示:

那么,要在 composer.json 文件中设置此设置并获得对/App much /Core的所有类的访问权限会是这样吗?

还是有更正确的方法?

我还阅读了有关PSR-0 与 PSR-4 的信息,但我仍然有点怀疑该使用哪一个。在我的情况下,我应该实施什么PSR-0 或 PSR-4

0 投票
3 回答
23084 浏览

composer-php - Composer/PSR - 如何自动加载函数?

如何自动加载辅助函数(在任何类之外)?我可以在composer.json某种应该首先加载的引导文件中指定吗?