Ralf Eggert. Zend Framework 2. Das Praxisbuch

Größe: px
Ab Seite anzeigen:

Download "Ralf Eggert. Zend Framework 2. Das Praxisbuch"

Transkript

1 Ralf Eggert Zend Framework 2 Das Praxisbuch

2 Auf einen Blick Auf einen Blick TEIL I Die Grundlagen 1 Einführung in das Zend Framework Neuerungen im Zend Framework Das Zend Framework einrichten TEIL II Die Komponenten 4 Basis-Komponenten Der Event-Manager Service Location & Dependency Injection Der Modul-Manager MVC-Komponenten View-Komponenten Datenbank-Komponenten Ausgabe-Komponenten Formularverarbeitung Benutzermanagement Sonstige Komponenten TEIL III Die Module 15 Das Anwendungsmodul Das Blog-Modul Das Benutzer-Modul Das Pizza-Modul Das Kommentar-Modul Das Spamabwehr-Modul Das CMS-Modul Das Shop-Modul

3 Inhalt Inhalt Geleitwort Vorwort Vorwort des Autors zur Vorauflage TEIL I Die Grundlagen 1 Einführung in das Zend Framework Abgrenzung zu anderen PHP-Frameworks Die Zielgruppe des Buches Wegweiser Überblick über die Komponenten Listings, Projektdateien, Programmierrichtlinien Der Zend Framework 2-Kosmos Links zum Buch Neuerungen im Zend Framework Begrifflichkeiten PHP-Version PHP-Namespaces Closures Late Static Binding Git und GitHub Neue Konzepte Verbesserte Modularität Dependency Injection Service-Locator Ereignisgesteuerte Architektur Komponentenvergleich Vor- und Nachteile des ZF

4 Inhalt 3 Das Zend Framework einrichten Voraussetzungen PHP-Version PHP-Extensions Apache 2-Konfiguration Virtual Host einrichten unter Linux Virtual Host einrichten unter Windows Weitere Informationen Zend Framework 2 installieren Installation aus einem ZIP-Paket Installation mit Pyrus Installation mit Composer SkeletonApplication installieren Installation aus einem ZIP-Paket Installation mit Git Einrichtung mit Composer Struktur einer Zend Framework 2-Anwendung Hauptverzeichnis Das Konfigurationsverzeichnis Das Public-Verzeichnis Vendor-Verzeichnis Das Modulverzeichnis Kaskadierendes Laden der Konfigurationsdaten Autoloading mit Composer TEIL II Die Komponenten 4 Basis-Komponenten Zend\Loader StandardAutoloader ClassMapAutoloader AutoloaderFactory Eigenen Autoloader erstellen Zend\Config Konfigurationsdateien lesen Konfigurationsdateien schreiben

5 Inhalt 4.3 Zend\Cache Cache-Storages Storage-Plugins und Capabilities Cache-Patterns Zend\Log Zusammenspiel der Teilkomponenten Writer Formatter Filter Zend\Mail und Zend\Mime Eine -Nachricht erstellen Eine -Nachricht versenden MIME-Nachricht erstellen Nachrichten abrufen Zend\Filter Standardfilter Statische Filter Filterketten Eigenen Filter erstellen Zend\Validator Standardvalidatoren Statische Validatoren Validatorketten Eigenen Validator erstellen Validator-Fehlermeldungen anpassen Der Event-Manager Einführung EventManagerAwareInterface Listener mit Closures umsetzen Listener mit Aggregaten umsetzen Übergabe von Parametern an Listener SharedEventManager

6 Inhalt 6 Service Location & Dependency Injection Zend\ServiceManager Beispielklassen Unterstützte Instanziierungsarten Den Service-Manager konfigurieren Konfigurationsklasse Konfigurationsdatei Initializer einrichten Abstrakte Fabrik verwenden Den Service-Manager richtig nutzen Zend\Di Automatische Erkennung mit»runtimedefinition« Definition kompilieren mit»compilerdefinition« Abhängigkeiten konfigurieren Zend\Di richtig nutzen Der Modul-Manager Einführung Aufbau eines Moduls Die Modul-Klasse Das Konfigurationsverzeichnis Assets im Public-Verzeichnis Das Source-Verzeichnis Tests Das View-Verzeichnis Modulkonfiguration Autoloading konfigurieren Konfigurationsdaten bereitstellen Services konfigurieren Controller konfigurieren Controller-Plugins konfigurieren View-Helper konfigurieren Weitere Konfigurationen Ein Anwendungsmodul entwickeln Die Modul-Klasse Modulkonfiguration

7 Inhalt Controller und View-Script einrichten Request-Parameter verwenden Library-Modul erstellen Fremdmodule installieren Die ZendDeveloperTools mit Composer installieren ZfcUser und ZfcBase mit Git klonen MVC-Komponenten Einführung Application Initialisierungsprozess Bootstrapping Der Verarbeitungsprozess Services Routing Route-Typen Der Route-Typ»Hostname« Der Route-Typ»Literal« Der Route-Typ»Regex« Der Route-Typ»Segment« SimpleRouteStack TreeRouteStack Routing konfigurieren Routing-Tipps Events Das»route«-Event für die Sprachfestlegung nutzen Das»dispatch.error«-Event für das Logging nutzen Das»finish«-Event für die Zeitmessung nutzen Controller Einführung Action-Controller Zugriff auf Objekte Services injizieren RESTful-Controller Controller-Plugins Zugriff auf Plugins

8 Inhalt Das»Layout«-Plugin Das»Url«-Plugin Das»Redirect«-Plugin Das»Forward«-Plugin Das»Params«-Plugin Das»PostRedirectGet«-Plugin Das»FilePostRedirectGet«-Plugin Das»FlashMessenger«-Plugin Ein eigenes Plugin erstellen View-Komponenten Einführung in Zend\View Bestandteile Teilkomponenten Konfiguration ViewModels ViewModels verschachteln Weitere View-Models Resolver, Renderer und Strategies Resolver Renderer Strategies View-Scripts View-Helper View-Helper für HTML-Kopfdaten View-Helper für URLs View-Helper für das Escaping Weitere View-Helper Einen eigenen View-Helper erstellen Template-Engines Datenbank-Komponenten Das Datenbankmodell Datenbankadapter

9 Inhalt Konfiguration eines Adapters Ausführen von lesenden Abfragen Ausführen von schreibenden Abfragen ResultSet für Adapter konfigurieren SQL-Abfragen generieren Lesende Abfragen generieren Schreibende Abfragen generieren Abfragen mit DDL generieren Gateway-Klassen Zend\Db\TableGateway TableGateway-Features Zend\Db\RowGateway Doctrine Installation und Konfiguration Modul und Entitäten vorbereiten Doctrine 2 einsetzen Ausgabe-Komponenten Zend\I18n Translator View-Helper Fehlermeldungen für Zend\Validator übersetzen Zend\Navigation Container und Seiten anlegen Navigation konfigurieren Navigation ausgeben Navigation und ACL Zend\Paginator Adapter für Zend\Paginator Seitennavigation Zend\Feed Feeds lesen Feeds schreiben Feeds mit Zend\Mvc und Zend\View Weitere Hilfskomponenten Zend\Escaper

10 Inhalt Zend\Json Zend\Tag Zend\Barcode Formularverarbeitung Zend\InputFilter Ein InputFilter-Objekt erstellen Factory mit Konfigurationsdaten nutzen InputFilter als eigenständige Klassen Hierarchische InputFilter InputFilter im MVC Zend\Form Einführung Ein Form-Objekt erstellen Fieldsets Collections Elemente Ausgabe mit View-Helpern Validierung von Formularen Objekte anbinden Annotationen Datei-Uploads Benutzermanagement Zend\Session Mit Session-Containern arbeiten Session-Manager verwenden Sessions in der Datenbank speichern Zend\Permissions\Acl Begrifflichkeiten ACL definieren ACL abfragen ACL cachen Zend\Permissions\Rbac Begrifflichkeiten

11 Inhalt RBAC definieren RBAC abfragen Zend\Authentication Per HTTP authentifizieren Gegen eine Datenbanktabelle authentifizieren Authentifizierungsservice Zend\Ldap Sonstige Komponenten Zend\Http HTTP-Anfrage senden und verarbeiten Verbindungsadapter Fortgeschrittener Einsatz Zend\Soap SOAP-Server bereitstellen SOAP-Client einsetzen Zend\XmlRpc XML-RPC-Server bereitstellen XML-RPC-Client einsetzen Zend\Crypt Zend\Stdlib TEIL III Die Module 15 Das Anwendungsmodul Anforderungen Anwendungsmodul konfigurieren Eigene View-Helper Der View-Helper»PageTitle« Der View-Helper»ShowMessages« Der View-Helper»ShowForm« Der View-Helper»Date«

12 Inhalt 15.4 Mehrstufiges Seitenlayout Menü im Seitenkopf einrichten Controller und View-Scripts Meldungen der Validatoren übersetzen Pagination Eigene Filter Der»StringToUrl«-Filter Der»StringHtmlPurifier«-Filter Konfiguration für beide Filter CKEditor Das Blog-Modul Anforderungen Das Blog-Modul einrichten Modelinfrastruktur Datenbank einrichten Klassen erstellen Filter und Formulare Filter und Validierung Formularklasse Factories Den Blog-Service einrichten Formular-Objekte injizieren Der Blog-Service Überblick Öffentlicher Bereich Action-Controller einrichten View-Scripts einrichten Administrationsbereich Action-Controller einrichten View-Scripts einrichten Optimierungen

13 Inhalt 17 Das Benutzer-Modul Anforderungen Vorbereitungen Authentifizierung und Autorisierung Authentifizierungsadapter Authentifizierungsservice Autorisierungsservice Konfiguration der Benutzerrechte User-Service einrichten View-Helper einrichten Der View-Helper»UserIsAllowed« Der View-Helper»UserShowWidget« UserListener einrichten Öffentlicher Bereich Den Action-Controller einrichten View-Scripts einrichten Das Pizza-Modul Anforderungen Vorbereitungen Modelinfrastruktur Pizza-Service einrichten Formulare einrichten Bild-Upload einrichten Administrationsbereich Ein Pizza-Karussell einrichten Das Kommentar-Modul Anforderungen Vorbereitungen

14 Inhalt 19.3 Modul-Konfiguration View-Helper einrichten Der View-Helper»CommentShowLinks« Der View-Helper»CommentShowComments« Einsatz der View-Helper Kommentare anlegen Kommentar-Service erweitern Das Spamabwehr-Modul Anforderungen Vorbereitungen Modul-Konfiguration Autoloading Spamabwehr-Service Controller-Plugin Der View-Helper»SpamCheck« Spamabwehr im Kommentar-Modul nutzen Konfiguration anpassen Entität anpassen Den Kommentar-Service anpassen Action-Controller anpassen View-Scripts anpassen Das Spamabwehr-Modul im Einsatz Das CMS-Modul Anforderungen Vorbereitungen Konfiguration CMS-Service Textblöcke View-Helper zur Ausgabe von Textblöcken

15 Inhalt 21.3 Ein Formular einrichten CMS-Service erweitern View-Helper für das Bearbeiten erweitern JavaScript-Funktionen Controller einrichten Das Shop-Modul Anforderungen Vorbereitungen Modelinfrastruktur Bestellservice Warenkorb-Service Controller-Plugin View-Helper Der View-Helper»ShowBasket« Der View-Helper»GetOrder« Der Warenkorb-Controller Warenkorb-View-Scripts Den Warenkorb im Pizza-Modul einsetzen Das Warenkorb-Modul im Einsatz Anhang 599 A Installation der Projektdateien A.1 ZIP-Pakete downloaden A.2 Dateien von GitHub klonen A.3 Installation ohne Composer A.4 Virtual Host anpassen B Weitere Komponenten C Performance-Tipps C.1 Autoloader ClassMap

16 Inhalt C.2 TemplateMap C.3 Die Modul-Konfiguration cachen C.4 Weitere Caches Index

17 Kapitel 2 Neuerungen im Zend Framework 2 2 Viele Umsteiger vom Zend Framework 1 sind besonders an den Neuerungen interessiert, die das Zend Framework 2 mit sich bringt. Für Umsteiger hat sich im ZF2 einiges geändert, sodass sie sich auf einen erneuten Lernaufwand einstellen müssen. Diese Hürde sollte jedoch niemanden abschrecken. Wer sich einmal in die neuen Konzepte und Komponenten eingearbeitet hat, der wird sie zukünftig nicht mehr missen wollen. Die größten Probleme treten am ehesten auf, wenn eine viel genutzte ZF1-Komponente im ZF2 nicht mehr zum Framework-Kern gehört. In solch einem Fall können Sie bei Bedarf zumindest übergangsweise immer noch die ZF1-Komponenten verwenden. Dieses Kapitel fasst die wesentlichen Änderungen beim Umstieg vom ZF1 auf das ZF2 zusammen. Wenn Sie sich bereits mit dem ZF1 auskennen, sollten Sie sich dieses Kapitel aufmerksam durchlesen. Einsteiger ins Zend Framework 2 sollten die Abschnitte über PHP 5.3, Git und GitHub sowie die neuen Konzepte genauer in Augenschein nehmen. Alle Listings aus diesem Kapitel finden Sie auf der buchbegleitenden Bonus-Seite. Details zur Installation finden Sie in Anhang A,»Installation der Projektdateien«. 2.1 Begrifflichkeiten Einige Begriffe werden in diesem Buch von Beginn an sehr häufig gebraucht, auch wenn diese im ZF1 für den Anwender nicht ganz so allgegenwärtig waren, wie sie es im ZF2 sind. Interfaces wurden bereits im ZF1 an vielen Stellen eingesetzt. Wenn Sie das ZF2 einsetzen, kommen Sie damit häufiger in Berührung. Ein Interface gibt vor, welche Methoden mit welchen Parametern in einer Klasse vorhanden sein müssen, wenn diese Klasse das Interface implementiert. Für Klassen, die von anderen Klassen verwendet werden, wird empfohlen, ein Interface als Basis zu erschaffen und dieses auch in den Methodensignaturen zu verwenden. Es heißt also nicht: function bakepizza(pizza $pizza) sondern: 33

18 2 Neuerungen im Zend Framework 2 function bakepizza(pizzainterface $pizza) Die Aufgabe von Factories ist es, ein Objekt zu erstellen. Dabei wird nicht einfach der Konstruktor dieser Klasse aufgerufen. Sondern es wird die Factory aufgerufen, die verschiedene Vorbereitungen trifft, um dann den Konstruktor aufzurufen. Diese Vorbereitungen sind in der Regel die Bereitstellung von anderen Objekten, die der Konstruktor bei der Initialisierung benötigt. Factories können als Klassen, Methoden oder Closures implementiert sein. In einer Modelinfrastruktur kann es verschiedene Bestandteile geben. Eine Entität stellt dabei ein einfaches Objekt, wie z. B. eine Pizza, ein Buch oder einen Blogbeitrag dar. Eine Datenquelle ist dafür zuständig, die Daten für eine Entität aus einer Datenbank oder einer anderen Datenquelle zu lesen. Um die Daten aus einer Datenquelle an eine Entität zu übergeben, bedarf es eines Mappers. Ein Hydrator ist ebenfalls eine Art Mapper, der Daten eines Arrays an ein Objekt übergeben kann und umgekehrt. Ein Model-Service hält alles zusammen. Er kommuniziert mit Datenquellen und Mappern, verarbeitet Entitäten, setzt Hydratoren ein und stellt eine Schnittstelle bereit, damit Controller auf die Modelinfrastruktur zugreifen können. 2.2 PHP-Version Die augenscheinlichste Neuerung ist der Wechsel auf PHP 5.3 als Mindestanforderung für das Zend Framework 2. Setzte das Zend Framework 1 noch PHP 5.2 voraus, so konnten durch den Umstieg auf PHP 5.3 eine Vielzahl neuer Funktionen genutzt werden. Der Zend Framework 2-Nutzer kommt am ehesten mit dem Einsatz von Namensräumen und der Verwendung von Closures in Berührung. Das Zend Framework 2 macht aber auch regen Gebrauch vom Late Static Binding. Trotz allem sollten Sie neue Projekte am besten gleich auf PHP 5.4 aufsetzen, da auch PHP 5.3 langsam in die Jahre gekommen ist PHP-Namespaces In PHP 5.2 wurden keine Namensräume unterstützt. Deshalb wurden im Zend Framework 1 künstliche Namensräume geschaffen, um die Klassen auf die Dateiebene abbilden zu können. Ein Beispiel: Die Klasse Zend_Loader_Autoloader ist im Zend Framework 1 in der Datei /library/zend/loader/autoloader.php abgelegt. Durch diese künstlichen Namensräume wird sichergestellt, dass es nicht zu Namenskollisionen mit anderen Autoloader-Klassen aus anderen Bibliotheken kommt. PHP 5.3 bietet echte Namensräume, sodass im Zend Framework 2 das Abbilden von Klassen auf Dateiebene vereinfacht wird. Die neue Klasse StandardAutoloader gehört 34

19 2.2 PHP-Version zum Namensraum Zend\Loader und befindet sich somit in der Datei /library/zend/ Loader/StandardAutoloader.php. Ein anderes Beispiel soll eine weitere Neuerung verdeutlichen: Im Zend Framework 1 befindet sich die Klasse Zend_Config in der Datei /library/zend/config.php. Im Zend Framework 2 dürfen im /library/zend/-verzeichnis keine Dateien liegen. Die äquivalente Klasse Config gehört somit zum Namensraum Zend\Config und befindet sich in der Datei /library/zend/config/config.php. 2 In Listing 2.1 ist auszugsweise die besagte Klasse Config zu sehen. Oben wird mit dem Schlüsselwort namespace der Namensraum definiert, zu dem die Klasse gehört. Mithilfe des Schlüsselwortes use werden andere Namensräume importiert, damit Klassen und Interfaces aus diesen Namensräumen in unserer Klasse verwendet werden können. Bei den Namensräumen ArrayAccess, Countable und Iterator handelt es sich übrigens um Namensräume, die von PHP 5.3 direkt bereitgestellt werden. namespace Zend\Config; use ArrayAccess; use Countable; use Iterator; class Config implements Countable, Iterator, ArrayAccess { // do whatever Listing 2.1 Namensraum-Deklaration für die Config-Klasse Die Verwendung der Namensräume ist jedoch nicht auf die Zend Framework 2-Bibliothek beschränkt. Auch in den Klassen und Anwendungsmodulen können und sollten Entwickler Namensräume definieren (zum Thema Modularität siehe Abschnitt 2.4.1,»Verbesserte Modularität«). In Listing 2.2 ist ein Action-Controller aus einem Application-Modul zu sehen. Dieser Klasse wurde der Namensraum Application\Controller zugewiesen. Die Klasse importiert vier Namensräume, von denen zwei zur Zend Framework 2-Bibliothek gehören und die beiden anderen zu einem Blog-Modul. Mithilfe des Schlüsselworts as kann einem Namensraum auch ein Alias gegeben werden. Dies ist erforderlich, da es ansonsten zwischen den beiden Klassen Blog\Service\Blog und Blog\Options\ Blog zu Namenskollisionen kommen könnte. namespace Application\Controller; use Zend\Mvc\Controller\AbstractActionController; 35

20 2 Neuerungen im Zend Framework 2 use Zend\View\Model\ViewModel; use Blog\Service\Blog as BlogService; use Blog\Options\Blog as BlogOptions; class IndexController extends AbstractActionController { Listing 2.2 Namensraum-Deklaration für einen Action-Controller ZF1-Umsteiger und ZF2-Einsteiger werden gleichermaßen die Vorteile der Namensräume schnell zu schätzen wissen und ihre Anwendung darauf aufbauen wollen Closures Eine Closure ist eine anonyme Funktion, die z. B. einer Variable zugeordnet werden kann. Sie wird als anonym bezeichnet, da diese Funktion keinen Namen hat, durch den sie aufgerufen werden könnte. Listing 2.3 zeigt ein einfaches Beispiel. Der Variablen $pizzaprice wird eine Closure zugewiesen. Diese Funktion nimmt die Anzahl der Zutaten entgegen und ermittelt damit den Preis einer Pizza, indem zu einem Grundpreis nochmals der Preis pro Zutat hinzuaddiert wird. Der Aufruf dieser Closure erfolgt dann direkt über die Variable $pizzaprice, die als Funktion verwendet werden kann. $pizzaprice = function($items) { return $items * 0.95; ; echo $pizzaprice(3); // output 6.8 echo $pizzaprice(7); // output 10.6 Listing 2.3 Beispiel für eine einfache Closure-Definition Eine Closure kann aber beim Aufruf nicht nur variable Parameter übergeben bekommen. Es ist auch möglich, bei der Definition Variablen mithilfe des Schlüsselwortes use zu übergeben, die dann als fixe Werte verwendet werden können. Listing 2.4 zeigt das geänderte Beispiel, bei dem die Werte für den Grundpreis und den Preis pro Zutat bei der Definition der Funktion übergeben werden: $baseprice = 3.95; $itemprice = 0.95; $pizzaprice = function($items) use ($baseprice, $itemprice) { return $baseprice + $items * $itemprice; 36

21 2.2 PHP-Version ; echo $pizzaprice(2); // output 5.85 echo $pizzaprice(6); // output Listing 2.4 Beispiel für eine Closure-Definition mit übergebenen Variablen Closures können aber nicht nur an Variablen übergeben werden, sondern auch als Parameter an andere Funktionen oder Klassenmethoden übergeben werden. In Listing 2.5 werden zuerst einige Pizza-Klassen definiert sowie eine Sammlung von Pizza- Objekten erstellt. Um nur die Salami-Pizzen auszufiltern, wird das Objekt $pizzalist an die array_filter()-methode übergeben. Zudem wird eine Closure als Callback- Funktion übergeben, die true zurückgibt, wenn der Wert eine Instanz von Pizza- Salami ist, und andernfalls false. Bei der Ausgabe werden nur die beiden Instanzen von PizzaSalami ausgegeben, und die anderen Pizzen werden ausgefiltert. class PizzaSalami { class PizzaHawaii { class PizzaMelon { $pizzalist = array( new PizzaSalami(), new PizzaHawaii(), new PizzaMelon(), new PizzaSalami() ); $pizzasalamionly = array_filter($pizzalist, function($val) { return ($val instanceof PizzaSalami); ); var_dump($pizzasalamionly); Listing 2.5 Beispiel für eine Closure-Definition als Parameter einer Funktion Somit können wir Closures auch für alle PHP-Funktionen verwenden, die eine Callback-Funktion als Parameter erwarten. Neben der verwendeten array_filter()- Funktion wären das z. B. auch call_user_func() oder usort(). Zend Framework 2-Nutzer verwenden Closures am ehesten bei der Definition von Factories für den Service-Manager (siehe Abschnitt 6.1,»Zend\ServiceManager«). 37

22 2 Neuerungen im Zend Framework Late Static Binding Die Methodik das Late Static Binding (»späte statische Bindung«) löst ein Problem bei erweiterten Klassen mit statischen Methoden und Eigenschaften, das in Listing 2.6 demonstriert wird. Die Klasse PizzaSalami definiert drei Methoden. Die Methode getnameself() greift über das Schlüsselwort self auf die Methode name() zu, während die Methode getnamestatic() das Schlüsselwort static verwendet. Die Klasse Pizza- SalamiPeperoni erweitert die Klasse PizzaSalami und überschreibt die Methode name(). Der Unterschied in der Funktionsweise tritt beim Aufruf der Methode Pizza- SalamiPeperoni::getNameStatic() am Ende des Listings auf. Dort wird nämlich der richtige Name der PizzaSalamiPeperoni ausgegeben. Dieses Verhalten war in PHP 5.2 nicht möglich und hat vielen Entwicklern einiges Kopfzerbrechen bereitet. class PizzaSalami { public static function getnameself() { return self::name(); public static function getnamestatic() { return static::name(); public static function name() { return 'Pizza mit Salami'; class PizzaSalamiPeperoni extends PizzaSalami { public static function name() { return 'Pizza mit Salami und Peperoni'; echo PizzaSalami::getNameSelf(); echo PizzaSalami::getNameStatic(); echo PizzaSalamiPeperoni::getNameSelf(); echo PizzaSalamiPeperoni::getNameStatic(); Listing 2.6 Beispiel für Late Static Binding Die Methodik des Late Static Binding wird in der Zend Framework 2-Bibliothek recht häufig verwendet. Als Nutzer des Zend Framework 2 kommen Sie damit nur in Berührung, wenn Sie es in ihren eigenen Klassen verwenden möchten. 38

23 2.3 Git und GitHub 2.3 Git und GitHub Eine technische Umstellung, die vorwiegend die Zend Framework 2-Entwickler betrifft, ist der Wechsel von Subversion (SVN) zu Git. Bei SVN und Git handelt es sich um Software für die Versionsverwaltung von Dateien. Das Zend Framework 1 hat von Beginn an auf SVN gesetzt. Für das Zend Framework 2 wurde frühzeitig entschieden, sich die Vorteile von Git für die Entwicklung des ZF2 zunutze zu machen. Doch wieso kam es dazu? 2 Das Zend-Framework-Team versprach sich von dem Wechsel eine verbesserte Produktivität, sodass Patches und Verbesserungsvorschläge der Framework-Anwender schneller eingepflegt werden können. Die Erfahrung der letzten Jahre in der Entwicklung vom Zend Framework 2 hat diese Hoffnung mehr als bestätigt. Mittlerweile ist auch der Issue Tracker, in dem Anwender Bugs und Feature Requests einstellen können, auch zu GitHub gewechselt. Somit liegen die wichtigsten Entwicklungstools nun auf einer Plattform und sind nicht über mehrere Tools verteilt. Git gibt es für alle wichtigen Betriebssysteme wie Linux, Windows und Mac OS X (http://git-scm.com/). Wenn Sie eine Anwendung mit dem Zend Framework erstellen möchten, müssen Sie für Ihre Versionsverwaltung nicht unbedingt auch zu Git wechseln. Es ist aber dennoch hilfreich, wenn auf Ihrem Entwicklungsrechner auch Git zur Verfügung steht, da dies die Installationen der SkeletonApplication (siehe Abschnitt 3.3,»SkeletonApplication installieren«) sowie von Fremdmodulen vereinfachen kann. Bei GitHub handelt es sich um einen webbasierten Hosting-Dienst für Softwareprojekte (https://github.com/). Dort kann jeder Entwickler eigene öffentliche Repositories für seine Softwareprojekte anlegen und pflegen oder bestehende kopieren, um sie an eigene Bedürfnisse anzupassen. Nicht nur das Zend Framework 2 wird in einem Repository auf GitHub gepflegt (siehe https://github.com/zendframework/). Auch viele ZF2-Fremdmodule sind dort zu finden; als Beispiel seien die Module der ZF-Commons-Initiative genannt (siehe https:// github.com/zf-commons). Wer sich mit Git und GitHub noch nicht auskennt, der braucht keine Angst zu haben, außer mit dem neuen Zend Framework 2 auch noch Stunden mit dem Lernen von Git und GitHub verbringen zu müssen. Mit folgenden Links gelingt der Einstieg auch Anfängern: Ein schön gemachtes, interaktives Tutorial für den allgemeinen Einstieg in Git und GitHub 39

24 2 Neuerungen im Zend Framework 2 Im Zend Framework 2-Wiki gibt es einen Git Guide, mit dem sich der Entwickler mit den wichtigsten Befehlen und Funktionen von Git und GitHub vertraut machen kann. Die Website bietet viele Tipps und Tricks auf Deutsch zum Lernen von Git auch für fortgeschrittene Themen. Im weiteren Verlauf des Buches werden wir bei der Installation der SkeletonApplication und bei Fremdmodulen sowie beim Einrichten eigener Repositories auf die grundlegenden Befehle und Funktionen von Git näher eingehen. 2.4 Neue Konzepte Im Zend Framework 2 wurde eine Vielzahl neuer Konzepte implementiert, die im Zend Framework 1 noch nicht oder nur teilweise umgesetzt waren. Diese Konzepte wurden nicht von den Zend Framework 2-Entwicklern erfunden, sondern werden schon länger in der Softwareentwicklung eingesetzt. Neu ist der Einsatz im ZF2. Mithilfe dieser Konzepte wurde die Entwicklung von Zend Framework 2-Anwendungen noch einmal um ein Vielfaches vereinfacht. Einsteiger und Umsteiger müssen diese Lernkurve jedoch erst einmal erklimmen. Sobald Sie aber die Konzepte verstanden und verinnerlicht haben, werden Sie diese in Zukunft nicht mehr missen wollen. Die Konzepte werden in diesem Abschnitt unabhängig vom Zend Framework 2 erläutert. Auf die konkreten Zend Framework 2-Implementierungen wird entsprechend verwiesen Verbesserte Modularität Im Zend Framework 1 gab es bereits Module. Doch diese waren eher Bürger zweiter Klasse (»second-class citizens«). Die Konfiguration der Module war mühsam, und ein Austausch von Modulen zwischen mehreren Anwendungen war aufgrund von Abhängigkeiten nicht ohne Weiteres möglich. Im Wesentlichen waren Module im ZF1 nur Container für Action-Controller, View-Scripts und für weitere Klassen des Moduls. Im Zend Framework 2 sind die Module nun Bürger erster Klasse. Das bedeutet, dass im Prinzip alles ein Modul ist. Selbst die Zend Framework 2-Bibliothek kann als Modul betrachtet werden. Somit braucht jede Zend Framework 2-Anwendung immer mindestens ein Anwendungsmodul, das aber vom Entwickler vollkommen frei konfiguriert werden kann. Dies bringt viele Freiheiten, bedeutet aber auch einen gewissen Aufwand bei der Einrichtung einer neuen Zend Framework 2-Anwendung. 40

Kapitel 2 Neuerungen im Zend Framework 2

Kapitel 2 Neuerungen im Zend Framework 2 Kapitel 2 Neuerungen im Zend Framework 2 2 Viele Umsteiger vom Zend Framework 1 sind besonders an den Neuerungen interessiert, die das Zend Framework 2 mit sich bringt. Für Umsteiger hat sich im ZF2 einiges

Mehr

Ralf Eggert. Zend Framework 2. Das Praxisbuch

Ralf Eggert. Zend Framework 2. Das Praxisbuch Ralf Eggert Zend Framework 2 Das Praxisbuch 7.4 Ein Anwendungsmodul entwickeln 7.3.7 Weitere Konfigurationen Der Modul-Manager ermöglicht auch die Konfiguration weiterer Elemente, für die entsprechende

Mehr

Das Zend Framework. Hält der Name, was er verspricht?

Das Zend Framework. Hält der Name, was er verspricht? Hält der Name, was er verspricht? Sprecher: Carsten Lucke Sofware-Ingenieur bei der sd&m AG, München Aktives Mitglied der sd&m Client- Community PEAR und PECL Entwickler Schreibt für Fachzeitschriften/-bücher

Mehr

Martin Marinschek- Wolfgang Radinger. Ruby on Rails. Einstieg in die effiziente Webentwicklung. [Tu dpunkt.verlag

Martin Marinschek- Wolfgang Radinger. Ruby on Rails. Einstieg in die effiziente Webentwicklung. [Tu dpunkt.verlag Martin Marinschek- Wolfgang Radinger Ruby on Rails Einstieg in die effiziente Webentwicklung [Tu dpunkt.verlag Inhaltsverzeichnis 1 Ruby on Rails -»Bitte Einsteigen«1 1.1 Web-Entwicklung und Entwicklung

Mehr

mitho -Framework für plenty PHP-Framework zur Anbindung an die plenty API

mitho -Framework für plenty PHP-Framework zur Anbindung an die plenty API PHP-Framework zur Anbindung an die plenty API Inhaltsverzeichnis 1 Kurzbeschreibung...3 2 Integration...4 3 Möglichkeiten...5 3.1 Artikel...5 3.2 Aufträge...5 3.3 Kunden...5 4 Interne Funktionsweise...7

Mehr

RIWA NetUpdater Tool für automatische Daten- und Softwareupdates

RIWA NetUpdater Tool für automatische Daten- und Softwareupdates RIWA NetUpdater Tool für automatische Daten- und Softwareupdates Grundlegendes... 1 Ausführbare Dateien und Betriebsmodi... 2 netupdater.exe... 2 netstart.exe... 2 netconfig.exe... 2 nethash.exe... 2 Verzeichnisse...

Mehr

Grundlagen der Informatik 2

Grundlagen der Informatik 2 Grundlagen der Informatik 2 Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1 Gliederung 1. Einführung

Mehr

Skalierbare Webanwendungen mit Python und Google App Engine

Skalierbare Webanwendungen mit Python und Google App Engine Skalierbare Webanwendungen mit Python und Google App Engine Oliver Albers 03. Juli 2008 1/32 Einführung Worum geht es? Pro und Contra Technik Genereller Aufbau Anwendungskonfiguration Verarbeitung von

Mehr

Inhalt. Max Lini. ax. inie. Einleitung... VII

Inhalt. Max Lini. ax. inie. Einleitung... VII rst Inhalt Einleitung....................................................... VII 1 Schöne neue Welt: Objektorientierte Programmierung in PHP 5.............. 1 Klassen, Interfaces und Objekte...................................

Mehr

Typo 3 installieren. Schritt 1: Download von Typo3

Typo 3 installieren. Schritt 1: Download von Typo3 Typo 3 installieren Bevor Sie Typo3 installieren, müssen Sie folgende Informationen beachten: Typo3 benötigt eine leere Datenbank. Mit Ihrem Abonnement verfügen Sie über eine einzige Datenbank. Sie können

Mehr

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 Kapitel 33 Der xml-datentyp In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 995 996 Kapitel 33: Der xml-datentyp Eine der wichtigsten

Mehr

ASICMS. Das einfache php-framework. Anleitung und Referenz. ASICMS Das einfache php-framework by Andreas Kasper 25. August 2007.

ASICMS. Das einfache php-framework. Anleitung und Referenz. ASICMS Das einfache php-framework by Andreas Kasper 25. August 2007. ASICMS Das einfache php-framework Anleitung und Referenz Seite 1 Inhaltsverzeichnis Inhaltsverzeichnis... 1 Inhaltsverzeichnis... 2 Einführung... 3 Was ist ASICMS?... 3 Was ist ein Widget?... 3 Installation...

Mehr

Komponentenbasierte Softwareentwicklung mit PHP. Oliver Schlicht - bitexpert

Komponentenbasierte Softwareentwicklung mit PHP. Oliver Schlicht - bitexpert Komponentenbasierte Softwareentwicklung mit PHP Oliver Schlicht - bitexpert Überblick 1. Was ist eine Komponente? 2. Entwicklung eines Beispieldesigns 3. Dependency Injection 4. DI Container Garden 5.

Mehr

IBM SPSS Data Access Pack Installationsanweisung für Windows

IBM SPSS Data Access Pack Installationsanweisung für Windows IBM SPSS Data Access Pack Installationsanweisung für Windows Inhaltsverzeichnis Kapitel 1. Übersicht.......... 1 Einführung............... 1 Bereitstellen einer Datenzugriffstechnologie.... 1 ODBC-Datenquellen...........

Mehr

Tutorial: Eigene Module und Extensions entwickeln. version: 0.1 Author: Anja Beuth

Tutorial: Eigene Module und Extensions entwickeln. version: 0.1 Author: Anja Beuth Tutorial: Eigene Module und Extensions entwickeln version: 0.1 Author: Anja Beuth Table of contents 1 2 2.1 2.2 2.3 2.4 3 4 4.1 4.2 4.3 5 5.1 6 6.1 6.2 Notwendigkeit prüfen... Ein Projekt in Visual Studio

Mehr

Enigma2 Plugin Entwicklung mit Eclipse

Enigma2 Plugin Entwicklung mit Eclipse Enigma2 Plugin Entwicklung mit Eclipse Enigma2 Plugin Entwicklung mit Eclipse 1/15 Inhaltsverzeichnis 1 ÜBER... 3 2 INSTALLATION... 4 2.1 INSTALLATION VON ECLIPSE... 4 2.2 INSTALLATION VON PYDEV... 4 3

Mehr

WCF Services in InfoPath 2010 nutzen

WCF Services in InfoPath 2010 nutzen WCF Services in InfoPath 2010 nutzen Abstract Gerade wenn man schreibend von InfoPath aus auf eine SQL-Server Datenbank zugreifen will, kommt man quasi um einen Web Service nicht herum. In diesem Post

Mehr

Inhaltsverzeichnis. 1 Einleitung... 15 1.1 Entstehungsgeschichte... 16 1.2 Über mich... 18 1.3 Zielgruppe... 19 1.4 Aufbau dieses Buches...

Inhaltsverzeichnis. 1 Einleitung... 15 1.1 Entstehungsgeschichte... 16 1.2 Über mich... 18 1.3 Zielgruppe... 19 1.4 Aufbau dieses Buches... 1 Einleitung........................................................ 15 1.1 Entstehungsgeschichte....................................... 16 1.2 Über mich..................................................

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Annotations in PHP. Von Dokumentation bis Funktionalität. Thorsten Hallwas, Software Engineer Florian Sonnenburg, Project Lead

Annotations in PHP. Von Dokumentation bis Funktionalität. Thorsten Hallwas, Software Engineer Florian Sonnenburg, Project Lead Annotations in PHP Von Dokumentation bis Funktionalität Thorsten Hallwas, Software Engineer Florian Sonnenburg, Project Lead 1 Über uns Thorsten Hallwas Software Engineer ICANS GmbH Dipl.-Inf. (FH) Zend

Mehr

SimpleOOP Opensource OOP Plugin

SimpleOOP Opensource OOP Plugin SimpleOOP Opensource OOP Plugin Einführung SimpleOOP bringt PureBasic eine einfache OOP Unterstützung ohne komplizierten Syntax, mit besonderem Wert auf einen sauberen und simplen Code. SimpleOOP ist Opensource

Mehr

Erstellen sicherer ASP.NET- Anwendungen

Erstellen sicherer ASP.NET- Anwendungen Erstellen sicherer ASP.NET- Anwendungen Authentifizierung, Autorisierung und sichere Kommunikation Auf der Orientierungsseite finden Sie einen Ausgangspunkt und eine vollständige Übersicht zum Erstellen

Mehr

Oracle Enterprise Manager Cloud Control 12c: Installation von Ralf Durben, ORACLE Deutschland B.V. & Co. KG

Oracle Enterprise Manager Cloud Control 12c: Installation von Ralf Durben, ORACLE Deutschland B.V. & Co. KG Nach Abschluß der Softwareinstallation konfigurieren Sie den Listener (mit netca) und erzeugen eine Datenbank. Der einfachste Weg zur Erzeugung der Datenbank ist die Nutzung des Database Config Assistants

Mehr

COLLECTION. Installation und Neuerungen. Märklin 00/H0 Jahresversion 2009. Version 7. Die Datenbank für Sammler

COLLECTION. Installation und Neuerungen. Märklin 00/H0 Jahresversion 2009. Version 7. Die Datenbank für Sammler Die Datenbank für Sammler COLLECTION Version 7 Installation und Neuerungen Märklin 00/H0 Jahresversion 2009 Stand: April 2009 Inhaltsverzeichnis Inhaltsverzeichnis... 2 VORWORT... 3 Hinweise für Anwender,

Mehr

MySQL Community Server 5.6 Installationsbeispiel (Ab 5.5.29)

MySQL Community Server 5.6 Installationsbeispiel (Ab 5.5.29) MySQL Community Server 5.6 Installationsbeispiel (Ab 5.5.29) Dieses Dokument beschreibt das Herunterladen der Serversoftware, die Installation und Konfiguration der Software. Bevor mit der Migration der

Mehr

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging Servlet Debugging Markus Völter, voelter@acm.org, www.voelter.de Bei der Arbeit mit Servlets kommt man recht schnell an den Punkt, an dem man Servlets vernünftig testen oder debuggen will. Mit Hilfe des

Mehr

MGE Datenanbindung in GeoMedia

MGE Datenanbindung in GeoMedia TIPPS & TRICKS MGE Datenanbindung in GeoMedia 10. September 2002 / AHU INTERGRAPH (Schweiz) AG Neumattstrasse 24, CH 8953 Dietikon Tel: 043 322 46 46 Fax: 043 322 46 10 HOTLINE: Telefon: 043 322 46 00

Mehr

Praktikum Spring MVC. 1.2. Spring integrieren In der pom.xml Einträge für Spring hinzufügen.

Praktikum Spring MVC. 1.2. Spring integrieren In der pom.xml Einträge für Spring hinzufügen. Praktikum Spring MVC Aufgabe 1 Im ersten Teil des Praktikums wird eine Test Webapplikation entwickelt, anhand derer einige Konzepte von Spring nachvollzogen werden können. Dabei handelt es sich um Spring

Mehr

Datenbanksysteme SS 2007

Datenbanksysteme SS 2007 Datenbanksysteme SS 2007 Frank Köster (Oliver Vornberger) Institut für Informatik Universität Osnabrück Kapitel 9d: Datenbankapplikationen Architektur einer Web-Applikation mit Servlets, JSPs und JavaBeans

Mehr

Einführung in git. Ben Oswald. 27. April 2014. Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen

Einführung in git. Ben Oswald. 27. April 2014. Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen Einführung in git Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen Ben Oswald 27. April 2014 Inhaltsverzeichnis 1 Einleitung 1 1.1 Was ist git?..................................... 1 1.2 Warum sollten

Mehr

Handbuch für die Erweiterbarkeit

Handbuch für die Erweiterbarkeit Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6

Mehr

WufooConnector Handbuch für Daylite 4

WufooConnector Handbuch für Daylite 4 WufooConnector Handbuch für Daylite 4 WufooConnector Handbuch für Daylite 4 1 Allgemeines 1.1 Das WufooConnector Plugin für Daylite 4 4 2 Einrichtung 2.1 2.2 2.3 Installation 6 Lizensierung 8 API Key einrichten

Mehr

Whitepaper. Produkt: combit Relationship Manager / address manager. FILESTREAM für Microsoft SQL Server aktivieren

Whitepaper. Produkt: combit Relationship Manager / address manager. FILESTREAM für Microsoft SQL Server aktivieren combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager / address manager FILESTREAM für Microsoft SQL Server aktivieren FILESTREAM für Microsoft SQL Server aktivieren

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

IAWWeb PDFManager. - Kurzanleitung -

IAWWeb PDFManager. - Kurzanleitung - IAWWeb PDFManager - Kurzanleitung - 1. Einleitung Dieses Dokument beschreibt kurz die grundlegenden Funktionen des PDFManager. Der PDF Manager dient zur Pflege des Dokumentenbestandes. Er kann über die

Mehr

Installation und Benutzung AD.NAV.ZipTools

Installation und Benutzung AD.NAV.ZipTools Installation und Benutzung AD.NAV.ZipTools Version 1.0.0.0 ALTENBRAND Datentechnik GmbH Am Gelicht 5 35279 Neustadt (Hessen) Tel: 06692/202 290 Fax: 06692/204 741 email: support@altenbrand.de Die Komponente

Mehr

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen) 1. Einführung: Über den ODBC-Zugriff können Sie bestimmte Daten aus Ihren orgamax-mandanten in anderen Anwendungen (beispielsweise Microsoft Excel oder Microsoft Access) einlesen. Dies bietet sich beispielsweise

Mehr

Handbuch: PlagScan PlugIn in Moodle 2.X und 3.X für den Administrator

Handbuch: PlagScan PlugIn in Moodle 2.X und 3.X für den Administrator Handbuch: PlagScan PlugIn in Moodle 2.X und 3.X für den Administrator Stand: November 2015 Inhaltsverzeichnis Phase 1: Registrierung Schritt 1 von 2: Nutzungsart Organisation wählen Schritt 2 von 2: Organisation

Mehr

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper) Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10 Technische Informationen (White Paper) Inhaltsverzeichnis 1. Über dieses Dokument... 3 2. Überblick... 3 3. Upgrade Verfahren... 4

Mehr

Drupal 8 manuell installieren

Drupal 8 manuell installieren Drupal 8 manuell installieren Version 1.0 Drupal 8 manuell installieren Um die aktuellste Version zu nutzen, muss Drupal manuell installiert werden. Dazu benötigst Du Zugriff auf Dein STRATO Hosting-Paket,

Mehr

Mach dich frei! ZFS. Dependency Injection. Dependency Injection und Service Locators im Einsatz

Mach dich frei! ZFS. Dependency Injection. Dependency Injection und Service Locators im Einsatz ZFS und Service Locators im Einsatz Mach dich frei! Endlich ist es da. Nach fünf Jahren Entwicklung wurde die erste stabile Version von Zend Framework 2 veröffentlicht. Auch wenn viele der Komponenten

Mehr

Python SVN-Revision 12

Python SVN-Revision 12 Python SVN-Revision 12 Uwe Ziegenhagen 7. Januar 2012 Vorwort Dieses Skript erhebt keinen Anspruch auf Vollständigkeit oder Richtigkeit. Es wird geschrieben, um mir als Gedächtnisstütze für den Umgang

Mehr

Transit/TermStar NXT

Transit/TermStar NXT Transit/TermStar NXT Einzelplatz-Installationen mit Ressourcen im Netzwerk 2015-06 Gültig ab Service Pack 6 Stand 2015-06. Dieses Dokument ist gültig ab Transit NXT Service Pack 6. Transit wird kontinuierlich

Mehr

Open Catalog Interface (OCI) Anbindung an VirtueMart

Open Catalog Interface (OCI) Anbindung an VirtueMart Ver. 2.5.1 Open Catalog Interface (OCI) Anbindung an VirtueMart Joomla 2.5 und Virtuemart 2.0.6 Ing. Karl Hirzberger www.hirzberger.at Inhaltsverzeichnis Begriffserklärung... 3 OCI für VirtueMart... 4

Mehr

Migrationsanleitung von 2.0 auf 2.1

Migrationsanleitung von 2.0 auf 2.1 Die wichtigste Neuerung von 2.0 auf 2.1 aus Sicht der Anwendungs- Migration ist die Verwendung von Maven. Mit Maven holt sich die Anwendung alle notwendigen Bibliotheken in den jeweils angegebenen Versionen

Mehr

Anleitung zur Aktualisierung

Anleitung zur Aktualisierung CONTREXX AKTUALISIERUNG 2010 COMVATION AG. Alle Rechte vorbehalten. Diese Dokumentation ist urheberrechtlich geschützt. Alle Rechte, auch die der Modifikation, der Übersetzung, des Nachdrucks und der Vervielfältigung,

Mehr

Multimedia im Netz Wintersemester 2011/12

Multimedia im Netz Wintersemester 2011/12 Multimedia im Netz Wintersemester 2011/12 Übung 01 Betreuer: Verantwortlicher Professor: Sebastian Löhmann Prof. Dr. Heinrich Hussmann Organisatorisches 26.10.2011 MMN Übung 01 2 Inhalte der Übungen Vertiefung

Mehr

So ziehen Sie Ihr Wordpress Blog zu STRATO um

So ziehen Sie Ihr Wordpress Blog zu STRATO um So ziehen Sie Ihr Wordpress Blog zu STRATO um Version 1.0 So ziehen Sie Ihr Wordpress Blog zu STRATO um Das Wordpress-Plugin Duplicator ermöglicht Ihnen, in wenigen Schritten Ihre Wordpress-Instanz umzuziehen.

Mehr

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure 7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG

Mehr

telpho10 Update 2.1.6

telpho10 Update 2.1.6 telpho10 Update 2.1.6 Datum: 31.03.2011 NEUERUNGEN... 2 STANDORTANZEIGE GESPERRTER IP ADRESSEN... 2 NEUE SEITE SYSTEM STATUS IN DER ADMINISTRATOR WEB-GUI... 2 NEUE SEITE SNOM FIRMWARE IN DER ADMINISTRATOR

Mehr

Wir benötigen: PHP >=5.x mit den Erweiterungen curl, dom, gd, hash, iconv, mycrypt, pcre, pdo, pdo_mysql und simplexml 1/2h Zeit

Wir benötigen: PHP >=5.x mit den Erweiterungen curl, dom, gd, hash, iconv, mycrypt, pcre, pdo, pdo_mysql und simplexml 1/2h Zeit Magento aufsetzen Wir benötigen: PHP >=5.x mit den Erweiterungen curl, dom, gd, hash, iconv, mycrypt, pcre, pdo, pdo_mysql und simplexml 1/2h Zeit Es gibt 2 Möglichkeiten Magento zu installieren: Wir gehen

Mehr

Subversion. Einstieg in die. Versionskontrolle

Subversion. Einstieg in die. Versionskontrolle Versionskontrolle mit Subversion Einstieg in die Versionskontrolle Dipl.Ing.(FH) K. H. Marbaise Agenda Wozu Versionskontrolle? Was leistet Versionskontrolle? Historie zu Subversion Projekt Handling Installation

Mehr

Installation des edu- sharing Plug- Ins für Moodle

Installation des edu- sharing Plug- Ins für Moodle Installation des edu- sharing Plug- Ins für Moodle [edu-sharing Team] [Dieses Dokument beschreibt die Installation und Konfiguration des edu-sharing Plug-Ins für das LMS Moodle.] edu- sharing / metaventis

Mehr

Ein kleines Tutorial zu 1 st News, dem New sletter- Skript von Stephan Altmann

Ein kleines Tutorial zu 1 st News, dem New sletter- Skript von Stephan Altmann Ein kleines Tutorial zu 1 st News, dem New sletter- Skript von Stephan Altmann 1 Einführung 2 Voraussetzungen 3 I nstallation allgemein 4 I nstallation als Plugin für AT Contenator 5 Funktionalitäten 6

Mehr

Version 1.0. Contrexx-Installation unter Windows 2003 und IIS 6. Das Content Management System für Ihren Erfolg.

Version 1.0. Contrexx-Installation unter Windows 2003 und IIS 6. Das Content Management System für Ihren Erfolg. Version 1.0 Contrexx-Installation unter Windows 2003 und IIS 6 Das Content Management System für Ihren Erfolg. Inhaltsverzeichnis 1. INSTALLATION VON MYSQL UND PHP UNTER WINDOWS 2003... 3 1.1 INSTALLATION

Mehr

Einführung in die Cross-Plattform Entwicklung Das Intel App Framework

Einführung in die Cross-Plattform Entwicklung Das Intel App Framework Einführung in die Cross-Plattform Entwicklung Das Intel App Framework Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel App Framework vom Intel XDK vertraut. Es wird Schritt für Schritt

Mehr

Composer für Contao Entwickler

Composer für Contao Entwickler für Contao Entwickler Christian Schiffler Contao Konferenz 2014 16. Mai 2014 1 / 32 C-C-A Power - Xtra Wers n das? Christian Xtra Schiffler Seit 2004 selbständig Seit 2008 bei TYPOlight Contao Hauptentwickler

Mehr

Inhaltsverzeichnis. 2.2 Grundlagen der UML... 41. 2.3 Zusammenfassung... 53

Inhaltsverzeichnis. 2.2 Grundlagen der UML... 41. 2.3 Zusammenfassung... 53 Vorwort......................................................... 13 1 Vorbereitungen.................................................. 17 1.1 JDK-Installation unter Windows................................

Mehr

Installation/Update und Konfiguration des Renderservice (v1.7.0)

Installation/Update und Konfiguration des Renderservice (v1.7.0) Installation/Update und Konfiguration des Renderservice (v1.7.0) [edu- sharing Team] [Dieses Dokument beschreibt die Installation und Konfiguration des Renderservice.] edu- sharing / metaventis GmbH Postfach

Mehr

juliteccrm Dokumentation

juliteccrm Dokumentation Customer Relationship Management für kleine und mittelständische Unternehmen juliteccrm Dokumentation 2012, julitec GmbH Page 1 of 12 julitec GmbH Flößaustraße 22 a 90763 Fürth Telefon: +49 911 979070-0

Mehr

Bedienungsanleitung POSTPAY Modul für Modified ecommerce Shopsoftware

Bedienungsanleitung POSTPAY Modul für Modified ecommerce Shopsoftware Bedienungsanleitung POSTPAY Modul für Modified ecommerce Shopsoftware DHL PAKET POSTPAY.de Stand: 10. Juli 2013; v1.11 Erstellt von POSTPAY.de Seite 1 von 15 DHL PAKET Inhaltsverzeichnis 1 Einführung...

Mehr

Dokumentation zur Anlage eines JDBC Senders

Dokumentation zur Anlage eines JDBC Senders Dokumentation zur Anlage eines JDBC Senders Mithilfe des JDBC Senders ist es möglich auf eine Datenbank zuzugreifen und mit reiner Query Datensätze auszulesen. Diese können anschließend beispielsweise

Mehr

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an? WEBAPPLIKATIONEN MIT PHP Wo gibt es Hilfe? Wie fang ich an? Tools Webapplikationen bestehen aus Textdateien Lassen sich in Texteditoren schreiben Alternativen: Eclipse (PDT) Netbeans (Dynamic Languages)

Mehr

Das Interceptor Muster

Das Interceptor Muster Das Interceptor Muster Implementierung des Interceptor Musters basierend auf OSGi and Friends Benjamin Friedrich Hochschule für Technik und Wirtschaft des Saarlandes Praktische Informatik - Entwurfsmuster

Mehr

VR-Pay. Installation & Beschreibung. 1 VR-Pay. Stand: 16.07.2014, Modulversion: 2.1.0.x Bearbeiter: TD

VR-Pay. Installation & Beschreibung. 1 VR-Pay. Stand: 16.07.2014, Modulversion: 2.1.0.x Bearbeiter: TD 1 VR-Pay VR-Pay Installation & Beschreibung Stand: 16.07.2014, Modulversion: 2.1.0.x Bearbeiter: TD aplido GmbH, Geschäftsführer: Lutz Teubert, Markus Pohl, Chamer Strasse 4, 93497 Willmering Telefon:

Mehr

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful

Mehr

Multisite Setup. mit Nutzung von Subversion. Drupal Voice Chat 21.10.2008 mcgo@drupalist.de

Multisite Setup. mit Nutzung von Subversion. Drupal Voice Chat 21.10.2008 mcgo@drupalist.de Multisite Setup mit Nutzung von Subversion Drupal Voice Chat 21.10.2008 mcgo@drupalist.de 1 Voraussetzungen Server (dediziert oder virtuell) Zugriff auf Terminal (z.b. per ssh) Webserver / Datenbankserver

Mehr

Clemens Gull. Joomlal-Extensions. mit PHP entwickeln. Mit 322 Abbildungen

Clemens Gull. Joomlal-Extensions. mit PHP entwickeln. Mit 322 Abbildungen Clemens Gull Joomlal-Extensions mit PHP entwickeln Mit 322 Abbildungen 11 Inhaltsverzeichnis 1 Einführung 15 1.1 Wasistjoomla? 15 1.1.1 Content-Management-System 15 1.1.2 Open-Source-Software 16 1.2 Der

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

opsi-401-releasenotes-upgrade-manual

opsi-401-releasenotes-upgrade-manual opsi-401-releasenotes-upgrade-manual Stand: 01.05.2011 uib gmbh Bonifaziusplatz 1b 55118 Mainz Tel.:+49 6131 275610 www.uib.de info@uib.de i Inhaltsverzeichnis 1 Einführung 1 2 Neuerungen in opsi 4.0.1

Mehr

git & git-flow Jens Sandmann 14.12.2013 Warpzone Münster e.v. Jens Sandmann (WZ) git & git-flow 14.12.2013 1 / 31

git & git-flow Jens Sandmann 14.12.2013 Warpzone Münster e.v. Jens Sandmann (WZ) git & git-flow 14.12.2013 1 / 31 git & git-flow Jens Sandmann Warpzone Münster e.v. 14.12.2013 Jens Sandmann (WZ) git & git-flow 14.12.2013 1 / 31 Überblick 1 git Versionskontrolle Allgemein VCS mit git 2 git flow 3 git nutzen 4 Anhang

Mehr

Bedienungsanleitung das POSTPAY Modul für Gambio GX2

Bedienungsanleitung das POSTPAY Modul für Gambio GX2 Bedienungsanleitung das POSTPAY Modul für Gambio GX2 DHL PAKET POSTPAY.de Stand: 11. Juli 2013; v1.01 Erstellt von POSTPAY.de Seite 1 von 15 DHL PAKET Inhaltsverzeichnis 1 Einführung... 3 1.1 Technischer

Mehr

Ora Education GmbH. Lehrgang: Oracle Application Server 10g R2: Administration II

Ora Education GmbH. Lehrgang: Oracle Application Server 10g R2: Administration II Ora Education GmbH www.oraeducation.de info@oraeducation.de Lehrgang: Oracle Application Server 10g R2: Administration II Beschreibung: Die Teilnehmer lernen verschiedene Topologien des Oracle Application

Mehr

Guideline. Integration von Google Analytics. in advertzoom

Guideline. Integration von Google Analytics. in advertzoom Guideline Integration von Google Analytics in advertzoom advertzoom GmbH advertzoom GmbH Stand November 2012 Seite [1] Inhalt 1 KPI aus Google Analytics übernehmen... 3 2 Grundlegende Funktionsweise...

Mehr

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich 13 OOP MIT DELPHI Delphi war früher "Object Pascal". Dieser Name impliziert eine Funktionalität, welche in der Welt der Programmierung nicht mehr wegzudenken ist: die objektorientierte Programmierung,

Mehr

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum Starthilfe für C# Inhaltsverzeichnis Allgemeines... 2 Bezugsquellen... 2 SharpDevelop... 2.NET Runtime... 2.NET SDK... 2 Installation... 2 Reihenfolge... 2 Vorschlag für eine Ordnerstruktur... 3 Arbeit

Mehr

Multivariate Tests mit Google Analytics

Multivariate Tests mit Google Analytics Table of Contents 1. Einleitung 2. Ziele festlegen 3. Einrichtung eines Multivariate Tests in Google Analytics 4. Das JavaScript 5. Die Auswertung der Ergebnisse Multivariate Tests mit Google Analytics

Mehr

Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK

Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel XDK und dem Zugriff auf Web Services vertraut. Der Web Service

Mehr

Erstellen sicherer ASP.NET- Anwendungen

Erstellen sicherer ASP.NET- Anwendungen Erstellen sicherer ASP.NET- Anwendungen Authentifizierung, Autorisierung und sichere Kommunikation Auf der Orientierungsseite finden Sie einen Ausgangspunkt und eine vollständige Übersicht zum Erstellen

Mehr

Zeiterfassung-Konnektor Handbuch

Zeiterfassung-Konnektor Handbuch Zeiterfassung-Konnektor Handbuch Inhalt In diesem Handbuch werden Sie den Konnektor kennen sowie verstehen lernen. Es wird beschrieben wie Sie den Konnektor einstellen und wie das System funktioniert,

Mehr

McAfee Security-as-a-Service -

McAfee Security-as-a-Service - Handbuch mit Lösungen zur Fehlerbehebung McAfee Security-as-a-Service - Zur Verwendung mit der epolicy Orchestrator 4.6.0-Software Dieses Handbuch bietet zusätzliche Informationen zur Installation und

Mehr

Apps für ios entwickeln

Apps für ios entwickeln Apps für ios entwickeln Am Beispiel einer realen App Bearbeitet von Jan Tittel, Jochen Baumann 1. Auflage 2013. Buch. XII, 222 S. ISBN 978 3 446 43192 8 Format (B x L): 17,9 x 24,7 cm Gewicht: 589 g Weitere

Mehr

UC4 Rapid Automation Handbuch für den Hyper-V Agent

UC4 Rapid Automation Handbuch für den Hyper-V Agent UC4 Rapid Automation Handbuch für den Hyper-V Agent UC4 Software, Inc. UC4: Rapid Automation Handbuch für den Hyper-V Agent Von Jack Ireton Dokumentennummer: RAHV-062011-de *** Copyright UC4 und das UC4-Logo

Mehr

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe... php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...7 3.Zugriff auf mysql Daten...11 Verteilte Systeme: php.sxw Prof.

Mehr

Das Model View Controller (MVC) Konzept

Das Model View Controller (MVC) Konzept Das Model View Controller (MVC) Konzept Ziel: Erhöhung der Flexibilität und Reduktion der Komplexität von GUI-Programmen durch Standard- Struktur (MVC-Pattern). Geht zurück auf Smalltalk. View 1 View 2

Mehr

Ogre Einführung Teil 1

Ogre Einführung Teil 1 Inhalt -Einleitung -Installieren und Einrichten von Ogre -Die erste Anwendung Ogre Einführung Teil 1 Einleitung Eine 3D Engine ist eine sehr komplexe Software und besteht aus mehreren tausend Zeilen Programmcode.

Mehr

Whitepaper 428-01 VCI - Virtual CAN Interface Einbindung in LabWindows/CVI

Whitepaper 428-01 VCI - Virtual CAN Interface Einbindung in LabWindows/CVI Whitepaper 428-01 VCI - Virtual CAN Interface Einbindung in LabWindows/CVI The expert for industrial and automotive communication IXXAT Hauptsitz Geschäftsbereich USA IXXAT Automation GmbH IXXAT Inc. Leibnizstr.

Mehr

DocuWare unter Windows 7

DocuWare unter Windows 7 DocuWare unter Windows 7 DocuWare läuft unter dem neuesten Microsoft-Betriebssystem Windows 7 problemlos. Es gibt jedoch einige Besonderheiten bei der Installation und Verwendung von DocuWare, die Sie

Mehr

Oracle Enterprise Scheduler (ESS) Unleashed Carsten Wiesbaum esentri AG Ettlingen Schlüsselworte Einleitung Oracle Enterprise Scheduler (ESS)

Oracle Enterprise Scheduler (ESS) Unleashed Carsten Wiesbaum esentri AG Ettlingen Schlüsselworte Einleitung Oracle Enterprise Scheduler (ESS) Oracle Enterprise Scheduler (ESS) Unleashed Carsten Wiesbaum esentri AG Ettlingen Schlüsselworte Automatisierung, Betrieb, Middleware Einleitung Der Oracle Fusion Middleware Stack beinhaltet eine leistungsstarke

Mehr

Konzept eines Datenbankprototypen. 30.06.2003 Folie 1 Daniel Gander / Gerhard Schrotter

Konzept eines Datenbankprototypen. 30.06.2003 Folie 1 Daniel Gander / Gerhard Schrotter Konzept eines Datenbankprototypen 30.06.2003 Folie 1 Daniel Gander / Gerhard Schrotter Inhalt (1) Projektvorstellung & Projektzeitplan Softwarekomponenten Detailierte Beschreibung der System Bausteine

Mehr

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

1. Einführung... 1 2. Eigenschaften... 2 2.1. Einsatzszenarien... 2 2.1.1. Externes Benutzer-Management... 2 2.1.2. Synchronisation von Konten,

1. Einführung... 1 2. Eigenschaften... 2 2.1. Einsatzszenarien... 2 2.1.1. Externes Benutzer-Management... 2 2.1.2. Synchronisation von Konten, OUTDOOR webservices 1. Einführung... 1 2. Eigenschaften... 2 2.1. Einsatzszenarien... 2 2.1.1. Externes Benutzer-Management... 2 2.1.2. Synchronisation von Konten, Kostenstellen oder Kostenträgern... 2

Mehr

Rails Ruby on Rails Ajax on Rails. Clemens H. Cap http://wwwiuk.informatik.uni-rostock.de http://www.internet-prof.de

Rails Ruby on Rails Ajax on Rails. Clemens H. Cap http://wwwiuk.informatik.uni-rostock.de http://www.internet-prof.de Rails Ruby on Rails Ajax on Rails Who is who? Rails Ziel: Framework für Web (2.0) Anwungen Beschleunigung der Entwicklung Konzept des Agilen Programmierens Ruby Interpretierte Sprache Rails Integrationen

Mehr

Installation und Inbetriebnahme von ADOplusWeb

Installation und Inbetriebnahme von ADOplusWeb Installation und Inbetriebnahme von ADOplusWeb Übersicht Mit ADOplusWeb können sie nun wesentliche Teile der ADO++ Administration auch über einen Webbrowser ausführen. ADOplusWeb nutzt AJAX-Webprogrammierungstechniken

Mehr

Titel. System Center Configuration Manager 2012 R2 Anleitung zur Installation

Titel. System Center Configuration Manager 2012 R2 Anleitung zur Installation Autor: Thomas Hanrath Microsoft Certified Trainer Titel System Center Configuration Manager 2012 R2 Anleitung zur Installation Eine beispielhafte Installationsanleitung zur Verwendung im Testlab Quelle:

Mehr

Web-Anwendungsentwicklung mit dem Delivery Server

Web-Anwendungsentwicklung mit dem Delivery Server Web-Anwendungsentwicklung mit dem Delivery Server Java-Framework auf Basis der Open API Bernfried Howe, Webertise Consulting GmbH WEBertise Consulting Dipl. Informatiker (Wirtschaftsinformatik) 2001-2010

Mehr

Dokumentation. juris Autologon-Tool. Version 3.1

Dokumentation. juris Autologon-Tool. Version 3.1 Dokumentation juris Autologon-Tool Version 3.1 Inhaltsverzeichnis: 1. Allgemeines... 3 2. Installation Einzelplatz... 3 3. Installation Netzwerk... 3 4. Konfiguration Netzwerk... 3 4.1 Die Autologon.ini...

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

AixVerein 2.0 - Anleitung zur Einrichtung des

AixVerein 2.0 - Anleitung zur Einrichtung des Seite 1/6 AixVerein 2.0 - Anleitung zur Einrichtung des Datenbank-Servers und der Dokumentenablage Bei der vorliegenden Anwendung handelt es sich um eine Client-Server-Anwendung, d.h. die Software wird

Mehr