问题标签 [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.
php - 如何在外部应用程序中注册 Yii 的自动加载器?
我想试试 Yii,但我不想用它作为我的主要框架。换句话说,我想使用我自己的框架,同时也使用 Yii 的一些特性。我认为为了能够从我的应用程序中实例化 Yii 的类,我只需要从我的应用程序中注册 Yii 的自动加载器,可能类似于以下方式:
当然,我需要 require 或包含 YiiBase 类,所以在调用之前的函数之前,我会这样做:
但我收到“无法重新声明 YiiBase 类”错误。我错过了什么?
php - spl_autoload 服务器相关问题
我们似乎对 1 个特定服务器上的 spl_autoload 有一个非常奇怪的问题。警告:spl_autoload() [function.spl-autoload]:无法访问 file.php
我也检查过,在我们的 WHM 面板中,它显示包含路径设置为 .:/usr/lib/php:/usr/local/lib/php
这个特定的服务器是运行 PHP 5.3.8 和 eAccelerator 的 Linux RedHat-9.3.6,上面的代码已经在其他 10 个服务器上进行了测试,并且运行良好,所以真的不知道为什么会在这个特定的服务器上发生这种情况。
我们真的很想使用 spl_autoload 方法而不是 include/require 这会减慢我们的应用程序。请我希望有人可以提供一些建议来帮助我们解决这个问题。
php - 多个 spl_autoload_register 问题
我正在开发自定义框架。当我试图让我的班级充满活力时,我遇到了一个问题。
这是我的文件的视觉效果:
所以我决定为每个文件夹(libs、controllers et modeles)创建一个不同的函数:
尽管如此,我还是收到了这条消息:警告:require(libs/admin.php): failed to open stream,当然这不是好文件夹。但我不知道如何解决这个问题。有没有优化我的课程调用的好方法?
php - 从 php.ini 包含的路径自动加载命名空间类
我有一个在项目外部目录中命名空间的类。该目录包含在include_path
指令中。我想用一个spl_autoload
类来自动加载该类。但是,我只得到错误。它似乎只是试图从项目目录加载文件。
这是一台 Windows 机器,但我希望它可以在 Windows 或 Linux 机器上工作
php - 类不自动加载?
我的应用程序中有一个自动加载器功能:
在我的一个文件中,一个会话管理器,它调用了一个名为数据库的类。该类database
之前没有被调用过,然后应该在那时被自动加载。
但是,它似乎不是 - 也就是说,我正在打印一个正在加载的类列表:
所以看起来它正在加载,对吧?
在 sessionnmanager 类中:
我的自动加载器看起来不错吗?
我已经在__construct
方法中的数据库类中打印了一个,是的,果然,它正在被调用。
php - 具有许多路径的 PSR-0 SplClassLoader
几个小时后,调试和修改无法弄清楚这是否可能,请赐教。
我的服务器上的许多站点都使用我的框架。我正在尝试实现SplClassLoader,但几乎没有成功。加载程序工作(进行一些修改),直到我需要添加另一个路径(当调度完成时)。
看起来加载器只能在框架放置在应用程序所在的同一目录下时才能运行,但不能相反。
是否可以将此加载程序与
- 适当的命名空间支持
- 很少或没有黑客攻击
当图书馆是集中的并且许多应用程序将使用它时?
我的设置:
site1/public/index.php
启动执行调度的前端控制器,然后启动实际控制器。
我的(可能是错误的)命名空间设置:
Framework
using namespace中的每个类Framework
。这很好,直到我想启动一个从框架扩展类的控制器。这就是事情出错的地方。提到的 SplClassLoader 不能处理这样的路径。我从错误日志中看到的是主要问题lib
不是site1
我不能接受的问题。
php - phpunit and autoloader not working even with spl_autoload_register
I'm trying to get PHPunit working with an existing custom framework. I've gotten some basic tests to work but when I try to hook a test up to my bootstrap code, none of my classes will autoload! I've looked into the issue and changed my original __autoload to:
This still works for standard web calls, but when I try to run code via PHPunit, I still get a class not found error. Am I still doing something wrong?
php - 不能通过 spl_autoload_register 加载具有命名空间的 PHP 类?
当在类中实现命名空间时,我在加载类spl_autoload_register
时遇到问题。
下面的类,但是当没有autoloader
使用命名空间时加载任何类都没有问题,
例如一个tag
类,
现在通过类加载autoloader
类,
结果,
致命错误:第7行的C:\wamp\www\website\local\applications\master\sides\views\tags.php 中找不到类 'hello\tag'
知道如何修复我的autoloader
类,以便无论是否有命名空间,我都可以加载这些类?
编辑:
我保存类和类命名的文件夹,
php - Ubuntu autoload_register 上的 PHP 和命名空间问题
我这里有问题。我已经为所有类创建了命名空间。以前我使用 Windows 7 开发当前的应用程序,一切都很好。现在我刚搬到ubuntu,问题来了。
索引.php
我收到了这个错误
我找不到错误。希望你们能帮助我。任何问题都不要犹豫评论我会编辑。提前致谢。
更新 - 额外信息
PHP 版本 5.4.6
最近更新
知道如何在不使用 str_replace 的情况下解决这个问题吗?JULP 和 MOONWAVE 有答案!
php - 可以从对象中使用 spl_autoload_register 吗?
简单的问题,但我不知道这是否真的可能..
例子:
类测试有一个像这样的 spl_autoload_register:
$projectroot 是一个对象范围变量,带有项目目录的路径。
我在我的项目中包含类测试,从中创建一个新实例:
现在我希望 $test 在创建时加载一个带有函数的类文件:
其中 test2 是 /include/test2.php 中名为 test2 的类。
当我尝试这样做时,它给了我一个错误说:
但是当我尝试时:
它完全忽略了 test1 中的 spl_autoload_register 函数:/ 只是说明显然 test2 不是已知方法(未定义的属性)。
有没有办法在我的项目的类测试中使用 spl_autoload_register 函数,而无需在我的主项目中进一步定义它?
编辑
我使用全局变量“修复”了它,但我很好奇是否有一些 OOP 方法?(并不是说这是实用/最佳实践 OOP 使用...)只是好奇。