Mais conteúdo relacionado Semelhante a IPC2017SE - Zend\Expressive Workshop (20) IPC2017SE - Zend\Expressive Workshop2. Ralf EggertRalf Eggert
CEO Travello GmbH, PHP Entwickler,CEO Travello GmbH, PHP Entwickler,
Zend Framework Trainer, Autor & Coach sowieZend Framework Trainer, Autor & Coach sowie
Amazon Alexa Skill EntwicklerAmazon Alexa Skill Entwickler
4. Ralf EggertRalf Eggert 44 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
Agenda
●
Teil 1: Einführung in ZendExpressive
●
Teil 2: Installation & Aufbau der Anwendung
●
Teil 3: Anwendungsmodule
●
Teil 4: Middleware-Aktionen
●
Teil 5: Datenbankanbindung
●
Teil 6: Formulare und Formularverarbeitung
●
Teil 7: Zusammenfassung
10. Ralf EggertRalf Eggert 1010 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
Klassischer HTTP Request
CLIENT WEBSERVER
HTTP
REQUEST
HTTP
RESPONSE
11. Ralf EggertRalf Eggert 1111 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
Middleware-Request
HTTP
Request
HTTP
Response
Middleware
12. Ralf EggertRalf Eggert 1212 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
Middleware-Pipeline
HTTP
Request
HTTP
Response
Routing
Middleware
Authorization
Middleware
Dispatching
Middleware
13. Ralf EggertRalf Eggert 1313 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
Action-Middleware
HTTP
Request
HTTP
Response
Routing
Middleware
Action
Middleware
Authorization
Middleware
Dispatching
Middleware
14. Ralf EggertRalf Eggert 1414 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
Zend Framework Komponenten
ZEND
DIACTOROS
ZENDSTRATIGILITY
ZENDEXPRESSIVE
PSR-7
MIDDLEWARE / PSR-15
MIDDLEWARE
APPLICATIONS
15. Ralf EggertRalf Eggert 1515 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
ZendExpressive Komponenten
Router DI Container Template Renderer Error Handler
Aura.Router
FastRoute
ZendRouter
Weitere Router
Aura.DI
Pimple-interop
Zend
ServiceManager
Weitere
DI Container
Plates
Twig
ZendView
Weitere
Template-Engine
Whoops
Weiterer
Error-Handler
17. Ralf EggertRalf Eggert 1717 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
ZendExpressive installieren I
18. Ralf EggertRalf Eggert 1818 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
ZendExpressive installieren II
19. Ralf EggertRalf Eggert 1919 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
ZendExpressive installieren III
20. Ralf EggertRalf Eggert 2020 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
Workshop Repository installieren
$ cd /home/devhost/
$ git clone https://github.com/RalfEggert/ipc2017-expressive
$ cd ipc2017-expressive/
$ sudo chmod 777 -R data/
$ composer install
$ composer development-enable
$ composer serve
21. Ralf EggertRalf Eggert 2121 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
Workshop Expressive Anwendung
22. Ralf EggertRalf Eggert 2222 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
Virtual Host für Apache 2
<VirtualHost 127.0.0.1>
ServerName ipc2017.expressive
DocumentRoot /home/devhost/konferenzen/ipc2017-expressive/public/
AccessFileName .htaccess
SetEnv APPLICATION_ENV development
<Directory /home/devhost/konferenzen/ipc2017-expressive/public/>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
24. Ralf EggertRalf Eggert 2424 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
Aufbau der Anwendung
bin
clear-config-cache.php
config
autoload
dependencies.global.php
dependencies.local.php.dist
local.php.dist
router.global.php
templates.global.php
zend-expressive.global.php
config.php
container.php
development.config.php.dist
pipeline.php
routes.php
data
cache
db
module
App
public
.htaccess
db-check.php
index.php
test
AppTest
...
vendor
bin
composer
zendframework
...
autoload.php
composer.json
composer.lock
25. Ralf EggertRalf Eggert 2525 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
Aufbau des App Moduls
module
App
src
Action
HomePageAction.php
HomePageFactory.php
PingAction.php
ConfigProvider.php
templates
app
home-page.phtml
error
404.phtml
error.phtml
layout
default.phtml
27. Ralf EggertRalf Eggert 2727 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
User Stories Kundenverwaltung
Story #0002
As an admin
I want to show a single customers
So that I can see all data of a
registered customer
Story #0001
As an admin
I want to list all customers
So that I have an overview of all
registered customers
Story #0003
As an admin
I want to create a new customer
So that I can add customers
without registration
Story #0005
As an admin
I want to delete a customer
So that I can remove the customer
data from the database
Story #0004
As an admin
I want to update a customer
So that I can change the details of
a customer in the database
Story #0006
As a -
I want -
So that -
28. Ralf EggertRalf Eggert 2828 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
Schichtenmodell für Anwendung
Repository DatenbankAction
Presentation Layer Domain Layer Infrastructure LayerApplication Layer
Formular
29. Ralf EggertRalf Eggert 2929 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
Modularität I
Modul Customer
Actions
Konfiguration
Templates
Formulare
Repositories
Entitäten
Storages
Services
Routing
Input-Filter
View-Helper
Paginierung
Navigation
30. Ralf EggertRalf Eggert 3030 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
Modularität II
Modul CustomerApp Modul CustomerDomain
Action
Konfiguration
Templates
Formulare
Konfiguration
Repository
Entitäten
Storage
Services
Routing
Input-Filter
View-Helper
Paginierung
Navigation
31. Ralf EggertRalf Eggert 3131 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
Modularität III
Modul
Customer
MwApp
Modul
Customer
Domain
Modul
Customer
Presentation
Modul
Customer
Console
Modul
Customer
Rest
Modul
Customer
MvcApp
32. Ralf EggertRalf Eggert 3232 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
Modularität IV
Modul
Customer
MwApp
Modul
Customer
Domain
Modul
Customer
Presentation
Modul
Customer
Console
Modul
Customer
Rest
Modul
Customer
MvcApp
37. Ralf EggertRalf Eggert 3737 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
Einfacher Domain-Layer
RepositoryAktion
Domain Layer Infrastructure LayerApplication Layer
PHP Array
Factory
40. Ralf EggertRalf Eggert 4040 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
Routing
Middleware-Aktionen
Aktion
Application LayerPresentation Layer
Template
Factory Repository
Domain Layer
49. Ralf EggertRalf Eggert 4949 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
Erweiterter Domain-Layer
RepositoryAktion
Domain Layer Infrastructure LayerApplication Layer
Factory
Storage
Factory
Table Gateway
50. Ralf EggertRalf Eggert 5050 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
ZendDb installieren
51. Ralf EggertRalf Eggert 5151 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
Datenbank Dump einspielen
57. Ralf EggertRalf Eggert 5757 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
Routing
Middleware-Aktion
Aktion
Application LayerPresentation Layer
Template
Factory Repository
Domain Layer
Formular
58. Ralf EggertRalf Eggert 5858 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
ZendForm installieren
61. Ralf EggertRalf Eggert 6161 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
Formularverarbeitung
Form
Aktion
Application LayerPresentation Layer
Template
Repository
Domain Layer
Formular
Handle
Aktion
64. Ralf EggertRalf Eggert 6464 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
Eingabevalidierung
Form
Aktion
Application LayerPresentation Layer
Template
Repository
Domain Layer
Formular
Handle
Aktion
Input Filter
68. Ralf EggertRalf Eggert 6868 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
Implementierte Bestandteile
Module
Konfiguration
Formulare
Repository
Storage
Routing
Actions
Templates Input
Filter
70. Ralf EggertRalf Eggert 7070 vonvon 7272
ZendExpressive WorkshopZendExpressive Workshop
Fehlende Bestandteile (Auswahl)
Entitäten
Hydratoren
Middleware
Pipeline
Authenti-
fizierung
Autori-
sierung
View
Helper
Filter
Validator Externe
Packages