草庐IT

autoload_psr

全部标签

php - 拉维尔 4 : Fatal error: Class 'Patchwork\Utf8\Bootup' not found in autoload. PHP

我将"cviebrock/image-validator":"1.0.*"添加到composer.json的require部分。之后,我运行了composerupdate,我收到了这个fatalerror。:::错误:::Fatalerror:Class'Patchwork\Utf8\Bootup'notfoundinF:\xampp\htdocs\project\bootstrap\autoload.phponline46Scriptphpartisanclear-compiledhandlingthepost-update-cmdeventreturnedwithanerror[R

php - 在 php 中包含路径和 __autoload 函数

我正在尝试将几个php脚本转换为使用__autoload函数。现在我可以像这样使用include和require函数:require_once('path/to/script.php');但是在__autoload函数内部,我不能使用上面的行。我必须使用这个:require_once('absolute/path/to/script.php');为什么__autoload函数似乎没有使用我在php.ini中指定的包含路径? 最佳答案 不要使用__autoload...它有一些缺点(包括每次执行限制自己一个)。改用spl_autolo

php - spl_autoload_register 在包含的文件中不起作用

我正在使用spl_autoload_register为了加载类。我有一个index.php文件,其中包含一个init.php文件。spl_autoload_register函数在init.php文件中调用。在index.php文件中,它正常工作:我可以创建类和东西,它们的名称已解析。但后来,在index.php中,我包含了另一个文件work.php来完成一些特定的任务。奇怪的是,在work.php中,找不到我正在使用的类。如果我在work.php中再次调用spl_autoload_register,类就可以解析了。真正奇怪的是这种行为并不一致:在我的测试服务器上,我不必复制spl_au

PHP:PSR-2:为什么命名空间/使用声明后有空行?

所以前几天我复习了PSR编码标准(我正式遵循了),我总能理解一切的原因,而且我在过去10多年里所做的一切都以这种方式编码,因为在我的大学时代,非常相似的标准被严重强加于我-它只是卡住了。但是,我确实对PSR-2中的这条注释感到疑惑标准:ThereMUSTbeoneblanklineafterthenamespacedeclaration,andthereMUSTbeoneblanklineaftertheblockofusedeclarations.这是为什么?我不反对它,但我确信有某种背景或历史可以解释,而且它从来没有真正跳出来告诉我为什么。我想显而易见的原因是易读性,但我觉得这个标

PHP __autoload 无法重新声明

我开始使用PHP__autoload函数,现在我遇到了那些奇怪的fatalerror:无法重新声明类xxx错误。这很奇怪,因为这些错误发生在我什至没有使用自动加载功能加载的类上。我还使用require_once来包含文件。我真的很困惑这个问题。任何人都知道使用自动加载时出现的此类错误吗? 最佳答案 require_once/include_once仅在尝试包含文件时查看文件名,而不是类名。所以你可以在Foo.php和B.php中都有类Foo,然后你就会得到那个错误。我不确定__autoload会给你带来什么问题,除非__autolo

php - __autoload 检测并包含接口(interface)

我在我的脚本中使用__autoload来根据需要包含类。我的脚本使用类名中的提示来查找包含它的文件。如果它以模型结尾,它在模型目录中,Controller在Controller目录中,等等。我开始实现接口(interface),因此需要调整我的自动加载器。理想情况下,当创建对象时,自动加载器将确定对象的文件名、对象的存储位置,并包含该文件。然后它会询问该类实现了哪些接口(interface),然后自动包含这些文件。有点像function__autoload($classname){echo$classname;include("classes/$classname.php");$int

php - 使用基本授权作为中间件 PSR-7 PSR-15

TD;LR:我试图掌握中间件实现背后的理念。它似乎可以正常工作,但我该如何正确处理响应,以便它向浏览器显示基本授权登录提示?--我正在使用:equip/dispatch用于PSR-15中间件调度器guzzlehttp/psr7用于PSR-7ServerRequestInterfacemiddlewares/http-authentication示例基本授权中间件middlewares/response-time额外的虚拟中间件(检查是否也在管道中执行)运行下面的代码:$middleware=[new\Middlewares\ResponseTime(),(new\Middlewares

php - 关于一个简单的 PHP Autoloader 的问题

我刚开始学习PHP命名空间并开始创建一个简单的自动加载函数。O所做的是:function__autoload($name){echo$name."";require_once$name.".php";}因此,如果我不使用任何别名或导入语句(例如,这会起作用)。使用MainNamespace\Subnamespace因为如果我这样做,假设我有:\GreatApp\Models\User.php\GreatApp\Models\Project.php\GreatApp\Util\Util.php\GreatApp\Util\Test\Test.php如果我尝试这样做:newGreatApp

php - Symfony2 bundle 与 PSR-0 兼容的第 3 方库之间有什么区别?

我知道一个包应该包含thebestpracticesdocumentation中概述的目录结构和其他约定。.我仍然不明白为什么我应该在Symfony2安装中选择将库作为bundle安装还是“按原样”安装PSR-0兼容库。例如,我想安装GuzzleHttpClient库。目前我有两个版本可供选择:libraryitself或Guzzle'bundle'.我可以看到包使用了库,但由于我是Symfony2的新手,所以我还不能掌握“大局”。有人可以帮帮我吗? 最佳答案 使用包而不是库将允许您从ServiceContainer访问库。这将使您

php - 使用 SPL_AUTOLOAD_REGISTER 时命名空间如何工作?

我今天正在学习如何在PHP中使用命名空间和自动加载,但我似乎遇到了障碍。当我不使用spl_autoload_register而是使用require_once时,事情似乎有效。我的文件夹结构非常简单:-index.php-class/-Users.php在我的index.php文件中我有:在我的class/Users.php文件中我有:这绝对没问题,返回了1的ID理想情况下,我想使用自动加载功能,我发现了spl_autoload_*,这就是我尝试做的,但没有成功:在我的class/Users.php文件中我有:在我的index.php文件中我有:但是我得到一个错误:`Class'User