Ваш интерфейс работает великолепно ... Просто потребуйте его, если он находится над контроллером, который будет его использовать, а затем объявите новый экземпляр из контроллера ...
Файл контроллера:
require_once( "Models/ServiceApi" );
class HomeController extends Controller
{
private $repository;
public function __Construct()
{
$this->repository = new ServiceApi();
}
...
}
Если честно, вы, вероятно, захотите сделать какое-то внедрение зависимостей, но, учитывая, что я не использую codeigniter, я не уверен в том, насколько легко имитировать Factory для зависимых вызовов Interface на занятия.
Позвольте мне привести вам пример:
Инъекция зависимости:
Заводской файл
// Not sure how this works for code ignite but the idea is like this:
//$repositoryForController = new ServiceAPI();
$repositoryForController = new Service_Two_API();
$controller = new HomeController( $repositoryForController );
Файл контроллера:
require_once( "Models/ServiceApi" );
class HomeController extends Controller
{
private $repository;
public function __Construct( BaseAPI $repo )
{
$this->repository = $repo;
}
...
}
- Итак, обзор. Ваш интерфейс и сервис APIS в порядке
- Несмотря на то, что ваша архитектура будет тесно связана, объявление нового экземпляра вашей модели в контроллере не является абсолютно плохой новостью.
- Чтобы получить файл в файл вашего контроллера, просто потребуйте его, если он находится над контроллером.