jjzjj

autoloader

全部标签

php - 如何在 PHP 中对多个目录使用 spl_autoload_register?

我实际上正在尝试为自己创建一个MVC框架,但是我在使用Autoload时遇到了麻烦。其实这不是问题,但我想请教各位大神,在目录不同的情况下,他们是如何使用spl_autoload_register函数的。假设我们有以下目录:ControllersLibsModels每个文件夹包含不同的类,例如:Controllers:Main.phpFile.phpAbout.phpLibs:Main.phpFront_controller.phpModels:Index.phpFile.phpLogin.php您会注意到,某些文件名可能在不同的目录中被发现具有相同的名称。好的,这就是我到目前为止所尝

php - 如何在 PHP 中对多个目录使用 spl_autoload_register?

我实际上正在尝试为自己创建一个MVC框架,但是我在使用Autoload时遇到了麻烦。其实这不是问题,但我想请教各位大神,在目录不同的情况下,他们是如何使用spl_autoload_register函数的。假设我们有以下目录:ControllersLibsModels每个文件夹包含不同的类,例如:Controllers:Main.phpFile.phpAbout.phpLibs:Main.phpFront_controller.phpModels:Index.phpFile.phpLogin.php您会注意到,某些文件名可能在不同的目录中被发现具有相同的名称。好的,这就是我到目前为止所尝

php - 如何使用 spl_autoload() 而不是 __autoload()

根据http://php.net/manual/en/language.oop5.autoload.php魔法函数__autoload()从PHP7.2.0开始被弃用,从PHP8.0.0开始被移除。官方替代方法是spl_autoload()。参见http://www.php.net/manual/en/function.spl-autoload.php.但是PHP手册并没有说明这个宝贝的正确使用方法。我的问题:如何用带有spl_autoload()的版本替换这个(我的自动类自动加载器)?function__autoload($class){include'classes/'.$clas

php - 如何使用 spl_autoload() 而不是 __autoload()

根据http://php.net/manual/en/language.oop5.autoload.php魔法函数__autoload()从PHP7.2.0开始被弃用,从PHP8.0.0开始被移除。官方替代方法是spl_autoload()。参见http://www.php.net/manual/en/function.spl-autoload.php.但是PHP手册并没有说明这个宝贝的正确使用方法。我的问题:如何用带有spl_autoload()的版本替换这个(我的自动类自动加载器)?function__autoload($class){include'classes/'.$clas

PHP spl_autoload_register

我正在尝试利用PHP中的自动加载。我在不同的目录中有各种类,所以我引导自动加载如下:functionautoload_services($class_name){$file='services/'.$class_name.'.php';if(file_exists($file)){require_once($file);}}functionautoload_vos($class_name){$file='vos/'.$class_name.'.php';if(file_exists($file)){require_once($file);}}functionautoload_print

PHP spl_autoload_register

我正在尝试利用PHP中的自动加载。我在不同的目录中有各种类,所以我引导自动加载如下:functionautoload_services($class_name){$file='services/'.$class_name.'.php';if(file_exists($file)){require_once($file);}}functionautoload_vos($class_name){$file='vos/'.$class_name.'.php';if(file_exists($file)){require_once($file);}}functionautoload_print

php - Laravel - 在不调用 composer dump-autoload --optimize 的情况下生成 bootstrap/compiled.php

生成bootstrap/compiled.php的记录方法是运行artisan命令:artisan优化artisanoptimize的问题在于它运行composerdump-autoload--optimize,它会在composer_classmap.php文件中扁平化每个PSR-0加载类。如果您使用像Zend这样具有PSR-0自动加载功能的库,则该类映射文件会超过3000行。这对于在每个Web请求上加载来说都不是最佳选择,所以我不想这样做。如何在不填充composer类映射文件的情况下简单地生成compiled.php文件? 最佳答案

php - PHP 的__autoload() 有多独特?

PHP的__autoload()(documentation)对我来说非常有趣。这是它的工作原理:你尝试使用一个类,比如newToast_Mitten()(脚注1)该类尚未加载到内存中。PHP收回它的拳头,用一个错误来打击你。它暂停了。“等等,”它说。“定义了一个__autoload()函数。”它运行它。在该函数中,您以某种方式将字符串Toast_Mitten映射到classes/toast_mitten.php并告诉它需要该文件。确实如此。现在类在内存中,您的程序继续运行。内存优势:您只加载需要的类。简洁的好处:您可以停止在任何地方包含这么多文件,而只包含您的自动加载器。如果事情变得

php - 是否为自动加载类的父类调用了 __autoload()?

在main.php中,添加了自动加载并创建了一个新对象:function__autoload($class){require_once($class.'.php');}...$t=newTriangle($side1,$side2,$side3);在Triangle.php中:classTriangleextendsShape{...}Shape.php是一个抽象类:abstractclassShape{abstractprotectedfunctionget_area();abstractprotectedfunctionget_perimeter();}我可以看到__autoloa

PHP5 AutoLoader SPL_AutoLoad 失败

我将下面的代码作为一个自动加载类,但是看起来clean方法根本不起作用,它总是退回到dirty方法。我是否错误地使用了spl_autoload?如果是这样,正确(更好)的方法是什么?这是低效的吗,如何改进?尽管使用此方法时,我总是得到诸如bottom之类的输出,在某些情况下,它只是找不到类,但不会抛出任何错误我将显示错误设置为1并检查了错误日志,但完全丢失了。代码初始化为require"vendor/AutoLoader.class.php";self::setGlobal("autoloader",AutoLoader::init());类如下:publicstatic$instan