Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [OOP][MVC] Stworzenie modelu
daw22
post
Post #1





Grupa: Zarejestrowani
Postów: 64
Pomógł: 1
Dołączył: 1.09.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


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

Czyś ty oszalał? (IMG:http://forum.php.pl/style_emoticons/default/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.
Go to the top of the page
+Quote Post
daw22
post
Post #3





Grupa: Zarejestrowani
Postów: 64
Pomógł: 1
Dołączył: 1.09.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
sobstel
post
Post #4





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
daw22
post
Post #5





Grupa: Zarejestrowani
Postów: 64
Pomógł: 1
Dołączył: 1.09.2007

Ostrzeżenie: (0%)
-----


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

Można zamknąć, pozdrawiam.
Dziękuje za pomoc!

Ten post edytował daw22 15.06.2008, 15:23:18
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 09:45