Laravel使用供应商目录php类
最近我学习了Laravel,并尝试实现BingAds SDK来获取一些报告到我的数据库,但失败了 我在app/http/Controllers/BingAdController.php中有一个名为BingAdController.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
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中名称空间的工作原理。