Sizin Arayüz harika çalışıyor ... Sadece kontrolör içinde bunun yeni bir örneğini bildirmek sonra onu kullanacak denetleyicisi yukarıda da Require_once ...
Controller File:
require_once( "Models/ServiceApi" );
class HomeController extends Controller
{
private $repository;
public function __Construct()
{
$this->repository = new ServiceApi();
}
...
}
Dürüst olmak gerekirse, muhtemelen bağımlılık enjeksiyon çeşit yapabilmek isterdim, ama ben CodeIgniter'ı kullanmayın düşünüyor, ben derslere arayüzüne bağımlı aramalar için bir Fabrika simüle etmek ne kadar kolay emin değilim.
Bana olsa Size bir örnek vereyim:
Dependancy Injection:
Factory File
// 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 );
Controller File:
require_once( "Models/ServiceApi" );
class HomeController extends Controller
{
private $repository;
public function __Construct( BaseAPI $repo )
{
$this->repository = $repo;
}
...
}
- Genel yüzden. Sizin arayüzü ve servis API'LARI ince
- Senin mimarisi, sıkı birleştiğinde çıkıp bir Controller'daki modelinin yeni bir örneğini ilan rağmen tamamen kötü haber değil.
- Controller dosyanızda içine dosyayı almak için, sadece denetleyici üzerinde o kadar Require_once.