Autor Zpráva
Render
Profil *
Ze studijních účelů bych se chtěl zeptat zda lze následující věc řešit jinými způsoby.

index.php

<?php
  require_once 'initer.php';
  require_once 'cont.php';
  require_once 'load.php';
  
  $render = new cont;
?> 


initer.php

<?php
class initer
{
  private static $instance;
  
  protected __construct()
  {
    self::$instance = $this;
  }
  
  public static getInstance()
  {
    return self::$instance;
  }
}
?>


load.php

<?php
class load
{
  public function lib ($class)
  {
    require_once $class.'.php';
    $caller = initer::getInstance();
    $caller->$class = new $class;
  }
}
?>


cont.php

<?php
class cont extends initer
{
  public __construct()
  {
  parent::__construct();
  $load = new load;
  $load->lib('text');
  $this->text->render('Bla bla bla')
  }
}
?>


text.php

<?php
class text
{
  public function render($text)
  {
  echo $text;
  } 
}
?>


V tomto případě se mi instance třídy kterou zavolám z konstruktoru třídy cont pomocí $load->lib('názevTřídy'); automaticky přiřadí do $this->názevTřídy a mohu tedy poté v třídě cont volat metody načtené třídy pomocí $this->názevTřídy->názevMetody().

Lze tohoto efektu dosáhnout jiným způsobem než tím zde naznačeným?? Nejde o to jestli ten způsob bude rychlejší, pomalejší, složitější, jednoduší. Zajímám se o to ze studijních účelů proto abych měl větší přehled jak řešit podobné situace. Děkuji za názory.
Render
Profil *
Omluva : Po ránu sem tam nasekal chyb jak máku.

initer.php samozdřejmě vypadá takto

<?php
class initer
{
  private static $instance;
  
  protected function __construct()
  {
    self::$instance = $this;
  }
  
  public static function getInstance()
  {
    return self::$instance;
  }
}
?>


a cont.php vypadá takto :

<?php
class cont extends initer
{
  public function __construct()
  {
  parent::__construct();
  $load = new load;
  $load->lib('text');
  $this->text->render('Bla bla bla')
  }
}
?>


píši to z hlavy, proto se omlouvám a doufám, že sem tam nenasekal více chyb.
Render
Profil *
Ještě k problému. Samozdřejmě, že jedna z možností je, že by třída cont zdědila třídu load. Toto řešení je mi též známo, proto by mě zajímali ještě jiná řešení než tyto dvě.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0