草庐IT

spl-autoloader

全部标签

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迭代模式。(这是默认模式。)这种迭代模式(三种之一)将迭代期间可用的项目限制为仅“叶子”(将递归结构想象成一棵树,树上有一系列分支发芽其他分支,或者在没有更多分支的情况

php - SPL 与数组 : When should we use SPL and when should we use Array in PHP?

在java和C++中,当我们不知道大小时-不像在PHP中那样使用数组,而是使用linkedList等。在PHP中存在SPL,但大多数时候程序员使用数组,为什么(因为人们不了解SPL)?什么时候我们应该在PHP和什么时候使用SPL以及在这种情况下PHP和Java/C++之间的区别是什么? 最佳答案 每个PHP请求都必须初始化所有变量,并在请求后释放它们。因此,特殊数据结构(如最大堆、链表或队列)比数组更高效的情况并不常见。对于初学者来说,数组也更容易理解和使用。PHP与C++的不同之处在于数组长度是动态的。您可以随时添加元素。$arr

php - 让 APC 与 spl_autoload_register 配合使用

我正在使用ZendAutoloader加载Zend类,以便将Zend_AMF与我的应用程序集成。在我安装并启用APC3.1.9之前,一切都运行良好。我收到这个错误:Fatalerror:Accesstoundeclaredstaticproperty:Zend_Loader_Autoloader::$_instanceinC:\blahblah我假设APC似乎在自动加载器、静态属性和静态方法方面存在问题。APC是3.1.9版,安装在Windows7机器上,PHP5.3.8在Apache2.2服务器上作为fastCGI运行。有没有人见过这个错误?如果是这样,有什么方法可以解决这个问题?

php - 拉维尔 5 : How can I add seeder class to autoload?

我遵循文档:http://laravel.com/docs/master/migrations#database-seeding我将UserTableSeeder文件放在DatabaseSeeder附近。在resources/database/seeds/文件夹中。这些文件没有命名空间(只有app/中的类有命名空间)。当然有一个异常(exception):exception'ReflectionException'withmessage'ClassUserTableSeederdoesnotexist'解决这个问题的最佳方法是什么? 最佳答案

php - 替代 PHP 的 __autoload 函数?

我读过有关在函数需要时动态加载类文件的内容,如下所示:function__autoload($className){include("classes/$className.class.php");}$obj=newDB();当你创建该类的新实例时,它会自动加载DB.class.php,但我也在一些文章中读到,使用它是不好的,因为它是一个全局函数,并且您带入项目的任何具有__autoload()函数的库都会把它搞砸。那么有人知道解决方案吗?也许另一种方法可以达到与__autoload()相同的效果?在找到合适的解决方案之前,我将继续使用__autoload(),因为在您引入库等之前它不会

PHP 5.4 与 5.3 : Autoloading multiple classes in the same file

首先,本文有点长,感谢您的阅读。我的问题与此类似:Classnotfoundinthesamefile我有一个定制框架,最初是在2008年为PHP5编写的,多年来已经升级到可以与PHP5.3一起使用。我一直在研究5.4兼容性并遇到了一个严重的问题。ORM层自动为每个数据库表生成类。这些类都位于每个表的一个文件中,我们的自动加载器会在需要时加载该文件。例如,“公共(public)”模式(postgresql)中的“客户”表将具有以下类:PublicCustomer、PublicCustomerDBReader、PublicCustomerDBWriter。现在这可能不是理想的设置,但这是

php - Composer : Specify autoload_files require order

Laravel的辅助函数有if(!function_exists('xx'))保护。我可以指定autoload_files的顺序,让Kint.class.php在helpers.php之前要求吗?returnarray($vendorDir.'/laravel/framework/src/Illuminate/Support/helpers.php',$vendorDir.'/raveren/kint/Kint.class.php',); 最佳答案 这是一个非常令人讨厌的问题。我为Composer提交了一个功能请求:https://

PHP __autoload 性能

我有一个脚本使用autoload来加载找不到的类。我没有故意包含该文件(尽管我可以),但我希望自动加载功能包含所需的文件。因为脚本可以递归,也就是说,如果类已经加载,我不想在脚本的每次递归时检查相应的文件是否已加载以及class_exists是否存在。 最佳答案 如果你想避免__autoload,你可以使用require_once而不是include。使用__autoload的性能损失可能相当大,尤其是因为一些操作码缓存不能正确支持它。但是,考虑到它非常方便,我建议使用它,除非您的操作码缓存不缓存自动加载包含。