问题标签 [spl-autoloader]

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 回答
1587 浏览

php - Composer autoload - 如何从不同的文件夹中获取类、特征、接口?

如何使用 composer autoload 从不同的文件夹中获取类、特征、接口?

其中一些我使用命名空间,例如,

控制器/Foo.php,

模型/嘘.php

索引.php,

错误,

致命错误:在 C:... 中找不到类 'MyNamespace\Foo'

作曲家.json,

我在许多不同的文件夹中有很多类(它可能会扩展),那么当我在新文件夹中有新类时,有什么方法无需重新安装composer autoload 吗?

0 投票
0 回答
31 浏览

php - 有什么方法可以获取在 PHP 的自动加载功能中实例化类的文件?

类似的问题是否有一种简单的方法来获取在 PHP 中实例化类的文件?但采用不同的方法。

我需要知道自动加载(__autoload() 或 spl_autoload())函数的来源,以便我可以加载正确的子命名空间类

让我们通过一个例子稍微说明一下我的问题 - 请考虑我的以下课程:/my/project/root/faculties/faculty.class.php [namespace: faculties] /my/project/root/faculties/faculty1/faculty.class .php [命名空间:faculties/faculty1] /my/project/root/faculties/completely/different/project/at/deep/project/root/faculties/faculty.class.php [命名空间:faculties]

现在,如果我想访问该不同项目的实例,它与根项目的冲突会导致其相同的命名空间。

0 投票
2 回答
318 浏览

php - spl_autoloader 没有加载任何类

所以我开始使用命名空间并阅读了一些文档,但我似乎做错了什么。

首先是我的应用程序结构,它是这样构建的:

现在在 src 目录中,我包含以下类:

config.php 的内容是:

我在 index.php 中像这样使用它

这就是 echo get_include_path(); 返回:

我猜这就是我想要的。但是类没有加载,也没有发生任何事情。我显然错过了一些东西,但我似乎无法弄清楚。你们能看一下它并向我解释为什么这不起作用吗?

0 投票
2 回答
536 浏览

php - Yii phpunit 错误 SeleniumTestCase.php 无法打开流

我已经根据本网站(右侧菜单栏中的“Windows”子菜单)中的说明为 Yii 安装了 phpunit:

https://phpunit.de/manual/current/en/installation.html

当我运行我的数据库连接测试时:

我收到以下错误:

然后我用谷歌搜索了错误并尝试了以下说明(不起作用)
1. 使用 pear 安装 phpunit(不再支持)
2. 从 github 下载 phpunit/extension 文件夹并将其放入我的 C:/wamp/www/yii /框架/测试/。然后错误变为:

我应该如何解决这个问题?我正在使用带有 wamp 服务器的 Windows 8。

0 投票
2 回答
1062 浏览

php - 强制自动加载特定类

上一个问题显示了如何强制自动加载所有类。

但是我需要自己强制自动加载一个类。我怎么能那样做?

它不能:

  • 涉及更改类的源代码
  • 依赖于类源代码的任何部分(方法、变量、修饰符,例如,它必须可以自由地从具体变为抽象而不影响这一点)。

此外,最好不涉及将类的名称编码为字符串。(帮助 IDE 重构等)。

到目前为止我发现的最好的选择就是使用spl_autoload_call()

或对于非命名空间类:

0 投票
1 回答
1072 浏览

php - 当我包含自动加载器时出现 HTML 错误 500

这是我的代码。索引.php

类加载器.php

我在浏览器中只看到错误 500。PHP 版本是 5.4,服务器是 LiteSpeed。

0 投票
1 回答
451 浏览

php - PHP - 注册时自动加载器不起作用编辑

我正在尝试自动加载一个类,但我的自动加载器似乎没有正确注册。

Folder/File structure

  • 热情.php
    • 一个东西.php

**zest.php**

**a.thing.php**

我直接从 php.net 中提取了这个示例,它有什么问题?

自动加载器函数根本不会被调用。

即使它是一个匿名函数:

0 投票
1 回答
230 浏览

php - 如何使用 PHP 库并像 Drupal 一样创建自动加载

我如何使用所需的库创建自己的供应商/自动加载,例如作曲家目录中的 Drupal (drupal),有很多文件 autoload_psr4.php autoload_real.php 和...

0 投票
1 回答
119 浏览

magento-1.9.1 - 如何在magento中添加escpos-php?

我正在使用 magento 1.9。我想使用escpos-php 驱动程序将我们的发票打印到 USB 热敏打印机。我将 escpos-php 库保存在我的 magento 安装的根目录中。在 magento 的自定义模块中,我覆盖了呈现时为 A4 pdf 的默认发票,并尝试制作热发票 pdf(纸张尺寸 C7)。该文件存在于/local/Receipt/Pos/Model/Invoice.php

我现在尝试的是,我想从此文件访问 escpos-php 驱动程序的类/local/Receipt/Pos/Model/Invoice.php文件。因此,我已将 escpos-php 驱动程序的自动加载程序的绝对路径添加到 Invoice.php 中的代码中,但它会导致如下所示的警告

0 投票
1 回答
856 浏览

php - 每个人的意思是什么:'spl:_autoload() 是 __autoload()' 的默认实现

我对关于 php 自动加载的东西的一件事感到困惑:spl_autoload()函数。在每个答案中,我发现此功能是__autoload. PHP不应该自己定义默认实现,__autoload()然后如果我明确创建__autoload()它只会覆盖它?

如果我没有__autoload()在我的 php 文件中明确定义函数,会有默认实现吗?是spl_autoload()某种内部函数,如果是,那为什么在 php doc 中呢?

(如果它不是内部函数)在每个 spl_autoload() 示例中都没有对该函数的任何调用,只有spl_autoload_register没有参数,spl_autoload_extensions依此类推。为什么这样?我错过了什么?

引用自:什么是自动加载;如何使用 spl_autoload、__autoload 和 spl_autoload_register?

由于 spl_autoload 是 __autoload() 魔术方法的默认实现,当您尝试实例化一个新类时,PHP 将调用 spl_autoload。

所以如果我不打电话spl_autoload_register(),它不会注册默认实现?是否spl_autoload查看设置的扩展名spl_autoload_extensions();,然后从包含路径导入所有具有这些扩展名的文件?重复前面提到的问题:是spl_autoload()内部函数吗?

我知道这__autoload()已被弃用,我应该使用spl_autoload_register(). 我只是想确保我知道这一切是如何运作的。

谢谢。