PHP objet, séparer le fond de la forme

PHP objet, séparer le fond de la forme - PHP - Programmation

Marsh Posté le 06-04-2008 à 15:58:10    

Bonjour,
 
J'aurais une question d'ordre général sur le développement php objet.
 
Je cherche à mieux structurer mes objets en séparant le traitement des données de l'affichage html.
 
Je voudrais éviter de sortir la grosse artillerie comme MVC. Je ne pense pas que mon projet le justifie.
 
Voici mon raisonnement :
 
J'ai deux objets,  
 
- un dédié au traitement données (classDocument.php)
- un dédié à l'affichage (classViewDocument.php)
 
Mon idée est de créé un lien de type composition (dans la logique UML) entre ces deux objets.

Code :
  1. class document
  2. {
  3.        protected $affichage;
  4.        protected $titre;
  5.        public function __construct()
  6.        {
  7.              $this->affichage=new viewDocument($this);
  8.              $this->titre='Titre document';
  9.        }
  10.      
  11.        public function getTitre()
  12.        {
  13.              return $this->titre;
  14.        }
  15.        public function display()
  16.        {
  17.              $this->affichage->display();
  18.        }
  19. }
  20. class viewDocument
  21. {
  22.        protected $document;
  23.      
  24.        public function __construct(document $document)
  25.        {
  26.              $this->document=$document;
  27.        }
  28.        public function display()
  29.        {
  30.              echo '...html code...';
  31.              echo $this->document->getTitre();
  32.              echo '...html code...';
  33.        }
  34. }


 
Est-ce une façon classique et éprouvée pour traiter la séparation du fond et de la forme?
 
Y a t-il un façon plus efficace selon vous ?
 
Je souhaiterai appliquer ce principe avec plusieurs sous classes de document (Devis, bon de livraison...) en instanciant mon objet affichage dans ces sous classes. Les objets affichage instanciés seraient eux aussi des sous classe de viewDocument. Genre...
 

Code :
  1. class devis extends document
  2. {
  3.        public function __construct()
  4.        {
  5.              $this->affichage=new viewDevis($this);
  6.              $this->titre='Titre devis;
  7.        }
  8. }


 
Merci de vos réponses

Reply

Marsh Posté le 06-04-2008 à 15:58:10   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed