| | | | |
| |||||||
| PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen |
|
| | LinkBack | Themen-Optionen | Bewertung: |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Erfahrener Benutzer Registriert seit: 23.09.2010
Beiträge: 146
PHP-Kenntnisse: Fortgeschritten ![]() | Der HTML-Code ist bei einem CMS in der Regel in Templates ausgelagert. Diese Templates werden entweder durch eine Template-Engine (Smarty, PHPTal, ...) gefüllt oder durch str_replace(). Da die index.php flexibel reagieren muss, sollte der HTML-Quellcode auch definitiv an einer anderen Stelle liegen. So kann ein und die selber index.php Fehlermeldungen ausgeben, Header-Befehle setzen, sowie HTML oder auch andere Formate (XML, JSON, ...) zurück geben.
__________________ PHP online testen, zum Beispiel: md5, base64_decode, preg_match, urldecode und viele weitere... |
| | |
| | |
| Moderator Registriert seit: 11.05.2008
Beiträge: 6.268
![]() ![]() ![]() ![]() ![]() ![]() ![]() | Hallo, naja die index.php wurde auf den kleinsten gemeinsamen Nenner verkürzt, der ist bei den verschiedenen Formaten (HTML, JSON, AJAX, ..) eigentlich darauf beschränkt eine Anfrage (Request) anzunehmen, zu verteilen (Dispatch) und die Ausgabe (Response) zurückzuliefern. EVA und MVC sind sicherlich gute Lektüren.
__________________ "Nuschel ich?" - "Was?" Geändert von Chriz (23.11.2010 um 23:36 Uhr). |
| | |
| | |
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | eine Anfrage (Request)
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- |
| | |
| | |
| Benutzer | OK, danke euch allen! Ich hab die Aufteilung in MVC in Java einige wenige Male praktiziert, aber das ist auch schon wieder Jahre her. Und was man nicht oft genug macht, landet nicht auf der ewigen Festplatte Allerdings hatte ich bei PHP - also auf eine Website bezogen - ein totales Brett vor dem Kopf und nicht weit genug gedacht. Die letzten Stunden hab ich mir mal etwas Lektüre zu MVC zu Gemüte geführt. Es gibt verschiedene Modelle zu MVC. Aber auf das Web bezogen ist es doch so, dass View und Controller mit dem Model kommunizieren. Das Model ist für die interne Datenverarbeitung und -speicherung zuständig, während die View "nur" die im Model vorhandenen Daten anzeigt und der Controller die Abläufe steuert. Aber View und Controller liegen irgendwie gemeinsam auf einer Ebene und der Controller dient _nicht_ als Mittelsmann zwischen View und Model. Jetzt kam beim Lesen noch der Begriff "Presentation Logic" auf. Ist es nicht so, dass man nicht unbedingt genau sagen kann, was jetzt zu welcher Ebene (also zu Controller oder View) gehört? Eine ganz strikte Trennung ist auch gar nicht unbedingt möglich, oder?? Bei Templates z.B. hat man doch auch eine Vermischung von reiner Darstellung und Presentations-Logik.
__________________ Es gibt Tage da verliert man und es gibt Tage da gewinnen die anderen ... Geändert von Raiden (24.11.2010 um 02:02 Uhr). |
| | |
| | |
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | PHP ist da etwas special. 1. Weil im Webbereich sowieso schon eine Abstraktion der View herrscht (PHP gibts ja die Daten aus - auf ähnliche Weise wir immer gegen Templating in PHP-Applikationen gewettert), 2. weil im Request-Modell keine Persistenten Componenten vorherrschen, wie man sich normalerweise Controller etc. vorstellen würden. Z.B. ist auch relevant, ob Du die Rollen von HTML und v.a. Javascript mit in der Diskussion betrachten willst. Wir haben das schon öfter diskutiert an. Schau Dir mal http://www.php.de/album.php?albumid=5&pictureid=75 an, da habe ich vor ner Weile mal versucht, die Begrifflichkeiten im Kontext etwas zu ordnen. So wie ich sie sehe, ohne Garantie auf Richtigkeit, jeder hat eben eine andere Vorstellung von dieser Systematik.
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- |
| | |
| | |||
| Erfahrener Benutzer Registriert seit: 14.06.2009
Beiträge: 1.731
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Zitat:
In PHP fällt die Interaktion weg. Der View müssen lediglich einmal die darzustellenden Daten zugewiesen werden. Das kann der Controller erledigen. Es besteht keine Notwendigkeit, dass die View die Models kennt. Zitat:
Ich habe mal ein sehr verkürztes Klassen-Mockup zu (einer Interpretation von) MVC in PHP erstellt. Interessant sind die Klassen MyModel und IndexController sowie das View-Script und das Layout-Script. Der Rest ist applikationsübergreifender Framework-Code. index.php Code: <?php
namespace org\example\SimpleMVC;
/**
* Framework code
*/
class Layout
{
protected $view = null;
public function setView(View $view)
{
$this->view = $view;
}
public function renderContent()
{
if ($this->view !== null) {
$this->view->render($template);
}
}
public function render($layoutScript)
{
include $layoutScript;
}
}
/**
* Framework code
*/
class View
{
protected $vars;
protected $script;
public function __construct()
{
$this->vars = array();
}
public function __set($name, $value)
{
$this->vars[$name] = $value;
}
public function __get($name)
{
return (isset($this->vars[$name])) ? $this->vars[$name] : null;
}
public function setScript($script)
{
$this->script = $script;
}
public function render()
{
include $this->script;
}
}
/**
* Custom application code
*/
class MyModel
{
public function getArticles()
{
/* Dummy */
return array(
array('title' => 'Hello World!',
'content' => 'Lorem ipsum...'),
array('title' => 'Foo Bar',
'content' => 'Lorem ipsum...')
);
}
}
/**
* Framework code
*/
abstract class Controller
{
protected $view = null;
public function __construct()
{
$this->view = new View();
}
public function getView()
{
return $this->view;
}
}
/**
* Custom application code
*/
class IndexController extends Controller
{
public function indexAction()
{
$model = new MyModel();
$this->view->articles = $model->getArticles();
}
}
/* Front Controller stuff */
/* Extract these values from URL, e. g. http://example.org/index/index */
$controller = 'index';
$action = 'index';
/* Instantiate corresponding controller, call corresponding action method */
$controllerClass = __NAMESPACE__ . '\\' . \ucfirst($controller) . 'Controller';
$actionMethod = $action . 'Action';
$controllerInstance = new $controllerClass();
$controllerInstance->$actionMethod();
/*
* Render view from active controller. Default view script resides at
* ./templates/<controller>/<action>.phtml
*/
$view = $controllerInstance->getView();
$view->setScript('./templates/' . $controller . '/' . $action . '.phtml');
$layout = new Layout();
$layout->setView($view);
$layout->render('./layouts/default.phtml');
PHP-Code: PHP-Code: Geändert von mermshaus (24.11.2010 um 09:50 Uhr). | ||
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Premature end of script headers: index.php im Zusammenhang mit Performanceverlust | Asipak | Server, Hosting und Workstations | 10 | 29.10.2010 14:13 |
| [Erledigt] fopen nicht in index.php ausführen | TZP | PHP Tipps 2010 | 9 | 18.08.2010 16:38 |
| Ein (Teil)Array anhand von level und depth zurückgeben. | greatcthulhu | Scriptbörse | 4 | 16.04.2010 10:45 |
| Mod Rewite Problem - Variable 1 immer index.php | K.haos | Server, Hosting und Workstations | 2 | 10.04.2010 18:58 |
| Probleme mit der Startseite (Index.php) | DSAS87 | PHP Tipps 2009 | 7 | 02.01.2010 15:11 |
| PHP index.php Fehlermeldung | bayliner80 | PHP Tipps 2008 | 4 | 14.12.2008 00:58 |
| index.php wird nicht angezeigt | tomharvey | PHP Tipps 2008 | 2 | 26.09.2008 09:00 |
| apache ruft index.php nicht als default auf | Zero.exe | Server, Hosting und Workstations | 3 | 05.07.2006 23:06 |
| index.html statt index.php als startseite.... | niffi | PHP-Fortgeschrittene | 28 | 23.01.2006 19:23 |
| Abfrage aus Datenbank mit Tabellen und Ausgabe in index.php | PHP Tipps 2005-2 | 4 | 23.10.2005 11:04 | |
| probleme mit index.php | Cyrus | PHP Tipps 2005-2 | 4 | 06.07.2005 14:53 |
| seiten in index.php aufrufen | PHP Tipps 2005-2 | 4 | 22.06.2005 15:06 | |
| index.php wird nicht aufgerufen | PHP Tipps 2005 | 4 | 22.01.2005 04:23 | |
| index.php mit Unterseiten | PHP Tipps 2005 | 2 | 08.01.2005 21:37 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| oop mvc class php, php oop mvc, php mvc dispatch, php oop dispatcher, website oop, http://www.php.de/php-fortgeschrittene/74301-erledigt-website-initialisierung-nach-mvc-prinzip-oop.html, smarty mvc controller, mvc php webseiten erstellen, php oop website erstellen, webseiten objektorientiert php, php cms nach mvc-prinzip, php website aufbauen mvc oop ohne framework, oop cms, mvc php oop, oop php webseite aufbauen, oop php initialisierung übergeben, webseiten in oop, php mvc class phtml php, website nach mvc, oop php nach mvc prinzip |