问题标签 [psr-4]

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 投票
1 回答
42 浏览

php - 扩展名称与命名空间匹配的类

结合 PSR-4 自动加载考虑以下文件结构:

Bar.php是扩展Foo.php。假设它们已经存在于一个深度嵌套的命名空间中,Bar.php的标题将如下所示:

这工作得很好。令我困惑的是,是否有一种优雅的方法可以避免重复字符串 My\Cool\Project\Module\Foo。这里的潜在问题是,必须手动重复它会导致拼写错误和错误,通常可以/可以通过有效地使用语言功能来防止这些错误。所以我想知道是否有办法以如下方式重写上面的代码:

或者

或类似的东西。

0 投票
1 回答
1150 浏览

php - phpspec 根据 psr-4 命名空间规范在错误的文件夹中创建文件

我放弃了我的问题的早期形式,因为它太复杂了。这是新版本。

我想在我的 psr-4 格式项目中使用 phpspec。

这是我尝试设置测试项目的方式:

  1. 为项目创建了一个新文件夹:

    /li>
  2. 创建一个新composer.json文件并需要 phpspec:

    /li>

这会创建我的composer.json文件:

  1. 我将我的 psr-4 命名空间添加到我的composer.json文件的 autoload 属性中:

    /li>
  2. 然后我转储我的自动加载以确保我的命名空间已加载:composer dumpautoload

  3. 之后,我创建了 myphpspec.yml来将命名空间描述为 phpspec:

    /li>
  4. 然后我描述了我想开始构建的类:

    /li>

这是我遇到第一个问题的地方。即使我在describe命令中指定了 Acme 命名空间,规范也不会放置在与命名空间匹配的文件夹中:

不正确的命名空间规范

虽然它创建的类是正确命名空间的:

然后,如果我尝试运行测试以启动 TDD-ing。

它提供为我创建课程,我允许它。从那里我得到了第二个问题;我收到错误消息:

[PhpSpec\Process\Prerequisites\PrerequisiteFailedException] Acme\Markdown 类型已生成但无法加载。您需要配置自动加载器吗?

在此处输入图像描述

它创建的类不在它的命名空间文件夹中:

不正确的命名空间类

它创建的类也被正确命名:

我查看了文档,无法弄清楚我做错了什么。有什么建议么?

0 投票
1 回答
6553 浏览

php - 如何在 laravel 5 中更改应用程序文件夹名称

我想在 laravel 5 中将主文件夹 [app] 更改为作者姓名,我该怎么做才能做到这一点,而无需更改 autoloader 或 composer 中的任何内容?

0 投票
1 回答
487 浏览

php - 使用 Composer 找不到 Php psr-4 类错误

我正在尝试在“wamp-server”上使用 php 来练习 MVC 概念

在本地目录中,我有 index.php 页面,用于使用 alto-router 包和 routes.php 文件进行基本路由:

文件夹

composer.json 文件是:

PageController.php 是

acme 目录下的 Test.php 为:

并且视图目录中的test.php在上面。当我删除PageController.php中注释的两行时它可以工作

但是这行有一个错误:

找不到类“Acme\Testing\Test”..

0 投票
1 回答
348 浏览

php - js组件自动加载psr4

我的 Composer.json 的自动加载部分如下

这有意义吗?

0 投票
2 回答
2774 浏览

php - PHP 命名空间类命名约定

我目前关注 PSR-2 和 PSR-4。在尝试命名几个类时,我遇到了一个小难题。这是一个例子。

我有一个基本的 REST 客户端,\Vendor\RestClient\AbstractClient. 我有这个抽象客户端的两个实现:

  • \Vendor\GoogleClient\GoogleClient
  • \Vendor\GithubClient\GithubClient

由于命名空间已经指定了域,因此客户端类的命名是否多余?我应该改为命名我的课程:

  • \Vendor\GoogleClient\Client
  • \Vendor\GithubClient\Client

这意味着客户端代码将始终使用以下内容:

这比:

但是第一个选项允许我们通过仅更改 use 语句轻松地换出实现。

PSR4 指定InterfacesandAbstractClasses应该分别加上后缀Interface和前缀Abstract,但它没有说明域特定的前缀/后缀。有什么意见/建议吗?

0 投票
1 回答
1594 浏览

php - Sublime 3 PSR4 插件

Sublime 3 是否有插件可以自动进行 PSR4 配置?

我正在使用一个现在已经很旧并且需要 PSR 更新的第三方库。

我听说你可以使用 PHPStorm 做这样的事情

0 投票
1 回答
2181 浏览

php - 作曲家自动加载psr-4不工作

我正在使用 psr-4 来自动加载和创建命名空间。但我收到了这个错误:

我的架构

在此处输入图像描述

这是我的 composer.json

我的用户.php

我的路线

我已经尝试过 composer dump-autoload 但它没有用。还有谁能想一想?

0 投票
2 回答
4513 浏览

php - codeigniter 3命名空间问题

我正在研究 codeigniter 3。我使用 composer psr-4 自动加载。我启用作曲家配置为 $config['composer_autoload'] = FCPATH."vendor/autoload.php";

我的 composer.json 自动加载为

我有一个抽象Controller.php控制器

效果很好。但主要问题是当我写为控制器时

不起作用。如果我删除namespace App\Controllers;一切都很好。主要问题在哪里?谢谢你。

0 投票
2 回答
1033 浏览

php - 使用 psr-4 自动加载文件时的问题

一个多星期以来,我一直试图让 psr-4 自动加载工作,但没有成功。

我的文件结构如下:

我创建了 psr-4 自动加载功能,如下所示:

在使用 composer dump-autoload -0 之后,在我的 session.php 类中,我给出了命名空间:

然后我需要自动加载器并使用 use 函数来命名会话类,如下所示:

打开 index.php 页面后,我得到一个

致命错误:在第 10 行的 /var/www/test/Project/index.php 中找不到类 'src\classes\session'

我的目录结构/php 正确吗?我在网上尝试了许多不同的指南,但似乎无法正常工作。