草庐IT

spl_autoload

全部标签

php - PHP的spl_autoload_register是如何解决与require_once的循环依赖的?

PHP的spl_autoload_register是如何解决与require_once的循环依赖的?循环依赖可以解决一些情况,但不是全部。让我们从一个失败的例子开始。假设我们在不同的文件中定义了三个类:cat.phpclassCatextendsAnimal{}animal.phprequire_once('cat.php');classAnimalextendsCreature{}creature.phpclassCreature{}假设我们还有一个具有自动加载器并创建Animal实例的脚本:run.phpspl_autoload_register(function($classNa

php - Composer autoload_namespaces 数组是空的,但它正在下载我的包

我在Windows上使用composer,当我执行composerinstall或composerupdate.{"require":{"bcosca/fatfree":"dev-master","respect/validation":"^1.1"}}我的index.php中的第一行是require_once__DIR__.'\vendor\autoload.php';这似乎没有加载任何东西,例如,很多与未从这2个包中定义的类相关的错误。我进一步查看它,发现我的autoload_namespaces.php如下:数组完全是空的,怎么会这样呢?我希望在这里看到这两个包的要求...感谢您

php - 我无法使用 phpunit : Cannot open file "autoload.php" 进行测试

配置:PHPUNIT:4.5.0PHP:5.4.12服务器:WampComposer:版本1.0-dev2015-02-1721:55:44Composer.json:{"require-dev":{"phpunit/phpunit":"4.5.*"}}自动加载.php:registerNamespaces(array('Hangman'=>__DIR__.'/src','Symfony'=>__DIR__.'/vendor',));$loader->register();phpunit.xml:tests/Hangman/Testsvendor问题:我执行了:phpunit--boo

php - Composer autoload - 从父目录加载类

我目前正在开发一个需要从其父目录访问类的Laravel项目。Composer.json>PSR-4:"psr-4":{..."ModuleA\\":"../ModuleA/baseObjects","ModuleB\\":"../ModuleB/baseObjects"}示例文件结构:/var/www+-/xxx(project)+-/ModuleA+-/baseObjects-configClass.inc+-/ModuleB+-/baseObjects-configClass.inc+-/laravel-composer.json我运行composerdump-autoload但项

PHP 使用 SPL 迭代器递归删除空目录

我正在为如何使用SPL迭代器删除PHP中的空目录树而苦恼。考虑以下目录结构,其中所有目录都是空的:/topdirlevel1level2我试过以下方法:$it=newRecursiveIteratorIterator(newRecursiveDirectoryIterator('/topdir',RecursiveIteratorIterator::CHILD_FIRST));foreach($itas$file){if($file->isDir()){rmdir((string)$file);}}但是RecursiveIteratorIterator::CHILD_FIRST阻止了底

PHP 的 SPL : Do its interfaces involving arrays cover all array properties?

是否可以通过实现所有必要的SPL接口(interface)来编写一个与实际PHP数组几乎没有区别的类?他们是否遗漏了任何重要的东西?我想构建一个更高级的Array对象,但我想确保如果我用自定义Array类替换它们,我不会破坏到处使用数组的现有应用程序。 最佳答案 我能想到的唯一问题是gettype()和is_array()函数。检查你的代码gettype($FakeArray)=='array'is_array($FakeArray)因为虽然你可以像数组一样使用对象,但它仍然会被识别为一个对象。

php - 脚本@php artisan package :discover handling the post-autoload-dump event returned with error code 255

我把我的项目从办公table搬到了另一个办公table。当我运行phpartisan时,它不起作用。我尝试运行composerupdate,但它返回错误Script@phpartisanpackage:discoverhandlingthepost-autoload-dumpeventreturnedwitherrorcode255 最佳答案 这就是我在从Laravel版本6.x-7.x升级后解决这个问题的方法:在App\Exceptions\Handler中更改//UseException;UseThrowable;然后方法接受T

php - 使用供应商目录中的 autoloader.php 自动加载无法正常工作

我对composer的自动加载感到烦恼,因为自动加载器无法解析Doctrine\ORM\Mapping\Table。对于单元测试,我创建了具有典型注释的学说实体类:并使用这些实体创建了一个新的实体管理器。但我收到消息:Doctrine\Common\Annotations\AnnotationException:[SemanticalError]Theannotation"@Doctrine\ORM\Mapping\Table"inclassOmniSearchTest\Entity\Picturedoesnotexist,orcouldnotbeauto-loaded.对于一些单元测

php - 如何使用 SPL 检索完整的目录树?

如何使用SPL(可能使用RecursiveDirectoryIterator和RecursiveIteratorIterator)检索完整的目录树? 最佳答案 默认情况下,RecursiveIteratorIterator将使用LEAVES_ONLY作为__construct的第二个参数.这意味着它将只返回文件。如果你想包含文件和目录(至少这是我认为的完整目录树),你必须这样做:$iterator=newRecursiveIteratorIterator(newRecursiveDirectoryIterator($path),Re

PHP、SPL预定义常量

我在哪里可以获得一些关于SPL预定义常量的引用资料,例如SELF_FIRST、CHILD_FIRST?在php.net我得到的不多(只是他们的类型)。 最佳答案 我将概述pageyoulinkedto中的(一些)类常量然后提出其他几点。RecursiveIteratorIterator迭代模式RecursiveIteratorIterator::LEAVES_ONLY迭代模式。(这是默认模式。)这种迭代模式(三种之一)将迭代期间可用的项目限制为仅“叶子”(将递归结构想象成一棵树,树上有一系列分支发芽其他分支,或者在没有更多分支的情况