Laravel Создать пакет с поставщиком услуг и фасадом - не работает

Я пытаюсь создать пакет, который использует Guzzle, он изначально был просто ServiceProvider, но после некоторых исследований он выглядел так, как будто бы лучше всего было создать небольшой специальный пакет.

Однако из-за отсутствия у меня опыта работы с Laravel у меня возникают проблемы с этим. На данный момент я получаю сообщение об ошибке:

Класс zoho-api не существует

Ниже приведен код пакета, я надеюсь, что кто-нибудь увидит, где я ошибся / что-то пропустил, и поможет направить меня в правильном направлении. До сих пор я наслаждался опытом обучения, будьте добры, переступите черту.

Пакет находится здесь: api/packages/energynet/zoho

В папке src:

ZohoServiceProvider.php

<?php

namespace EnergyNet\Zoho;

use Illuminate\Support\ServiceProvider;

class ZohoServiceProvider extends ServiceProvider
{
    /**
     * Indicates if loading of the provider is deferred.
     *
     * @var bool
     */
    protected $defer = true;

    /**
     * Perform post-registration booting of services.
     *
     * @return void
    */
    public function boot()
    {
        if ($this->app->runningInConsole()) {
            $this->publishes([$this->configPath() => config_path('zoho.php')]);
        }
    }

    /**
     * Register the application services.
     *
     * @return void
     */
    public function register()
    {
        $this->mergeConfigFrom($this->configPath(), 'cors');

        $this->app->bind('zoho-api', function ($app){
            $client = new Client([
                'base_uri' => config('zoho.endPoint') . 'crm/private/' . config('zoho.defaultResponse')
            ]);
            return new ZohoApi($client);
        });
    }

    protected function configPath()
    {
        return __DIR__ . '/../config/zoho.php';
    }
}

ZohoApi.php

<?php

namespace EnergyNet\Zoho;

use GuzzleHttp\Client;

class ZohoApi
{
    protected $client;

    protected $authScope;

    public function __construct(Client $client)
    {
        $this->client = $client;

        $authScope = '?authtoken=' . config('zoho.authtoken') . '=' . config('zoho.scope');
    }

    public function ZohoLeads(){

        $response = $client->request('GET', 'Leads/getRecords' . $authScope);

        dd($response);
    }
}

ZohoFacade.php

<?php

namespace EnergyNet\Zoho;

use Illuminate\Support\Facades\Facade;

class ZohoFacade extends Facade
{
    protected static function getFacadeAccessor()
    {
        return 'zoho-api';
    }
}

В config/app.php

'providers' => [
    ...,
     EnergyNet\Zoho\ZohoServiceProvider::class,
]

'aliases' => [
    'Zoho' => EnergyNet\Zoho\ZohoFacade::class
]

В composer.json

"autoload": {
     "psr-4": {
           "App\\": "app/",
            "EnergyNet\\Zoho\\": "packages/energynet/zoho/src"
      }

Затем в LeadController.php

namespace App\Api\V1\Controllers;
...
use Zoho;

class LeadController extends Controller
{
    ...

    public function qualify(Request $request)
    {
         var_dump(Zoho::ZohoLeads());

Надеюсь, это достаточно ясно, любые вопросы, пожалуйста, дайте мне знать. Действительно надеясь, что кто-то может помочь. Спасибо!

0 ответов

Другие вопросы по тегам