Objektorientierte Webnwendung mit PHP erstellen

illuminatus26

Erfahrenes Mitglied
Hallo zusammen,

momentan arbeite ich mich gerade etwas in PHP ein. Der letzte Anlauf dazu liegt schon ein paar Jährchen zurück. Zwischenzeitlich habe mich Java beschäftigt.
Nun mache ich mir seit ein paar Tagen Gedanken darüber, wie ich eine Webanwendung mit PHP objektorientiert umsetze. Also wie das ganze organisiert wird.
Kennt jemand evtl. ein kleines Projekt, bei dem man den Aufbau einfach nachvollziehen kann?

Vielen Dank
 

Tim Bureck

Erfahrenes Mitglied
Da sich schon viele Leute vor dir damit beschäftigt haben, würde ich dir ein MVC-Framework wie Symfony oder das Zend-Framework empfehlen. Mit diesen hast du schon eine gute Basis, um eine OO Anwendung mit PHP zu erstellen. Bei Bedarf kannst du dich aber auch tiefer in die Materie einlesen, indem du dir den Aufbau der Frameworks anschaust.
 

illuminatus26

Erfahrenes Mitglied
Vielen Dank für die schnelle Antwort.
Ich würde aber gerne erst einmal ohne Framework arbeiten, da ich ein Verständnis für den Aufbau erhalten möchte und da ich glaube, dass der Einsatz eines Frameworks in manchen Fällen etwas überzogen ist.
Lasse mich aber gerne eines besseren Belehren.
Vielleicht hast Du ja einen anderen Tipp für mich.
 

Parantatatam

mag Cookies & Kekse
MVC ist in jedem Fall das Schlagwort schlechthin. Deshalb hier mal einige Beispiele:

Generelles Routing:
PHP:
@list($controller, $action, $other) = explode('/', $_SERVER['QUERY_STRING'], 3);

$controller = empty($controller) ? 'Application' : strtoupper($controller);
$action     = empty($action)     ? 'index'       : $action;
$other      = empty($other)      ? array()       : explode('/', $other);

$controller .= 'Controller';
$action      = 'Action' . strtoupper($action);

$object = new $controller($other);
$object->{$action}();

Controller:
PHP:
abstract class AbstractController
{
  protected $params = array();
  
  final public function __construct(array $params)
  {
    $this->params = $params;
  }
}

class ApplicationController extends AbstractController
{
  
}

class BlogController extends ApplicationController
{
  public function ActionIndex()
  {
    echo 'Indexseite';
  }
}

Und dann eben in Modellen (Models) die Daten verarbeiten und Views als Templates nutzen.
 

illuminatus26

Erfahrenes Mitglied
N'Abend zusammen,

ich habe die beiden letzten Tage genutzt, um mich ein wenig weiter mit der Materie zu beschäftigen.
Also wenn ich das richtig verstehe, sind diese Frameworks Symfony, Zend, CakePHP, usw. eine Implmentation des MVC-Entwurfsmuster in PHP. Liege ich mit dieser Einschätzung richtig?
Nun hat man die Möglichkeit, das Rad neu zu erfinden (dabei Gleichzeit aber auch zu lernen) und selber ein solches Framework zu erstellen oder man nimmt eines der bestehenden und arbeitet sich ein.
Mein primäres Ziel ist es mit PHP eine Joomla-Erweiterung zu erstellen. Das Joomla-Framework zählt ja auch zu dieser Art von Frameworks, die ich weiter oben beschrieben habe. Ist das korrekt?
Weshalb ich mich wohl dann in erster Linie damit beschäftigen werde.
 

illuminatus26

Erfahrenes Mitglied
N'Abend zusammen,

ich habe die beiden letzten Tage genutzt, um mich ein wenig weiter mit der Materie zu beschäftigen.
Also wenn ich das richtig verstehe, sind diese Frameworks Symfony, Zend, CakePHP, usw. eine Implmentation des MVC-Entwurfsmuster in PHP. Liege ich mit dieser Einschätzung richtig?
Nun hat man die Möglichkeit, das Rad neu zu erfinden (dabei Gleichzeit aber auch zu lernen) und selber ein solches Framework zu erstellen oder man nimmt eines der bestehenden und arbeitet sich ein.
Mein primäres Ziel ist es mit PHP eine Joomla-Erweiterung zu erstellen. Das Joomla-Framework zählt ja auch zu dieser Art von Frameworks, die ich weiter oben beschrieben habe. Ist das korrekt?
Weshalb ich mich wohl dann in erster Linie damit beschäftigen werde.

War das etwa so großer Mist, dass sich eine Antwort dazu nicht lohnt?
Würde mich freuen, wenn es dazu etwas Feedback gäbe.
 

Parantatatam

mag Cookies & Kekse
Also die von dir genannten Frameworks basieren in der Tat auf dem MVC-Pattern, allerdings ist Jommla kein Framework, sondern ein WebCMS. Wenn du genügend Zeit hast, dann solltest du vielleicht selber mal ein MVC-System erstellen. Ansonsten natürlich dir die anderen Frameworks ansehen und rausfinden, wie die das lösen.
 
Zuletzt bearbeitet:

illuminatus26

Erfahrenes Mitglied
Hallo und vielen Dank für deine Antwort.
Mit Klömme meinst du Joomla?
Ja, dass ist ein WebCMS, allerdings gibt es auch ein sog. Joomla-Framework, welches beim Entwickeln von Erweiterungen unterstützen soll.
Irgendwo, leider finde ich das gerade nicht mehr und bin deshalb auch nicht mehr ganz sicher, meine ich, mal gelesen zu haben, dass man dieses Framework auch nutzen kann, um vom CMS losgelöste Webanwendungen zu entwickeln.
Aber lasse mich auch gerne eines besseren belehren.
Deine Anregung selber ein MVC-System zu erstellen hört sich gut an. Meinst du damit ein eigenes Framework, welches das MVC-Pattern implementiert?

Nachtrag: Nun habe ich auch wieder gefunden, wo ich das gelesen habe. Es wurde im Joomla Entwicklerhandbuch geschrieben.

http://books.google.de/books?id=ghP...e&q=webanwendung mit joomla framework&f=false

Nachtrag2: Da sucht man tagelang und findet nix vernünftiges. Dann hat man gute 5 Minuten und alle Fragen erledigen sich fast von alleine.

http://www.joomlaportal.de/joomla-e...oomla-als-application-framwork-verwenden.html
 
Zuletzt bearbeitet: