我正在学习名称空间和psr-4自动加载。在我的应用程序中,我只能加载composer中psr-4下第一个对象的类。json。
我会解释得更好,这是我的情况:
文件夹结构:
app - core -- Foo --- Foo.php src - Bar -- Bar.php
在composer.json
{
"autoload":
{
"psr-4":
{
"core\\" : "app/core/",
"myapp\\" : "src/"
}
}
}
仅加载app/core下的类。如果我使用\core\Foo\Foo
就像一个符咒,但是如果我使用\myapp\Bar\Bar
就不起作用了。当然,我用composer dump autoload-o
更新了autoload,并尊重区分大小写的字母。
我的错在哪里?提前感谢:-)
每个文件中当前的名称空间是什么?根据您在composer中的文件夹结构和设置。json
,这些是您应该具有的值:
Bar\Bar。php应该有
<?php
namespace myapp\Bar;
class Bar {}
虽然
Foo\Foo。php应该有
<?php
namespace core\Foo;
class Foo {}
然后,您应该能够使用
newmyapp\Bar\Bar
和newcore\Foo\Foo
访问它们。
文件名和类名必须相同,这一点很重要。
我和许多其他人一样,似乎很难弄清楚何时以及如何使用自动加载。我想我理解作曲家和PSR-0/PSR-4的概念和这需要的目录结构。但是如果我用自己的MVC框架构建自己的项目 > 由于composer自带了自动加载器,它将加载我希望包含在项目中的所有依赖项,如果我不打算将我的网站变成分布式项目,我甚至需要自己的名称空间吗?为什么我不坚持使用include/requires? 最后,如果我采用名称空间,使
问题内容: 最近,我阅读了有关名称空间及其有益之处的信息。我目前正在Laravel中创建一个项目,并尝试从类映射自动加载转到命名空间。但是,我似乎无法理解PSR-0和PSR-4之间的实际区别。 我读过的一些资源是… 自动装弹机之战 Laracasts PSR-4自动加载 PSR-0 PSR-4 我的理解: PSR-4不会将下划线转换为目录分隔符 作曲者的某些特定规则导致目录结构变得复杂,这又使PS
最近我读了一些关于名称空间的文章,以及它们是如何有益的。我目前正在Laravel中创建一个项目,并尝试从类映射自动加载转移到名称空间。然而,我似乎无法理解PSR-0和PSR-4之间的实际区别。 我读到的一些资源是。。。 自动装弹机之战 Laracasts PSR-4自动加载 PSR-0 PSR-4 我的理解是: PSR-4不会将下划线转换为目录分隔符 请举例说明差异。
我开始学习Composer,并正在开发一个系统,在该系统中,我将文件与核心应用程序文件分开,如下所示: 所以,要在composer中设置此设置。json文件并访问所有类/App much/Core会这样吗? 还是有更正确的方法? 我也读过PSR-0和PSR-4的比较,我仍然有点怀疑应该使用哪一种。在我的情况下,我应该实现什么,PSR-0还是PSR-4?
我有一个在本地运行良好的Laravel项目(Mavericks),但是psr-4下的类没有加载到我们的后台服务器(CentOS)上。每次尝试composer更新或运行artisan命令时,我都会收到一个反射“未找到类”错误。 我的所有特定于应用程序的类都存储在我的Laravel项目的app/heatherland下,例如: 我的composer.json包含以下条目: 在本地,psr-4类被添加到
1. 概述 本 PSR 是关于由文件路径 自动载入 对应类的相关规范, 本规范是可互操作的,可以作为任一自动载入规范的补充,其中包括 PSR-0,此外, 本 PSR 还包括自动载入的类对应的文件存放路径规范。 关于「能愿动词」的使用 为了避免歧义,文档大量使用了「能愿动词」,对应的解释如下: 必须 (MUST):绝对,严格遵循,请照做,无条件遵守; 一定不可 (MUST NOT):禁令,严令禁止;