Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel使用供应商目录php类_Php_Laravel - Fatal编程技术网

Laravel使用供应商目录php类

Laravel使用供应商目录php类,php,laravel,Php,Laravel,最近我学习了Laravel,并尝试实现BingAds SDK来获取一些报告到我的数据库,但失败了 我在app/http/Controllers/BingAdController.php中有一个名为BingAdController.php的控制器 namespace App\Http\Controllers; use SoapVar; use SoapFault; use Exception; use SoapClient; use Illuminate\Http\Request; use A

最近我学习了Laravel,并尝试实现BingAds SDK来获取一些报告到我的数据库,但失败了

我在app/http/Controllers/BingAdController.php中有一个名为BingAdController.php的控制器

namespace App\Http\Controllers;

use SoapVar;
use SoapFault;
use Exception;
use SoapClient;

use Illuminate\Http\Request;
use App\BingAd;
use App\Http\Controllers\Controller;
use Microsoft\BingAds\V12\Reporting\ReportRequestStatusType;
use Microsoft\BingAds\Auth\ServiceClient;
use Microsoft\BingAds\Auth\ServiceClientType;
use Microsoft\BingAds\Samples\V12\AuthHelper;
use Microsoft\BingAds\Samples\V12\ReportRequestLibrary;

include("/Applications/MAMP/htdocs/laravel/vendor/microsoft/bingads/samples/V12/ReportRequests.php");

class BingAdController extends Controller {
    public function bingadsReporting(){
BingAds SDK是通过composer安装的,它们位于vendor/microsoft/BingAds/samples/V12/ReportRequests.php中

namespace Microsoft\BingAds\Samples\V12;

// require_once __DIR__ . "/vendor/autoload.php";
require_once "/Applications/MAMP/htdocs/laravel/vendor/autoload.php";

include __DIR__ . "/AuthHelper.php";
include __DIR__ . "/ReportRequestLibrary.php";

use SoapVar;
use SoapFault;
use Exception;

use Microsoft\BingAds\V12\Reporting\ReportRequestStatusType;
use Microsoft\BingAds\Auth\ServiceClient;
use Microsoft\BingAds\Auth\ServiceClientType;
use Microsoft\BingAds\Samples\V12\AuthHelper;
use Microsoft\BingAds\Samples\V12\ReportRequestLibrary;

$GLOBALS['AuthorizationData'] = null;
$GLOBALS['Proxy'] = null;
$GLOBALS['CampaignManagementProxy'] = null; 

class ReportRequests {

    public $DownloadPath, $length, $folder;
BingAdController.php

namespace App\Http\Controllers;

use SoapVar;
use SoapFault;
use Exception;
use SoapClient;

use Illuminate\Http\Request;
use App\BingAd;
use App\Http\Controllers\Controller;
use Microsoft\BingAds\V12\Reporting\ReportRequestStatusType;
use Microsoft\BingAds\Auth\ServiceClient;
use Microsoft\BingAds\Auth\ServiceClientType;
use Microsoft\BingAds\Samples\V12\AuthHelper;
use Microsoft\BingAds\Samples\V12\ReportRequestLibrary;

include("/Applications/MAMP/htdocs/laravel/vendor/microsoft/bingads/samples/V12/ReportRequests.php");

class BingAdController extends Controller {
    public function bingadsReporting(){
ReportRequests.php

namespace Microsoft\BingAds\Samples\V12;

// require_once __DIR__ . "/vendor/autoload.php";
require_once "/Applications/MAMP/htdocs/laravel/vendor/autoload.php";

include __DIR__ . "/AuthHelper.php";
include __DIR__ . "/ReportRequestLibrary.php";

use SoapVar;
use SoapFault;
use Exception;

use Microsoft\BingAds\V12\Reporting\ReportRequestStatusType;
use Microsoft\BingAds\Auth\ServiceClient;
use Microsoft\BingAds\Auth\ServiceClientType;
use Microsoft\BingAds\Samples\V12\AuthHelper;
use Microsoft\BingAds\Samples\V12\ReportRequestLibrary;

$GLOBALS['AuthorizationData'] = null;
$GLOBALS['Proxy'] = null;
$GLOBALS['CampaignManagementProxy'] = null; 

class ReportRequests {

    public $DownloadPath, $length, $folder;
拉威尔一直说找不到这个班。。。
我已经陷入这个问题两天了。。。请帮助

您不应该在代码中一次手动调用include或require\u-Laravel使用Composer的autoloader开箱即用,因此您应该能够引用所需的类,它将完成其余的工作

首先,确保您已经通过Composer安装了Bing的SDK,也就是说,它添加到Composer.json中,并且是通过命令行工具安装的。如果你只是自己下载,然后把它放在供应商目录中,它就不起作用了

然后,您应该能够调用新的Microsoft\BindAds\Auth\ServiceClient或任何您想要的类-Composer将知道在何处以及如何为您找到此类


如果您已经通过Composer安装了它,但仍然存在问题,那么您需要提供您遇到问题的确切代码,以及您看到的完整错误和堆栈跟踪,以便我们能够帮助调试它。

最终我找到了解决方案

将vendor/microsoft/bingads添加到vendor/composer.json->classmap中


不知道为什么BingAds即使通过composer安装也没有自动更新composer.json。

我通过composer.still类安装了sdk,但找不到“App\Http\Controllers\Microsoft\BindAds\Auth\ServiceClient”。这可能是因为两个php文件都有名称空间吗?如果是,我无法在我的BingAdController.php中添加额外的名称空间。您需要将use-Microsoft\BindAds\Auth\ServiceClient添加到文件的顶部,以便它知道如何在正确的位置查找该类。否则,它将查找相对于当前命名空间App\Http\Controllers的类。请使用Microsoft\BindAds\Auth\ServiceClient;名称空间App\Http\Controllers;仍然找不到Get类:-use语句应该在namespace语句之后。您可能需要更多地阅读PHP中名称空间的工作原理。