草庐IT

spl_autoload

全部标签

php - 在没有服务器权限的情况下安装 PECL-Extension "SPL-Types"

我想在我的Web应用程序中使用SPLEnum,它是PECL扩展SPL类型的一部分。现在,我从未使用过扩展,所以我不知道它们是如何工作的。我已要求我的托管商安装该软件包,但由于服务器的安全原因,他们无法安装。是否有可能以某种方式手动包含文件,就像在Java中一样(手动将文件复制到网络服务器并包含它们)?感谢您的回答问候,弗洛 最佳答案 PECL包含用于编译成PHP的C扩展。因此,您需要在运行PHP的服务器上拥有适当的权限,而您永远无法在共享主机上获得这些权限。尝试找到一个类似的PEAR扩展,它们是用PHP编写的,并且与任何其他PHP文

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

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

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 - 标准 PHP 库 (SPL) 函数的时间复杂度

在谷歌搜索了一下后,似乎没有关于每个SPL函数的复杂性的文档。有没有人遇到过这方面的一些信息? 最佳答案 PHPArchitect有一本书叫MasteringtheSPLLIbrary数据结构部分有一个表,其中包含以下操作的所有数据结构的代码复杂度:在开头插入元素I在末尾插入元素在中间插入元素从头删除元素从末尾删除元素从中间删除元素顺序阅读随机阅读您会惊讶于其中有多少操作是O(1),但实际速度可能会有所不同,因为某些数据结构可以更好地利用内存。我绝对建议您购买这本书,因为它提供了一些有用的信息。

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

php - 如何检查函数是否已存在于 SPL 堆栈中?

我正在尝试使用spl_autoload_register并且我想创建一个if()语句来检查类方法是否已经注册。例如:if(spl_autoload_function(array($this,'_loadClass'))//Thendonothingelse//Thenrunspl_autoload_register(array($this,'_loadClass));类似上面的代码/方法是否可行? 最佳答案 IamtryingtodoanautoloaderandIwanttocreateanifstatementthatwillc

php - 脱脂框架 : the F3 Autoloader

我正在学习fatfree框架,但我遇到了一个问题。我试用了F3Autoloader并得到了这个:InternalServerErrorFatalerror:Class'Gadgets\iPad'notfound在index.php我写了:$f3->set('AUTOLOAD','autoload/');$obj=newGadgets\iPad;并创建了一个名为Gadgets的文件夹,里面有一个文件,名为ipad.php在文件中我放了一个类 最佳答案 对于AUTOLOAD中的每个路径,F3正常检查类名,然后再次检查小写。该行为在3.1

php - 调用类常量时,PHP Autoloader 会加载吗?

我有一个定义了一些类常量的类。为了简单起见,它看起来像这个假类。classMyThing{constBORIS='Yeltsin';}我正在注册类所在的目录。AutoLoader::registerDirectory('lib');我正在使用PHP的自动加载器并且它按预期工作,除了当我试图调用此类const时。如果我这样做。MyThing::BORIS我明白了。Undefinedclassconstant'BORIS'我认为自动加载器应该是这样工作的,但我想知道我是否正确。我正在使用这个AutoLoader类,这是我开始在这家公司工作之前选择的,但它似乎有效。isDir()&&!$fi

php - Zend Resource Autoloader 不适用于命名空间

我在ZendFramework上遇到了这种自动加载问题。基本上在库文件夹中有一个名为LunaZend的文件夹。LunaZend有一些可以在ZendFramework中使用的类,这些类有namespace并且必须仅通过调用namespace名称自动加载。命名空间就像LunaZend\DB,LunaZend\Etc...在Bootstrap中,我有一个_initAutoLoadNS函数,它有$resource=newZend_Loader_Autoloader_Resource(array('basePath'=>APPLICATION_PATH.'/../library/LunaZend

PHP: AutoLoader 是否能够在单个 php 文件中加载多个类?

引自AutoloadingClasses:Manydeveloperswritingobject-orientedapplicationscreateonePHPsourcefileperclassdefinition.Oneofthebiggestannoyancesishavingtowritealonglistofneededincludesatthebeginningofeachscript(oneforeachclass).InPHP5,thisisnolongernecessary.Thespl_autoload_register()functionregistersany