Diskuze: Dependency Injection - Napsat si ho nebo pouužít hotové?
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 4 zpráv z 4.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
DIčko se dá napsat na pár desítek řádků. Záleží jaký máš cíl. Jestli se chceš učit, napiš si to sám. Jestli chceš dělat aplikaci s hodně fíčurama, stáhni hotové.
No, tak nakonec jsem se vydal cestou hotoveho.
Konkretne: http://container.thephpleague.com
Pokusil jsem se nechat si poradit na stackoverflow ale bohuzel jsem dostal jen hromadu linku o tom jak delat MVC a ne nejake jednoduzsi vysvetleni co delam spatne.
Poradi mi nekdo tady prosim
Bootstrap vytvori DI container a nacpe ho modely pro databazi, json,
apod.
Zbytek vypada takhle:
Controller:
abstract class Controller
{
protected $di;
protected $db;
protected $latte;
protected $json;
//etc...
public function __construct(League\Container\Container $container)
{
$this->di = $container;
$this->db = $container->get('database');
$this->json = $container->get('json');
//etc...
$this->setup();
}
}
class ApiController extends Controller
{
function setup()
{
$this->model = new ApiModel($this->di);
}
public function showGames()
{
$this->latte->render("random-view.latte", $this->model-getGames());
}
}
**Model:**
class Model
{
protected $db;
protected $json;
public function __construct(League\Container\Container $container)
{
$this->json = $container->get('json');
$this->db = $container->get('database');
}
}
class ApiModel extends Model
{
/**
* Get games
* @return mixed
*/
public function getGames()
{
//db queries etc...
}
}
\---
Omylem jsem to spatne ulozil a ted mi to nejde editovat Jde to jeste nejak opravit?
Zobrazeno 4 zpráv z 4.