草庐IT

AUTOLOAD

全部标签

php - 需要时自动加载函数/类库

首先,介绍一下背景。我工作的公司使用海量函数/类库,每个页面都包含它。成千上万行函数,其中90%可能甚至不会在页面上调用。为了稍微减轻服务器负载,我一直在试验更智能的库设置。为此,我将整个文件拆分为分类库文件(即sql.functions.php、date.functions.php等。)不幸的是,在每个页面上包含每个文件根本没有帮助,有选择地包含文件几乎是不可能的,而且很容易出错。我正在寻找的是类似于PHP的___autoload()函数的设置,它会在启动未知类时自动搜索特定命名的文件,以尝试找到它。但是,此函数不适用于函数调用,仅适用于类。有没有办法指示PHP在调用未定义函数(即h

php - set_error_handler 函数不调用自动加载

我将set_error_handler()函数设置为在出现错误时调用函数。在那个函数中我有自己的异常类实现:functionacs_error_handler($errno,$errstr,$errfile,$errline){thrownewacs_exception($errstr,$errno);}这给了我以下错误:Fatalerror:Class'acs_exception'notfound出于某种原因,这个函数没有调用我设置的自动加载函数:spl_autoload_register('__autoload');如果我添加一行:__autoload('acs_exception

php - 在 Symfony2 项目上使用外部非 PSR-0 库的正确方法

我正在开发一个应用程序,它将通过他们的RESTPHPSDK连接到IntuitQuickbooksAPI。在基本的PHP中,我可以正常工作,因为我按如下方式加载文件:require_once('../api/config.php');//DefaultV3PHPSDK(v2.0.1)fromIPPrequire_once(PATH_SDK_ROOT.'Core/ServiceContext.php');require_once(PATH_SDK_ROOT.'DataService/DataService.php');require_once(PATH_SDK_ROOT.'Platform

PHP 最终阻止自动加载中止

我对finallyblock和自动加载有疑问。我正在使用PHP5.5.9。这是一个最小的例子:测试.php:如您所见,我们抛出了一个异常,并希望运行一个finally和一个catchblock。Test::printIt是一种在其参数上调用echo的简单方法。类Test是通过注册的自动加载函数加载的。运行此程序打印finally1catch而不是finally1finally2catch,因此对Test::printIt(1);的调用似乎中止了finally堵塞。问题似乎是finallyblock中的自动加载。如果我们取消注释行(1),则Test已经加载到finallyblock中。在

php - 如何使用NetBeans IDE组织PHPUnit测试和自动加载

有自动加载(http://www.php-fig.org/psr/psr-0/)和phpunit测试(https://phpunit.de/manual/current/en/organizing-tests.html)的规则。单独地说,它们很容易实现,但结合起来却不容易。我也读过主题aPHPUnitbestpracticestoorganizetests但对我来说,应用这个答案并不明显。在编写自己的项目时,我遇到了一些问题,这些问题可能与代码组织的起源相同。我希望我能有一个真正简单的例子食谱。因此,我提出了一个很大的问题。示例项目我使用netbeanside7.4是因为它支持phpu

php - PSR 4 自动加载找不到类

我不确定为什么我的PSR-4auotloader不工作。我的composer.json文件很简单{"require":{"abraham/twitteroauth":"*"},"autoload":{"psr-4":{"Filters\\":"src"}}}我的PHP文件,位于src/FiltersnamespaceFilters;classBlogFilter{publicfunction__construct(){return'hellofromtheconstructor';}}在我位于根目录的主文件中,我有以下内容require'vendor/autoload.php';use

php - 更改供应商目录不再使用 Symfony 3.4 找到文件

我正在尝试更改Symfony3.4应用程序的依赖目录。我需要它,因为我正在使用Docker在macOS上工作,我宁愿不与主机共享它们,因为文件同步太慢了。relateddocumentation,说:Thechangeinthecomposer.jsonwilllooklikethis:{"config":{"bin-dir":"bin","vendor-dir":"/some/dir/vendor"},}我做的Then,updatethepathtotheautoload.phpfileinapp/autoload.php://app/autoload.php//...$loader

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

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

php - 为 PHP 导入包或自动加载?

对于在PHP项目中包含文件,您会推荐什么解决方案?没有手动调用require/include函数-所有内容都通过自动加载函数加载在需要时导入包。这里是包导入API:import('util.html.HTMLParser');import('template.arras.*');在此函数声明中,您可以用点(包层次分隔符)分解字符串,循环遍历特定包(文件夹)中的文件以仅包含其中一个或所有文件(如果在末尾找到星号)字符串,例如('template.arras.*').我在包导入方法中看到的一个好处是,它可以强制您使用更好的对象分解和类分组。我在自动加载方法中看到的一个缺点是自动加载功能会变

PHP 5.3 使用和 Symfony 表单

我正在尝试将一些Symfony表单组件包含到我的项目中。useSymfony\Component\Form\Form;useSymfony\Component\Form\FormInterface;如果我这样做,我会得到:Fatalerror:Class'Symfony\Component\Form\Form'notfound即使我知道这是表单元素所在的位置。使用需要'Symfony\Component\Form\Form.php'有效,但我需要为表单元素添加别名才能使类正常工作。编辑:在将ClassLoader复制到项目后尝试此操作仍然会带来相同的错误:require_once__D