jjzjj

autoload

全部标签

PHP 的 "use"关键字和自动加载

我的问题分为三个部分:放入use语句会立即触发自动加载器,还是等到类被使用时才触发?(延迟加载)如果自动加载不是以延迟加载的方式完成,是否会对性能产生负面影响?最好遵循哪种模式,为什么?当未使用use语句时,PhpStorm将“不必要的完全限定名称...”显示为代码问题。这是一个带有use语句的LaravelController的示例类定义:namespaceApp\Http\Controllers;useCarbon\Carbon;classFooControllerextendsController{/***ThisactionusestheCarbonclass*/publicf

php - 如何使用 __autoload 从多个目录加载类?

跟进question,似乎只需使用下面的__autoload代码就可以解决重复问题,function__autoload($class_name){includeAP_SITE."classes_1/class_".$class_name.".php";}$connection=newdatabase_pdo(DSN,DB_USER,DB_PASS);var_dump($connection);结果,object(database_pdo)[1]protected'connection'=>object(PDO)[2]但这只能从一个目录加载类,其他目录呢?因为我将类分组在不同的目录中。

php - 如何在 Yii 中安装 AWS SDK

我想在我的Yii项目中使用AmazonAWSSDKforPHP,但是我收到各种包含错误(例如include(CFCredentials.php):failedtoopenstream:Nosuchfileordirectory)。我觉得可能和Yii假设类名必须匹配文件名有关...我们能做什么?? 最佳答案 我做到了:spl_autoload_unregister(array('YiiBase','autoload'));require_oncePATH_TO_AWS_SDK.'sdk.class.php';//Iwritedowni

php - 加载类时 spl_autoload_register 问题

所以我之前已经在这里问过这个问题,但是提供的解决方案对我不起作用。这是我的设置:/mylib/Vendor/Module/MyClass.php/document_rootindex.php这是我的index.php这是我的MyClass.php我的echo没有显示任何东西。显然我的课也没有加载。相反,我得到了这个错误。Fatalerror:CalltoundefinedmethodMyClass::test()in//index.phponline29请帮忙。我已经坚持了很长一段时间,而我的其余发展都在受苦。我尝试移动到spl_autoload_register()只是因为这是推荐的

php - 缺少 Google API autoload.php

我以前从未使用过GoodleAPI,现在我尝试通过API访问Google日历。我下载了google-api-php-client-master.zip,提取.../src/Google目录并将其复制到我的网络服务器(由第3方托管,这意味着我无法安装任何东西).根据我的代码需要开始的示例但是Client.php抛出一个错误:fatalerror:require_once():无法在/homepages/39/d396519017/htdocs/VC2/Google/Client中打开所需的''(include_path='.:/usr/lib/php5.4')。第18行的phpClien

php - 'use' 关键字会触发 PHP 中的自动加载吗?

在下面的示例中,自动加载器在什么时候加载类文件(如果有的话)?例如,如果$boolean_test===false是否加载子包?useOrg\Group\Package\Subpackage;//autoloadertriggeredhere?if($boolean_test){Subpackage::method();//orhere?}我更喜欢代码顶部附近的use语句,这样我可以看到页面中使用了哪些包,并提高了可读性。但是,如果仅根据条件使用包,我可能会加载不需要的资源。 最佳答案 Nouse不会触发自动加载。您可以在文件顶部使

php - 如果存在不存在的类,为什么 zend autoloader 测试会导致错误?

假设我已经在配置文件中为我编写的一些类注册了额外的命名空间“Tracker_”,使用autoloadernamespaces[]="Tracker_"具有此namespace和自动加载器的东西按预期工作,除非我正在测试错误处理。当我测试一个不存在的类是否存在时,使用class_exists("Tracker_DoesNotExist");它抛出一个异常include_once(Tracker/DoesNotExist.php):failedtoopenstream:Nosuchfileordirectory/path/Zend/Loader.php:146/path/Zend/Load

PHP Composer 自动加载不加载类

我刚刚开始使用composer进行依赖管理,我很难弄清楚我为什么不遵守psr-4进行自动加载,所以我来这里寻求建议。我有一个生成随机值的类,该类已经在packagist上了。项目结构如下(我将composer.json文件标记为A和B):项目目录|classfile.phpA|composer.json|vendor|autoload.php|ejfrancis|php-random-valueB|composer.json|RandomValue.phpcomposer.json{"require":{"ejfrancis/php-random-value":"dev-master"

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 - 错误 : You made a reference to a non-existent script @php artisan package:discover

我在laravel项目中运行composerdump-autoload时出错composerdump-autoloadGeneratingautoloadfiles>Illuminate\Foundation\ComposerScripts::postAutoloadDumpYoumadeareferencetoanon-existentscript@phpartisanpackage:discover然后执行phpartisanpackage:discover返回DiscoveredPackage:barryvdh/laravel-ide-helperDiscoveredPackag