2009-10-31 10 views
0
class Controller { 

    protected $_controller; 
    protected $_action; 
    protected $_template; 

    public $doNotRenderHeader; 
    public $render; 

    function __construct($controller, $action) { 

     $this->_controller = ucfirst($controller); 
     $this->_action = $action; 
     $model = ucfirst($controller);/* Conecting the model class*/ 
     $this->doNotRenderHeader = 0; 
     $this->render = 1; 
     $modelName = ucfirst($model).'Model'; 
     new $modelName; 
     $this->_template = new Template($controller,$action); 

    } 

    function set($name,$value) { 
     $this->_template->set($name,$value); 
    } 


    function __destruct() { 
     if ($this->render) { 
      $this->_template->render($this->doNotRenderHeader); 
     } 
    } 

} 

Je suis un débutant dans le travail avec les classes, je ne comprends pas tellement, je veux mettre en œuvre et d'étudier pour travailler avec des classes cet exemple de la structure mvc, mais j'ai un problème, avec le jeu de fonctions que je sauvegarde dans le tableau, certaines informations et ensuite envoyé à l'intérieur du modèle de classe, quand j'utilise la fonction __construct J'envoie avec la fonction set() qui a le rôle de sauvegarder les données dans l'objet $ this_template fonctionnant bien, mais quand je crée une nouvelle fonction dans cette classe ou classe prolongée, ne fonctionne pas ...Aide avec des classes en php

La question est - comment faire, quand je crée une fonction dans la classe de contrôleur, pour placer dans le tableau la valeur dont j'ai besoin, pour travailler avec eux à l'intérieur de la classe t Emplate :) merci beaucoup pour aider ..et désolé pour mon anglais

class Template { 
    protected $variables = array(); 


function set($name,$value) { 
    $this->variables[$name] = $value; 
} 


    function render(){ 
     extract($this->variables); print_r($this->variables); 
    } 
} 

J'ai besoin avec l'ensemble de la fonction() de contrôleur de classe pour exporter des données à l'intérieur de modèle de classe, et pourquoi quand je créer une fonction à l'intérieur du contrôleur de classe ex:

function functionName() { 
    $data=array('a','b'); 
    $this->set('data',$data); 
} 

et à l'intérieur class Template, i met print_r($this->variables);, et le tableau est vide

+0

Quelle est votre question? Je ne comprends pas. –

+0

Jetez un oeil az Zend Framework pour comprendre MVC en PHP – erenon

+0

Je n'ai pas beaucoup de temps, je travaille sur un projet .. et en ce moment j'étudie la structure mvc et de travailler avec les classes – mIRU

Répondre

0
__construct($controller, $action) { 

     $this->_controller = ucfirst($controller); 
...} 

Quel est exactement le type de variable $ controller? est une chaîne, peut-être? et devrait-il être appelé "controller_name"?

$model = ucfirst($controller);/* Conecting the model class*/ 
... 
$modelName = ucfirst($model).'Model'; 

La première ligne n'est-elle pas redondante?

new $modelName; 

devrait être

$this->somevariable = new Someclass($modelName); 

de toute façon, il faut revenir à la planche à dessin et nettoyer cela. Peut-être que c'est trop complexe d'un exercice pour votre premier projet en utilisant des classes.