Size: a a a

2020 November 26

YP

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

YP

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

YP

Yurii Prudskyi in Laravel UA
я, конечно, не вижу прям весь контроллер, но мало ли)
источник

РИ

Роман Игумнов... in Laravel UA
Yurii Prudskyi
еще стоит задуматься, нужен ли тебе здесь сервис, если все, что ты делаешь, это перенаправляешь на него коллы из контроллера
Хорошее замечание. Но с другой стороны не хочу сразу в библу отдавать данные. Мне лучше через прокладку. Я могу ошибаться и буду рад услышать критику
источник

РИ

Роман Игумнов... in Laravel UA
Просто привязывать сразу в билблиотеку на ее класс не очень хочется, хотя может и верно ты говоришь
источник

YP

Yurii Prudskyi in Laravel UA
я просто пару рад встречал проекты, где, скажем, есть ОрдерКонтроллер, который принимает в себя ОрдерСервис. В ордер котроллере есть 5 методов вида:
public function payForOrder(int $orderId)
{
  return $this->service->payForOrder($orderId);
}
И так везде, по сервису на контроллер. То есть вся "жирная" логика контроллера была просто спрятана в такие же жирные методы сервисов, без всяких попыток сделать что-то хорошее. Зато "худые контроллеры". Ну вот так не надо делать, короче) Если у тебя не так, то все ок
источник

J

Jeen in Laravel UA
Yurii Prudskyi
я просто пару рад встречал проекты, где, скажем, есть ОрдерКонтроллер, который принимает в себя ОрдерСервис. В ордер котроллере есть 5 методов вида:
public function payForOrder(int $orderId)
{
  return $this->service->payForOrder($orderId);
}
И так везде, по сервису на контроллер. То есть вся "жирная" логика контроллера была просто спрятана в такие же жирные методы сервисов, без всяких попыток сделать что-то хорошее. Зато "худые контроллеры". Ну вот так не надо делать, короче) Если у тебя не так, то все ок
Ну, все равно это лучше, чем всю логику пихать в контроллер. Хотя бы тем, что сервис потом можно переиспользовать в другом месте
источник

YP

Yurii Prudskyi in Laravel UA
там они не переиспользовались от слова никак)
источник

J

Jeen in Laravel UA
Yurii Prudskyi
там они не переиспользовались от слова никак)
Считаю это эволюционным путем. Сначала уходим от толстых контроллеров, потом потихоньку учимся писать правильную архитектуру
источник

J

Jeen in Laravel UA
Я все еще учусь) И наверное, буду учиться всегда)
источник

AS

Alex Sin in Laravel UA
Thank you)
источник

AS

Alex Sin in Laravel UA
Jeen
Я все еще учусь) И наверное, буду учиться всегда)
Чтобы увеличить риск учебы всегда, нужно кушать как можно меньше чеснока, и острого перца, потому что от них увеличивается риск Деменции.
источник

J

Jeen in Laravel UA
Alex Sin
Чтобы увеличить риск учебы всегда, нужно кушать как можно меньше чеснока, и острого перца, потому что от них увеличивается риск Деменции.
источник
2020 November 27

AS

Alex Sin in Laravel UA
Ну вот! А потом прыщики и черные точки замазываем, не хорошо!)
источник

J

Jeen in Laravel UA
Alex Sin
Ну вот! А потом прыщики и черные точки замазываем, не хорошо!)
Я не очень понимаю, к чему были твои 2 последних сообщения. Если это шутки, то мне они не зашли
источник

AS

Alex Sin in Laravel UA
Jeen
Я не очень понимаю, к чему были твои 2 последних сообщения. Если это шутки, то мне они не зашли
Это скорее полезные рекоммендации для здоровья, нежели чем шутки)
источник

AS

Alex Sin in Laravel UA
Потому что работа работой, а без здоровья все не то, все не в радость, надо его беречь
источник

РИ

Роман Игумнов... 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);
}
источник

AS

Alex Sin 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
Ничего не понял)
источник