En alguna ocasiones vamos a necesitar llamar a una function que hemos usado en otro controller para reutilizar ese código.

Imaginemos que tenemos una class llamada ArmasController en la cual tenemos una function llamada listaCompletaArmas, vamos a suponer que esta lista es compleja y no solo un list de la bd.

<?php

namespace Armeria\Controllers;

class ArmasController extends ControllerBase
{
    public function listaCompletaArmas()
        ....
        ....
        ....
    }
}

Ahora estamos en otro controller y necesitamos hacer uso de esa function. Por lo que tenemos que hacer el include del controller mediante el operador "USE" y ya en la function instanciar el controller para llamar a la function.

<?php

namespace Armeria\Controllers;
use Armeria\Controllers\ArmasController;

class UsoArmasController extends ControllerBase
{
    public function usoArmas()
        $armasController = new ArmasController();
        $armasController->listaCompletaArmas();
    }
}

También podríamos extender directamente de la class armas, pero eso no sirve para el ejemplo.

Y si queremos hacer un código más liviano en la ejecucción podemos hacer la function static para así no tener que instanciar la class.

<?php

namespace Armeria\Controllers;

class ArmasController extends ControllerBase
{
    public static function listaCompletaArmas()
        ....
        ....
        ....
    }
}

<?php

namespace Armeria\Controllers;
use Armeria\Controllers\ArmasController;

class UsoArmasController extends ControllerBase
{
    public function usoArmas()
        ArmasController::listaCompletaArmas();
    }
}