Size: a a a

2020 November 27

AS

Alex Sin in Laravel UA
Роман Игумнов
Ничего не понял)
Корректно ли ты зарегал провайдер, корректно ли ты указал неймспейс
источник

РИ

Роман Игумнов... in Laravel UA
Вот таким образом зарегистрировал его в app.php
App\Providers\PayPartsServiceProvider::class,
источник

РИ

Роман Игумнов... in Laravel UA
и все. Больше нигде ничего не делал
источник

AS

Alex Sin in Laravel UA
А namespace в файле провайдера соответствует?
источник

AS

Alex Sin in Laravel UA
Вообще интересный случай). Интересно, как же ты его разрешишь, раньше с таким не сталкивался
источник

YP

Yurii Prudskyi in Laravel UA
Роман Игумнов
Ребята всем привет! Все вожусь я со своими Providers. Не могу найти проблему. Если что в конфиг app.php сервис подключен. У меня ошибка: Call to a member function bind() on null. Класс и интерфейс точно существуют проверял class_exist и interface_exist

class PayPartsServiceProvider extends ServiceProvider
{
   private $storeId;

   private $password;

   private $payParts;

   public function __construct()
   {
       $this->storeId = config('payparts.store_id');
       $this->password = config('payparts.password');

       if(empty($this->storeId)){
           throw new \InvalidArgumentException('store_id is  empty');
       }

       if(empty($this->password)){
           throw new \InvalidArgumentException('password is empty');
       }

       $this->payParts = new PayParts($this->storeId, $this->password);

   }
   /**
    * Register services.
    *
    * @return void
    */
   public function register()
   {
       $this->app->bind(
           'App\Interfaces\PayPartsInterface',
           'App\Services\PayPartsService');
   }

   /**
    * Bootstrap services.
    *
    * @return void
    */
   public function boot()
   {

   }
}

namespace App\Services;
use App\Interfaces\PayPartsInterface;

class PayPartsService implements PayPartsInterface
{
   public function setOptions(array $options)
   {
       $this->payParts->setOptions($options);
   }

   public function create(string $method)
   {
       return $this->payParts->create($method);
   }
}


namespace App\Interfaces;

interface PayPartsInterface
{
   public function setOptions(array $options);

   public function create(string $method);
}
у тебя все еще конструктор в сервис провайдере)
источник

РИ

Роман Игумнов... in Laravel UA
Yurii Prudskyi
у тебя все еще конструктор в сервис провайдере)
Блин... Ну мне он там нужен((  Куда тогда эти данные вносить лучше?
источник

AS

Alex Sin in Laravel UA
Роман Игумнов
Блин... Ну мне он там нужен((  Куда тогда эти данные вносить лучше?
первая мысль - и в бут и в регистер)
источник

YP

Yurii Prudskyi in Laravel UA
зачем он тебе там нужен? Ты там что-то странное делаешь и никак не юзаешь) Вот засетил ты $this->payParts, что ты дальше с ним делаешь?
источник

РИ

Роман Игумнов... in Laravel UA
Yurii Prudskyi
зачем он тебе там нужен? Ты там что-то странное делаешь и никак не юзаешь) Вот засетил ты $this->payParts, что ты дальше с ним делаешь?
Адльше я себе вставляю интерфейс где нужно и работаю с ним
источник

YP

Yurii Prudskyi in Laravel UA
нет, не вставляешь
источник

YP

Yurii Prudskyi in Laravel UA
у тебя payParts теперь принадлежит сервис провайдеру, ты никак его не юзаешь и никуда не передаешь
источник

РИ

Роман Игумнов... in Laravel UA
Видимо я концепцию сервис провайдера не до конца понимаю ((
источник

YP

Yurii Prudskyi in Laravel UA
именно так
источник

РИ

Роман Игумнов... in Laravel UA
как же ее понять то? Может видео или стати посоветуешь?
источник

YP

Yurii Prudskyi in Laravel UA
источник

AS

Alex Sin in Laravel UA
Роман Игумнов
как же ее понять то? Может видео или стати посоветуешь?
а как ты ее понимаешь сейчас? Расскажи свое видиние, а тебя поправят)
источник

РИ

Роман Игумнов... in Laravel UA
Для меня это некий центр который доступен во всем домене. В нем я могу задать первоначальное поведение + связать интерфейс с реализацией
источник

РИ

Роман Игумнов... in Laravel UA
Ну или соединить кучу разных реализаций в один блок
источник

AS

Alex Sin in Laravel UA
Роман Игумнов
Блин... Ну мне он там нужен((  Куда тогда эти данные вносить лучше?
Первоначальное поведение - возможно, однако не использование опосля
источник