Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [OOP][MVC] Stworzenie modelu
Forum PHP.pl > Forum > PHP > Object-oriented programming
daw22
Witam,
Mam taki otóż problem. Chcę tworzyć dynamicznie modele korzystając z danych metodą GET. Problem tkwi w tym, że kombinuję, kombinuję i nie wiem w jaki sposób się za to zabrać. Może jakiś przykład.
  1. <?php
  2.  
  3. class Action {
  4. public $model;
  5.  
  6. public function __construct() {
  7. require_once($_GET['model'].'.php');
  8. $this -> model = new $_GET['model'];
  9. }
  10. }
  11.  
  12. class index extends Action {
  13. public function __construct() {
  14. parent::__construct();
  15. }
  16. }
  17. $akcja = new index();
  18. $akcja -> addModel();
  19. $akcja -> model -> operacjaNaModeluDanych($zmienna);
  20. ?>


Of course to kompletnie z księżyca wzięty przykład, wszystko ładnie pięknie chodzi, ale nie wiem w jaki sposób mogę dynamicznie tworzyć nowe objekty.

Proszę o pomoc ; )

Pozdrawiam
viking
Kod
require_once($_GET['model'].'.php');

Czyś ty oszalał? winksmiley.jpg

Proponuję podejrzeć Zend_Framework::registerAutoload(); (Zend_Loader oczywiście).
Do tego http://zfforum.pl/viewtopic.php?id=19

A swoją drogą po co odkrywać koło na nowo? Jest kilka gotowych klas obsługujących MVC.
daw22
Co do tego require_once to oczywiście przykład, wszystko jest filtrowane. Tylko nie wiem w jaki sposób mogę dynamicznie tworzyć nowe obiekty korzystając z parametrów GET
sobstel
Dynamicznie tworzyć nowe obiekty można różnie, w zależności od tego czy konstruktor przyjmuje argumenty oraz czy ich ilość jest stała (innymi słowy czy są jakieś opcjonalne).

Gdy znasz z góry ilość argumentów przyjmowanych przez konstruktor:

  1. <?php
  2. $className = getWellFilteredInputVarFromGETSuperGlobalArray(); // ;-)
  3. $object = $className($arg1, $arg2, $args3)
  4. ?>


Gdy ilość argumentów może być różna to:

  1. <?php
  2. call_user_func_array(array(new ReflectionClass($className), 'newInstance'), array($arg1, $arg2));
  3. ?>
daw22
  1. <?php
  2. $className = getWellFilteredInputVarFromGETSuperGlobalArray(); // ;-)
  3. $object = new $className($arg1, $arg2, $args3)
  4. ?>

Można zamknąć, pozdrawiam.
Dziękuje za pomoc!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.