问题标签 [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.
php - 存储库类不存在(Laravel)
我在当前项目中使用存储库模式。当我尝试访问该路线时,我收到此错误
我的文件夹结构是这样的
在我的控制器中,我正在做
在用户存储库中
我在作曲家自动加载
我的命名空间是否正确?我无法锻炼为什么找不到课程。
php - 我应该如何根据 PSR-0 组织我的文件?
我对指南以及如何命名文件有点困惑。
1.) 是什么Vendor
意思\<Vendor Name>\(<Namespace>\)*<Class Name>
2.)如果我命名命名空间AnimalsApp
并有一个abstract class Dog
,我是否将具体的类GermanShepherd
放在他们自己的文件夹中?
IE。AnimalsApp\Dog\GermanShepherd\GermanShepherd.php
还是AnimalsApp\Dog\GermanShepherd.php
?
此外,我是否将其包含Dog.php
在GermanShepherd.php
文件中,还是由自动加载器为我加载所有内容?
3.) 命名空间的所有子类都需要在每个文件的顶部都有命名空间吗?
4.) 是这里<Class Name>
的同义词<Interface>
吗?当你有类似的东西时怎么办class MyClass extends MyAbstract implements MyInterface
。你把文件放在哪里?
symfony - psr-0 和作曲家是如何工作的?
我会用一个例子来问这个问题。假设我有一个像这样的项目目录。
首先,我想知道我是否已将 composer.json 文件正确放置在项目目录中,以便在供应商目录中安装库?其次,假设我在 composer.json 中有以下几行
那么作曲家将在哪里配置自动加载以查找与项目根有关的类 samplevendor\package\sampleclass?在 symfony2 composer.locked 文件中看到以下行后,我问这个问题:
更新:我在 autoload_namespaces.php 中找到了相应的命名空间映射,它似乎与 psr-0 不符:
'Doctrine\Common\Annotations\' => 数组($vendorDir . '/doctrine/annotations/lib')
php - 使用 composer 和 PSR-0 自动加载命名空间
我想用 composer 和 PSR-0 实现命名空间自动加载,但我不知道为什么它不起作用。
有我的文件结构:
在World.php中
在用户.php
在作曲家.json
当我在Test.php中测试它时:
我收到此错误:
致命错误:找不到类 'my\user\User'
致命错误:找不到类 'my\world\World'
我想念什么!?任何的建议都受欢迎!谢谢。
php - Laravel 4、Composer、PSR-0 自动加载问题
我在工作台上开发的包遇到了一个奇怪的问题。它涉及我的 Composer 文件的这个小片段:
我想要做的是改变这样的路径:
Laravel 在这方面存在问题。这些类可以很好地添加到我的应用程序中,但是所有 Laravel 路径到包资源的路径都被抬高了。
像这样的事情:
这些根本不起作用。我收到这样的错误:
但是,如果我从 PSR-0 路径中删除“models/”,那么一切正常。
所以基本上,看起来 Laravel 坚持我的 Composer 文件在我的 PSR-0 路径中只有“src/”。
这是一个错误还是我错过了什么?
php - psr-0 到 psr-4 更改后无法生成实体
我将一些捆绑包的 psr-0 自动加载更改为 psr-4。现在,当我尝试使用 app/console 命令生成实体时,它给了我
找不到“MbDbFooBundle”的基本路径(路径:“/home/roland/projects/rolandtest/mbmbisbundle/Symfony/vendor/mb/mb-db-foo-bundle”,目的地:“/home/roland/projects/ rolandtest/mbmbisbundle/Symfony/vendor/mb/mb-db-foo-bundle”)。
起初我认为生成的自动加载器会出现问题。但是当我对我的项目进行新的克隆,然后运行 composer update 以完成供应商时,它仍然给我这个错误。
php - PSR-0 自动加载测试问题
我正在摆弄自动加载,并试图制作一个符合 PSR-0 标准的文件结构。但是我收到此错误:
Warning: require(GetMatchHistory\api.php): failed to open stream: No such file or directory in C:\xampp\htdocs\Test\Test.php on line 15
Fatal error: require(): Failed opening required 'GetMatchHistory\api.php' (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\Test\Test.php on line 15
这是我的文件结构:
我正在使用带有此自动加载器功能的测试 PHP:
这个函数是从这里建议的 PSR-0 函数复制粘贴的
我对结构应该如何有误解吗?“api.php”中的类是GetMatchHistory_api
编辑:另一个问题
我已经使用了 MrCode 建议的答案,但是现在我遇到了一个问题,即自动加载器不会加载另一个目录中的类。
当我send
从里面的函数调用类时GetMatchHistoryAPI
,我收到错误:
Warning: require(Classes\Queries\History\send.php): failed to open stream: No such file or directory in C:\xampp\htdocs\Test\Test.php on line 15
但是,从上图中可以看出,发送类不在该文件路径中。为什么会出现这个错误?
php - 如何在没有 Composer 的情况下使用具有命名空间的 PHP 库作为依赖项(PSR-0)?
我需要使用一些具有依赖关系的 PHP 库,但我对客户端的网络服务器有一些限制。它是一个托管网络服务器,我不能使用控制台,例如通过 SSH。
那么我现在如何在没有 Composer 的情况下使用这些库呢?
我可以手动创建一些目录吗?我需要创建哪些目录或路径?另外,我需要创建什么才能使自动加载和命名空间起作用?
我可以以某种方式手动创建 autoload.php 文件的内容是什么?
php - PHP 的 use 语句在加载类时会导致额外的工作吗?
代码示例 1
代码示例 2
问题:
如果我使用示例 1 中的代码,PHP 是否会使硬件工作更加困难(查找更多文件或进行更多处理)?我确信有些事情已经完成了,即使它是在一些代码的级别use
上来确定哪一行与哪个类匹配。我想确切地知道发生了什么。
简而言之:
- PHP在解决使用之间的联系时会做什么
use
在确定语句的使用与它应该用于的类 - 当涉及到这两个代码示例时,PSR-0/PSR-4 自动加载器的工作方式是否受到影响?
php - 除非包含或注释掉名称景观,否则无法加载 PHP 类
在搜索完该站点后,我不知道为什么我会收到关于找不到我的类的致命错误,除非我实例化具有前缀名称景观的类,或者注释掉类文件中的名称景观。我正在使用 PSR-0 尝试解决这个问题,但没有运气,还有这个线程在这里,这是最接近我的问题。
自动加载器代码:
所有三个文件(Autoloader.php、Class.php、index.php)的路径都在同一目录级别。没有子目录或类似的东西。
自动加载器代码在 index.php 的开头使用 require_once("Autoloader.php");
类在 $foo = new classFoo(); 处被调用
tl;博士版本:
- 在被调用的类中注释掉 namescape 声明?工作正常。
- 使用名称景观/类格式实例化类?工作正常。
- 除此以外?致命错误:找不到类(即使它位于同一目录中。