问题标签 [spl-autoload-register]

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

php - 加载一个名称与作为参数传递给自动加载器的名称不同的类

基本上,我有以下问题:我想利用 PHP 的新命名空间功能。不幸的是,我正在运行一个 PHP 版本(5.3.2),其中 linux 的 namespace-autoload-support 似乎仍然存在错误并且不起作用(PHP 应该能够通过其命名空间自动加载类文件而无需使用自定义自动加载器,但这不起作用)。

我想要实现的是编写一个自动加载器,只要 php 的命名空间功能正常工作,我就可以简单地删除它(不使用自定义自动加载器时似乎有速度优势),之后必须更改尽可能少的代码。

所以我有这样的电话:

它作为字符串“system\libraries\file\XML”正确传递给我的自动加载功能。我可以加载相应的文件“system/libraries/file/XML.class.php”。但是,那里的类将被命名

(或与“system\libraries\file\XML”不同的名称),因此具有与 PHP 尝试加载它的名称不同的名称。那么有没有一种简单的方法来加载与我传递给自动加载器函数的名称不同的名称的类(“XML”)?我可以在自动加载器中做些什么来实现这种行为吗?(我正在使用 spl_autoload_register)。

我知道即使它成功了,我仍然无法使用命名空间的所有功能,因为(简单)自动加载器不会尊重“使用命名空间”指令,我仍然必须使用相当长的名称来加载一个类. 但是,如果我正确理解了 PHP 的命名空间功能,那么当我稍后切换到使用本机命名空间支持而不是我的自动加载器时,我可以保留代码原样。

如果您认为我尝试做的事情根本没有意义,或者我误解了命名空间,请告诉我(- 我还没有使用 PHP 的命名空间功能)。

0 投票
3 回答
2321 浏览

php - PHPUnit - 测试自动加载器类

我需要为我的应用程序创建一个自动加载器。我不想依赖文件系统中的文件,那么如何模拟新调用?或者你如何测试一个自动加载器类?谢谢。

0 投票
1 回答
1826 浏览

php - spl_autoload_register

对于了解 spl_autoload 例程的人来说,这一定是一个简单的问题。我正在使用 spl_auto_register 函数,它适用于我办公室网络中的任何人,但是一旦办公室外的人试图访问它就会触发致命错误。错误说...

我最初的想法是它与cookie有关。谁能帮我解决这个问题。
提前致谢

0 投票
1 回答
1543 浏览

php - php spl_autoload_register help...只是不明白

我的班级命名约定:class.ClassName.php

我的类文件命名约定:class.classname.php(因此是strtolower)。

类文件位于包含路径:/home/content/XX/XXXXXX/html/projects/include/

已验证的类存在并包含在 http://technicheian.com/images/includedClasses.png

在每个使用类的页面上(例如,这个调用 Query;位于 class.query.php:

05-Nov-2011 20:18:30]PHP Fatal error: Class 'Query' not found in /home/content/XX/XXXXXX/html/projects/check4.php在第 9 行

在 class.session.php 的末尾是$s = new Session(这里注意说 $company 变量不应该为空)。

我已经阅读了几乎所有我能找到的文章、操作方法等。我错过了什么?

运行 php 5.2

0 投票
2 回答
1535 浏览

php - spl_autoload_register 未初始化自动加载堆栈

我正在尝试将SwiftMailer php 库与我编写的程序一起使用。在包含这个库之前,我一直在使用 spl_autoload_register() 函数。然而,在使用这个库之前,我使用 spl 函数明确定义了类扩展和位置:

我遇到的问题是,现在我正在尝试使用一个不遵循相同命名约定的库。他们自己的自动加载类(由对库的初始调用构建)看起来像这样。

}

当我在调用他们的课程后尝试简单地运行程序时,我得到:

第 30 行:

我曾尝试使用仿照他们的自定义自动加载类,但是,当我尝试时,我得到的只是:

结果:

我知道这必须是一个相当简单的问题,我忽略了一些东西,但我找不到它。

任何帮助将不胜感激。

0 投票
1 回答
902 浏览

php - spl_autoload_register 和命名空间问题

为什么这会返回致命错误:在...中找不到类“Mynamespace\String”:

我的库/String.php 是:

如果我删除它工作正常的名称空间,请不要。

0 投票
1 回答
467 浏览

php - Kohana 3.14 在单元测试中失败,未找到消息类“Kohana”

我有一个运行良好的 kohana 网站,我开始进行单元测试(回想起来,我知道这不是最佳实践)

我得到并且无法摆脱的第一个错误非常令人费解:

致命错误:/Users/dananicula/Sites/mnib1/application/bootstrap.php:44 中的消息“传递的数组未指定现有静态方法(未找到类 'Kohana')”的未捕获异常“LogicException”

在引导程序中,第 44 行是:

并且类 Kohana 实际上存在于 system/classes/kohana.php

有什么提示吗?意见?建议?谢谢!

0 投票
3 回答
597 浏览

php - 在静态数组中使用常量

我在 php 5.2.x

我有一个看起来像这样的加载器类:

如您所见,我一遍又一遍地重复/home/account_name/public_html/includes/php/。

我想用一个常量(或其他任何东西)替换它,以便在移动应用程序的位置时可以轻松更改它。

我试过这个(任何可能的形式),但它不起作用

有任何想法吗?

0 投票
1 回答
1109 浏览

php - spl_autoload_register 和子类

我有一个名为“BaseCore”的类,它只运行所有 spl_autoload_registers(); 在那个文件中。

我的第二个类扩展了 BaseCore,在我想扩展 BaseCore 的每个新类上,我必须要求/包含 BaseCore 类。

但是,这似乎非常过时并且是一种古老的方法。

所以我想我的问题是,我如何将 BaseCore 包含到我的子类中而无需编写 require_once(); 在每个儿童班上?

谢谢!

0 投票
2 回答
2260 浏览

php - 如何检查 SPL 堆栈中是否已存在函数?

我正在尝试使用spl_autoload_register并且我想创建一个if()语句来检查类方法是否已经注册。

例如:

像上面的代码/方法可能吗?