php.de

Zurück   php.de > Webentwicklung > Software-Design

Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.02.2010, 00:45  
Erfahrener Benutzer
 
Benutzerbild von Lumio
 
Registriert seit: 12.10.2007
Beiträge: 149
PHP-Kenntnisse:
Fortgeschritten
Lumio ist zur Zeit noch ein unbeschriebenes Blatt
Standard MVC Design Problem

Hey
arbeite gerade ja endlich mal mit MVC. Allerdings nervt es mich gerade sehr, dass ich soviel PHP-Code in die Views reinpacke...

findet ihr, gehört das in den Controller, oder soll ichs im View lassen? Sonst muss ich einfach schaun, dass ich den Code etwas übersichtlicher bekomm.
__________________
www.citrosaft.com
Lumio ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.02.2010, 00:48  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Welche Pauschalantwort darfs denn sein?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 13.02.2010, 00:51  
Erfahrener Benutzer
 
Benutzerbild von Lumio
 
Registriert seit: 12.10.2007
Beiträge: 149
PHP-Kenntnisse:
Fortgeschritten
Lumio ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Naja PHP Code und HTML sieht nicht so nice aus, aber was soll ich machen Mit ner View ein HTML-Template laden?

Okay, ich seh schon, ich muss mir was überlegen, wie ich HTML auslagern kann.
__________________
www.citrosaft.com

Geändert von Lumio (13.02.2010 um 00:55 Uhr).
Lumio ist offline   Mit Zitat antworten
Alt 13.02.2010, 00:59  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Das oder die View von der Templateklasse erben lassen oder was auch immer.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 13.02.2010, 01:00  
Erfahrener Benutzer
 
Benutzerbild von Lumio
 
Registriert seit: 12.10.2007
Beiträge: 149
PHP-Kenntnisse:
Fortgeschritten
Lumio ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Okay, mal schaun. Danke jedenfalls. Dachte schon, das is normal
__________________
www.citrosaft.com
Lumio ist offline   Mit Zitat antworten
Alt 13.02.2010, 01:44  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.069
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Es kommt darauf an, ob du wirklich auf den View-Daten arbeitest, sie also fuer die spezielle Ausgabe aufbereitest oder ob du nicht doch Aufgaben des Controllers im View erledigst. Poste doch mal ein Beispiel?!
Chriz ist offline   Mit Zitat antworten
Alt 21.02.2010, 22:59  
Erfahrener Benutzer
 
Registriert seit: 19.01.2010
Beiträge: 324
PHP-Kenntnisse:
Anfänger
chunky befindet sich auf einem aufstrebenden Ast
Standard

Nimm doch eine Template Engine. Dann hast du gar keinen PHP-Code mehr in der Ausgabe.
Outline tut bei mir gute Dienste.
chunky ist offline   Mit Zitat antworten
Alt 21.02.2010, 23:05  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.633
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Template-Engines lassen sich IMHO nicht so ideal in Verbindung mit MVC einsetzen, da kein "echter" Controller mit der Template-Engine ausgeführt werden kann. Die Erzeugung des Views muss damit "extern" - sprich im Controller passiere - was dem Konzept etwas entgegen wirkt.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 21.04.2010, 08:14  
Erfahrener Benutzer
 
Registriert seit: 15.04.2010
Beiträge: 813
PHP-Kenntnisse:
Fortgeschritten
Paul.Schramenko befindet sich auf einem aufstrebenden Ast
Standard

Das ist IMHO so nicht ganz korrekt. Ich habe mir mein eigenes MVC geschrieben. Und vielleicht lieg ich auch komplett falsch, aber ich habe eine eigene ViewFactory, die mir genau das macht.

PHP-Code:
<?php
#bootstrap code...

# ...
$frontController = new FrontController($request$response$router$view);
$controllerResult $frontController->execute();

$viewFactory = new ViewFactory($view$router);
$viewFactory->execute($actionResult);
PHP-Code:
<?php
    
class FrontController
    
{
        protected 
$_request,
                  
$_response,
                  
$_router,
                  
$_view;

        protected 
$_controller,
                  
$_action;

        public function 
__construct(Request $requestResponse $responseRouter $routerView $view)
        {
            
$this->_request     $request;
            
$this->_response    $response;
            
$this->_router      $router;
            
$this->_view        $view;
        }

        public function 
execute()
        {
            
$controller $this->_router->getController();
            
$action $this->_router->getAction();

            
$this->_controller = new $controller();
            return 
$this->_controller->$action($this->_request$this->_response);
        }
    }
PHP-Code:
<?php
    
class ViewFactory
    
{
        protected 
$_view,
                  
$_router;
        protected 
$_displayTemplate;

        public function 
__construct(View $viewRouter $router)
        {
            
$this->_view $view;
            
$this->_router $router;
        }

        public function 
execute($result)
        {
            switch (
$this->_router->getController()) {
                case 
'IndexController':
                    switch (
$this->_router->getAction()) {
                        case 
'indexAction':
                           switch (
$result) {
                               case 
1:
                                   
$this->_displayTemplate 'indexIndexSuccess.tpl';
                                   break;

                               case 
0:
                                   
$this->_displayTemplate 'indexIndexFailure.tpl';
                                   break;                                  
                           break;
                    }
                    break;
            }
            echo 
$this->_view->render($this->_displayTemplate);
        }
    }
?>
PHP-Code:
<?php
    
class IndexController extends AbstractController
    
{
        public function 
indexAction()
        {
             
$res false;
             if (
$res) {
                 return 
1;
             }
             return 
0;
        }
    }
In meiner MVC weiß jede Klasse nur soviel wie sie zu wissen braucht...
Paul.Schramenko ist offline   Mit Zitat antworten
Alt 21.04.2010, 11:47  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.129
PHP-Kenntnisse:
Fortgeschritten
xm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphäre
Standard

Deine View-Factory ist aber extrem unflexibel. Und bei jeder neuen Action/Controller muss die wieder angefasst werden, näää...
xm22 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit Basedir in PhP cmuch05 Datenbanken 9 08.01.2009 14:17
[Erledigt] Problem: PHP Selbe Datei mehr als 1 Mal soulan PHP Tipps 2008 13 28.11.2008 22:51
Problem Upload mehrere Dateien und schreiben in DB Lapje PHP Tipps 2008 1 22.10.2008 13:12
utf8 Problem (Daten aus DB auslesen) go1denboy PHP Tipps 2008 1 23.09.2008 12:19
Problem mit swfobjects R4v3r JavaScript, Ajax und mehr 8 21.09.2008 14:17
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
include - get - big problem Buschdieb PHP-Fortgeschrittene 6 14.04.2006 20:28
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
CSS - Design (clear - Problem) HTML, Usability und Barrierefreiheit 7 21.12.2005 14:55
Problem CSS Design HTML, Usability und Barrierefreiheit 3 27.09.2005 06:47
[PHP] Design Schutz für ein Gästebuch I-Spy PHP Tipps 2005 5 01.01.2005 11:25
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php mvc router, mvc php, php mvc router class, php design fehler, router mvc php, php router class, php mvc router response, php view factory, mvc design, mvc, lumio design, php mvc with ajax, viewfactory klasse mvc, router mvc warum, design php, mvc php action, php index_action() mvc, javascript or php mvc, php mvc ajax, \router mvc php\

Alle Zeitangaben in WEZ +1. Es ist jetzt 06:53 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum