PHP-Module in statischen Seiten - Architektur-Ansätze

13
/ web / information / technology / / web / information / technology / 1 PHP-CMS-Einbindung Architektur-Ideen für dynamische Inhalte in statischen Seiten Vortrag PHPUG - Frankfurt am 20.11.12

description

Vortrag bei der PHPUG - Frankfurt am 20.11.12: Diskussion von Ansätzen, wie dynamische PHP-Widgets (interaktive Module) in statische Seiten durch Redakteure mittels CMS eingebunden werden können: - PHP, Zend Framework - CMS, OpenText, FirstSpirit, Typo3 - Reverse Proxy, Content Repository Links: - http://www.phpugffm.de/ - http://www.dmr-solutions.com/

Transcript of PHP-Module in statischen Seiten - Architektur-Ansätze

Page 1: PHP-Module in statischen Seiten - Architektur-Ansätze

/ web / information / technology / / web / information / technology / 1

PHP-CMS-Einbindung Architektur-Ideen für dynamische Inhalte in statischen Seiten

Vortrag PHPUG - Frankfurt am 20.11.12

Page 2: PHP-Module in statischen Seiten - Architektur-Ansätze

/ web / information / technology / / web / information / technology / 2

Maßgeschneiderte Software-Lösungen im Internet

Wir entwickeln gerne hochwertige, maßgeschneiderte Web-Anwendungen, gerne

basierend auf Open-Source-Bausteinen:

eigenständige PHP-Anwendungen oder

eingebettete PHP-Module in statischen Seiten

typischerweise basierend auf MVC-Frameworks

Typische Arbeitsteilung:

Webdesigner + SW-Entwickler

Redakteure

(passive) model - view - controller

Page 3: PHP-Module in statischen Seiten - Architektur-Ansätze

/ web / information / technology / / web / information / technology / 3

Content-Pflege

10% statische Inhalte

Manuelle Pflege der Views:

durch SW-Entwickler

90% statische Inhalte

Content-Management:

durch Redakteure

Page 4: PHP-Module in statischen Seiten - Architektur-Ansätze

/ web / information / technology / / web / information / technology / 4

Stand-Alone-Anwendung

10% statische Inhalte

URL rewriting (mod_rewrite)

Front-Controller (index.php)

MVC-Start (bootstrapping)

routing, dispatch

controller: action

process request

change model

render view

Pflege durch Programmierer

http://www.mvc.de/modul/controller/action

Page 5: PHP-Module in statischen Seiten - Architektur-Ansätze

/ web / information / technology / / web / information / technology / 5

Eingebettete Widgets

90% statische Inhalte

statische Seiten

mit eingebetteten Widgets

Pflege statischer Inhalte

durch Redakteur

Einbindung der Widgets

durch Redakteur

Pflege der Widgets

durch Programmierer

Page 6: PHP-Module in statischen Seiten - Architektur-Ansätze

/ web / information / technology / / web / information / technology / 6

Statische Seite mit Widgets

90% statische Inhalte

URL der statischen Seite http://www.kunde.de/thema/seite.php

mehrere Widgets/Seite möglich

eigenständige MVC-Fenster

widget-controller

widget-model

widget-view

Einbettung der Widgets und

Parameter-Übergabe im CMS

an vordefinierten Blöcken

(Platzhaltern)

Page 7: PHP-Module in statischen Seiten - Architektur-Ansätze

/ web / information / technology / / web / information / technology / 7

2 CMS-Beispiele

CMS-Widget-Einbindung

OpenText (RedDot)

FirstSpirit

Publizierung auf Web-Server

CMS

Web-

Server

Redakteur

User

publiziert Seiten

Page 8: PHP-Module in statischen Seiten - Architektur-Ansätze

/ web / information / technology / / web / information / technology / 8

Beispiel OpenText

Seite mit eigenständigen Widget-Modulen

direkter Seitenaufruf,

kein URL rewriting

MVC-Start je Modul (bootstrapping)

direkter Aufruf der controller-action

controller: action

process request

change model

render widget-view

Ausgabe ist auf Widget beschränkt

http://www.kunde.de/thema/seite.php

Kunde_Controller_RedDotMultiple::start('de.kunde.www', $options);

Seite

Page 9: PHP-Module in statischen Seiten - Architektur-Ansätze

/ web / information / technology / / web / information / technology / 9

Beispiel FirstSpirit

View mit eingebetteten Widget-Subviews

URL rewriting (mod_rewrite)

Front-Controller (index.php)

MVC-Start (bootstrapping)

eigens routing, action-stack, dispatch:

Suche und Analyse der ini-Datei,

Vorab-Ausführung aller Widget-Controller

controller: action

process request

change model

render subview to placeholder

render view mit view-Variablen und subviews

http://www.kunde.de/thema/seite.phtml, http://www.kunde.de/thema/seite.ini

<?php echo $this->placeholder('kalzium-rechner'); ?>

action-

stack

Page 10: PHP-Module in statischen Seiten - Architektur-Ansätze

/ web / information / technology / / web / information / technology / 10

ini-Datei

Parameter-Übergabe an Widgets

Redakteur

fügt Widget als neuen Absatz ein

und wählt Parameter

CMS

erzeugt ini-Datei für alle Widgets

parallel zur view-Datei

http://www.kunde.de/de/thema/seite.html,

http://www.kunde.de/de_1/thema/seite.ini

[widgets]

account-login.active = true

gewinnspiel.active = true

gewinnspiel.params.gewinnspielDatenschutzUri = "http://www.bla.de"

view

ini-Datei

Page 11: PHP-Module in statischen Seiten - Architektur-Ansätze

/ web / information / technology / / web / information / technology / 11

Typo3 ?

CMS mit Extensions ?

Generierung auf Web-Server in Echtzeit

Caching

CMS mit Extensions

eigene T3X (Typo3 Extension API),

„Zend Framework Integration T3X“

oder eigenständige Widget-Module (s.o.)

CMS (Phoenix) +

Neos = 80% Flow (MVC-Framework)

Neos mit Flow: CMS + MVC-Framework

Flow mit Neos: MVC-Framework + CMS-Modulen

Page 12: PHP-Module in statischen Seiten - Architektur-Ansätze

/ web / information / technology / / web / information / technology / 12

Diskussion

Vielen Dank für die anregende und fachkundige Diskussion

und die neuen Ansatzpunkte:

Reverse Proxy

https://www.varnish-cache.org/,

Content Assembly

Edge Side Includes language http://www.w3.org/TR/esi-lang

RedDot LiveServer (Content-DynaMent)

Symphony CMS http://getsymphony.com/ XSLT templating, take external XML

W3C Widgets http://www.w3.org/standards/techs/widgets, Apache Wookie

Dashboards http://www.netvibes.com/de

Content Repository

Java Content Repository (JCR): Apache Jackrabbit implementation

Alfresco und Sophora CMS (subshell gmbh) nutzen JCR

Content Management Interoperability Services (CMIS)

<esi:include src="URI" /> <rde-dm:include content="URI" …

Page 13: PHP-Module in statischen Seiten - Architektur-Ansätze

/ web / information / technology / / web / information / technology / 13

Kontakt

Büro: Siemensstr. 8A, 61352 Bad Homburg, Tel.: 06172 / 4988554

http://www.dmr-solutions.com

mailto:[email protected]

Auszug aus der Kundenliste:

http://info.engelhorn.de - engelhorn Gruppe Mannheim

http://www.niederspannungskatalog.de - ABB STOTZ Heidelberg

http://www.wdv.de/ - wdv Corporate Publishing Bad Homburg

Weitere unter http://www.dmr-solutions.com/de/references/

Wie können wir Sie unterstützen?