Выполнять функцию другого драйвера посылая параметры

У меня есть в Controller1, который содержит функцию, так называемый actualizarCartera ($ parametro1, $ parametro2, $ parametro3), с Controller2: Как я делаю, чтобы выполнять эту функцию?: Как я должен incluír в Controller1 в Controller2?

1
задан 21.06.2017, 01:39
2 ответа

Мне не кажется реальным звонить в функцию драйвера, с другого драйвера...

То, что я сделал бы, создало бы один trait где там я определяю функцию, которая займет в 1 или более драйверы, и потом он назвал бы ее...

trait TestTrait {

    public function funcionTest() {
       //Codigo
    }
}

Я представляю себе то, что мысль звонить из X драйверов до 1 функции состоит в том, чтобы повторно использовать код, внутри определений trait :

trait - механизм для повторного применения кода в языках наследства

И в определении твоих драйверов

<?php

namespace App\Http\Controllers;
use App\TestTrait;

class Controller1 extends Controller {
    use TestTrait;
}

class Controller2 extends Controller {
    use TestTrait ;
}
2
ответ дан 24.11.2019, 12:54
  • 1
    Aqu и # 237; в моем ingoracia..., в котором место я должен определять trait? – Santiago Muñoz 26.10.2016, 16:45
  • 2
    @SantiagoMu и # 241; oz это все зависит от архитектуры, которая у тебя есть в твоем проекте, например я спрашиваю тебя и #191; где твои драйверы? Каков специфический маршрут App\Http\Controllers? – sioesi 26.10.2016, 16:46
  • 3
    Если, моего маршрута App\Http\Controllers – Santiago Muñoz 26.10.2016, 16:47
  • 4
    Означай, что твои драйверы находятся все в namespace, который называются Controller, ты можешь определять твои Trait в App, и когда ты это назовешь дебет определять Ваш маршрут App\TestTrait – sioesi 26.10.2016, 16:49
  • 5
    Стой, пытаться и # 233; и я рассказываю тебе – Santiago Muñoz 26.10.2016, 16:51

Конец драйвера (обычно) не состоит в том, чтобы общаться с другим драйвером, если они нуждаются в том, чтобы говорить между ними, они должны делать это посредством модели, услуги, хранилища или другого слоя, завися рисунок приложения и то, что хочет быть сделанным.

Ответ @sioesi верно действителен и правилен, хотя я не соглашаюсь полностью. Мне нравится использовать больше traits, чтобы дополнять интерфейсы и так поддерживать аккуратный и прикладной код, иначе я думаю, что он становится немного случайным, помещать traits здесь и там и я считаю, что теряется немного контроль кода, кроме того, что возможно падать легко на плохих практиках:

interface SerVivo
{
    public alimentarse();
    public descansar();
}

trait Mamiferos
{
    public alimentarse() {
        echo 'con la boca';
    }

    public descansar() {
        echo 'dormir acostado';
    }
}

class Humanos implements SerVivo
{
    use Mamiferos;

    public mostrarFelicidad() {
        echo 'reir';
    }
}

class Perros implements SerVivo
{
    use Mamiferos;

    public mostrarFelicidad() {
        echo 'mover la cola';
    } 
}
1
ответ дан 24.11.2019, 12:54
  • 1
    я ничего не перемещаю где-то здесь jejeje:; D – sioesi 21.06.2017, 01:48