Tanz!
Upcoming SlideShare
Loading in...5
×
 

Tanz!

on

  • 404 views

Komm und tanz! mit Dancer, es ist einfach zu erlernen, effizient zu programmieren und trotzdem ausdrucksstark genug für mittlere und größere Projekte. ...

Komm und tanz! mit Dancer, es ist einfach zu erlernen, effizient zu programmieren und trotzdem ausdrucksstark genug für mittlere und größere Projekte.

In unserer Tanzschule üben wir die wichtigsten Elemente (Routes, Plugins, Templates, Sessions, Konfiguration).

Die abschließende Tanzkür zeigt exemplarisch die Einrichtung einer Produktionsumgebung mit Perlbal, Starman und einem Startskript für die Dancer-Anwendung.

Statistics

Views

Total Views
404
Views on SlideShare
404
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Tanz! Tanz! Presentation Transcript

  • Hintergrund und Projekte Routes, Filter und Hooks Plugins Deployment Ausblick Tanz! Stefan Hornburg (Racke) racke@linuxia.de13. Deutscher Perl-Workshop, Frankfurt, 21. Oktober 2011 racke Tanz!
  • Hintergrund und Projekte Tanzflur Routes, Filter und Hooks Dropbox Plugins LDAP Benutzerverwaltung Deployment Procurement für American Spaces AusblickTanzflur einfach ausdrucksstark effektiv minimale Abhängigkeiten racke Tanz!
  • Hintergrund und Projekte Tanzflur Routes, Filter und Hooks Dropbox Plugins LDAP Benutzerverwaltung Deployment Procurement für American Spaces AusblickProjekte Dropbox-Klon LDAP Benutzerverwaltung Procurement für American Corners racke Tanz!
  • Hintergrund und Projekte Tanzflur Routes, Filter und Hooks Dropbox Plugins LDAP Benutzerverwaltung Deployment Procurement für American Spaces AusblickDropbox Autoindex Upload/Download Benutzerverwaltung racke Tanz!
  • Hintergrund und Projekte Tanzflur Routes, Filter und Hooks Dropbox Plugins LDAP Benutzerverwaltung Deployment Procurement für American Spaces AusblickLDAP Benutzerverwaltung LDAP-Verzeichnis Benutzerverwaltung Adminstrator Referrer Patron racke Tanz!
  • Hintergrund und Projekte Tanzflur Routes, Filter und Hooks Dropbox Plugins LDAP Benutzerverwaltung Deployment Procurement für American Spaces AusblickProcurement für American Spaces Warenkorb/Wunschliste Genehmigungsprozesse LibraryThing ISBNDB https://vsc.state.gov/ racke Tanz!
  • Hintergrund und Projekte Routes, Filter und Hooks Routes Plugins Filters Deployment Hooks AusblickRezept für Routes # ! / u s r / b i n / env p e r l use Dancer ; g e t ’ / ’ => sub { template ’ index ’ ; }; dance ; racke Tanz!
  • Hintergrund und Projekte Routes, Filter und Hooks Routes Plugins Filters Deployment Hooks AusblickRoutes String String mit benannten Parametern String mit Wildcards Splat Megasplat Regulärer Ausdruck Regulärer Ausdruck mit Captures racke Tanz!
  • Hintergrund und Projekte Routes, Filter und Hooks Routes Plugins Filters Deployment Hooks AusblickSplat g e t ’ / images / covers / ∗ . j p g ’ => sub { my ( $ i s b n ) = s p l a t ; i f (− f " p u b l i c / images / covers / $ i s b n . j p g " ) { r e t u r n s e n d _ f i l e " images / covers / $ i s b n . j p g " ; } s t a t u s ’ not_found ’ ; f o r w a r d 404; } racke Tanz!
  • Hintergrund und Projekte Routes, Filter und Hooks Routes Plugins Filters Deployment Hooks AusblickMegasplat h t t p s : / / vsc . s t a t e . gov / l o s t p w d / b i z @ l i n u x i a . de / e642bd543b9907bd2c06aa4 g e t ’ / l o s t p w d / ∗∗ ’ => sub { my ( $email , $hash ) = s p l a t ; form −> f i l l ( e m a i l => $email , hash => $hash ) ; t e m p l a t e ( ’ l o s t p w d _ c o n f i r m ’ , form => $form ) ; } racke Tanz!
  • Hintergrund und Projekte Routes, Filter und Hooks Routes Plugins Filters Deployment Hooks AusblickCaptures h t t p s : / / dropbox . n i t e . s i / ~ racke / t a l k s / dancer−beamer . p d f any q r { ^ / ~ ( ? < user > [ ^ / ] + ) / ( ? < f i l e > . ∗ ? ) / ? $ } => sub { my ( $capts , $user , $ f i l e ) ; $capts = c a p t u r e s ; $ f i l e = $capts −>{ f i l e } ; $user = $capts −>{user } ; ... }; racke Tanz!
  • Hintergrund und Projekte Routes, Filter und Hooks Routes Plugins Filters Deployment Hooks AusblickPräfix prefix ’ / wiki ’ ; g e t q r { / ? ( ? < page > . ∗ ) } => sub { my $capts = c a p t u r e s ; t e m p l a t e ’ w i k i ’ , { c o n t e n t => w i k i ( $capts −>{page } ) , page => $capts −>{page } } ; }; racke Tanz!
  • Hintergrund und Projekte Routes, Filter und Hooks Routes Plugins Filters Deployment Hooks AusblickFilters b e f o r e sub { }; a f t e r sub { }; racke Tanz!
  • Hintergrund und Projekte Routes, Filter und Hooks Routes Plugins Filters Deployment Hooks Ausblickbefore b e f o r e sub { unless ( s e s s i o n ( ’ user ’ ) | | request −>path eq ’ / l o g i n ’ | | request −>path =~ m%^/ l o s t p w d% ) { redirect ’ / login ’ ; } }; racke Tanz!
  • Hintergrund und Projekte Routes, Filter und Hooks Routes Plugins Filters Deployment Hooks AusblickHooks hook b e f o r e _ t e m p l a t e _ r e n d e r => sub { my $tokens = s h i f t ; my $menu ; i f ( s e s s i o n ( ’ user ’ ) ) { $menu = [ { name => ’ Logout ’ , u r l => ’ / l o g o u t ’ } ] ; } else { $menu = [ { name => ’ Login ’ , u r l => ’ / l o g i n ’ } ] ; } $tokens −>{menu } = $menu ; }; racke Tanz!
  • Hintergrund und Projekte Routes, Filter und Hooks Plugins auf CPAN Plugins Writing Plugins Deployment Plugins und Hooks AusblickPlugins Funktionalität Schlüsselwort Route Konfiguration racke Tanz!
  • Hintergrund und Projekte Routes, Filter und Hooks Plugins auf CPAN Plugins Writing Plugins Deployment Plugins und Hooks AusblickPlugins auf CPAN Dancer::Plugin::Database database Dancer::Plugin::Email email Dancer::Plugin::Ajax ajax racke Tanz!
  • Hintergrund und Projekte Routes, Filter und Hooks Plugins auf CPAN Plugins Writing Plugins Deployment Plugins und Hooks AusblickDancer::Plugin::LibraryThing Konfiguration plugins : LibraryThing : api_key : d231aa37c9b4f5d304a60a3d0ad1dad4 d i r e c t o r y : p u b l i c / images / covers size : large racke Tanz!
  • Hintergrund und Projekte Routes, Filter und Hooks Plugins auf CPAN Plugins Writing Plugins Deployment Plugins und Hooks AusblickDancer::Plugin::LibraryThing Code use Dancer : : P l u g i n : : L i b r a r y T h i n g ; g e t ’ / images / covers / ∗ . j p g ’ => sub { my ( $isbn , @ret ) ; $isbn = s p l a t ; unless (− f " p u b l i c / images / covers / $ i s b n . j p g " ) { @ret = l i b r a r y t h i n g _ c o v e r ( $ i s b n ) ; i f ( @ret < 3 ) { s t a t u s ’ not_found ’ ; f o r w a r d 404; } } r e t u r n s e n d _ f i l e " images / covers / $ i s b n . j p g " ; } racke Tanz!
  • Hintergrund und Projekte Routes, Filter und Hooks Plugins auf CPAN Plugins Writing Plugins Deployment Plugins und Hooks AusblickWriting Plugins register register_plugin plugin_setting racke Tanz!
  • Hintergrund und Projekte Routes, Filter und Hooks Plugins auf CPAN Plugins Writing Plugins Deployment Plugins und Hooks AusblickPlugins und Hooks Dancer : : F a c t o r y : : Hook −>i n s t a n c e −>i n s t a l l _ h o o k s ( ’ b e f o r e _ c a r t _ a d d ’ ) ; racke Tanz!
  • Sessions Hintergrund und Projekte Logs Routes, Filter und Hooks Szenarien Plugins Starman Deployment Perlbal Ausblick SkriptsSessions Engine session: Storable Verzeichnis session_dir: /var/run/dancer-sessions Ablauffrist session_expires: 8 hours racke Tanz!
  • Sessions Hintergrund und Projekte Logs Routes, Filter und Hooks Szenarien Plugins Starman Deployment Perlbal Ausblick SkriptsLogs Engine logger: file Verzeichnis log_path: log Format logger_format: "%t [%P] %L @%D> %m in %f l. %l" racke Tanz!
  • Sessions Hintergrund und Projekte Logs Routes, Filter und Hooks Szenarien Plugins Starman Deployment Perlbal Ausblick SkriptsSzenarien Standalone ./bin/app.pl CGI, FastCGI plackup Starman Twiggy Corona Reverse Proxy racke Tanz!
  • Sessions Hintergrund und Projekte Logs Routes, Filter und Hooks Szenarien Plugins Starman Deployment Perlbal Ausblick SkriptsSzenarien: Reverse Proxy Apache nginx Perlbal racke Tanz!
  • Sessions Hintergrund und Projekte Logs Routes, Filter und Hooks Szenarien Plugins Starman Deployment Perlbal Ausblick SkriptsStarman plackup −E p r o d u c t i o n −s Starman −−workers =5 −−p i d / home / racke / Dropbox / run / Dropbox . p i d −p 5000 −a b i n / app . p l −D racke Tanz!
  • Sessions Hintergrund und Projekte Logs Routes, Filter und Hooks Szenarien Plugins Starman Deployment Perlbal Ausblick SkriptsPerlbal LOAD vpaths XS enable headers racke Tanz!
  • Sessions Hintergrund und Projekte Logs Routes, Filter und Hooks Szenarien Plugins Starman Deployment Perlbal Ausblick SkriptsPerlbal: Pools CREATE POOL prod_starman_dosqua POOL prod_starman_dosqua ADD 1 2 7 . 0 . 0 . 1 : 5 0 0 0 CREATE POOL prod_starman_vsc POOL prod_starman_vsc ADD 1 2 7 . 0 . 0 . 1 : 5 0 0 1 racke Tanz!
  • Sessions Hintergrund und Projekte Logs Routes, Filter und Hooks Szenarien Plugins Starman Deployment Perlbal Ausblick SkriptsPerlbal: Reverse Proxy CREATE SERVICE vsc_prod SET r o l e = reverse_proxy SET p o o l = prod_starman_vsc SET b u f f e r _ u p l o a d s = on ENABLE vsc_prod racke Tanz!
  • Sessions Hintergrund und Projekte Logs Routes, Filter und Hooks Szenarien Plugins Starman Deployment Perlbal Ausblick SkriptsPerlbal: Selector CREATE SERVICE v s c _ s e l e c t o r SET l i s t e n = 86.59.13.238:80 SET r o l e = selector SET p l u g i n s = vpaths VPATH . ∗ = vsc_prod ENABLE v s c _ s e l e c t o r racke Tanz!
  • Sessions Hintergrund und Projekte Logs Routes, Filter und Hooks Szenarien Plugins Starman Deployment Perlbal Ausblick SkriptsPerlbal: SSL Selector CREATE SERVICE v s c _ s s l _ s e l e c t o r SET l i s t e n = 86.59.13.238:443 SET r o l e = selector SET p l u g i n s = vpaths SET e n a b l e _ s s l = on SET s s l _ k e y _ f i l e = / e t c / s s l / p r i v a t e / vsc . s t a t e . gov . key SET s s l _ c e r t _ f i l e = / e t c / s s l / c e r t s / vsc . s t a t e . gov . pem VPATH . ∗ = vsc_prod ENABLE v s c _ s s l _ s e l e c t o r HEADER v s c _ s s l _ s e l e c t o r INSERT X−Forwarded−P r o t o : HTTPS racke Tanz!
  • Sessions Hintergrund und Projekte Logs Routes, Filter und Hooks Szenarien Plugins Starman Deployment Perlbal Ausblick SkriptsSkripts use Dancer ’ : s c r i p t ’ ; s e t l o g g e r => ’ console ’ ; s e t l o g g e r _ f o r m a t => ’% ’ ; m racke Tanz!
  • Hintergrund und Projekte Routes, Filter und Hooks Dancer 2 Plugins Community Deployment AusblickDancer2 keine globalen Variablen 100% OO Backend (Moo) Scoping for Sub-Applikationen überarbeitete Architektur racke Tanz!
  • Hintergrund und Projekte Routes, Filter und Hooks Dancer 2 Plugins Community Deployment AusblickCommunity Web: http://perldancer.org/ Github: git://github.com/sukria/Dancer.git IRC: #dancer @ irc.perl.org Mitarbeit: Dancer::Development racke Tanz!
  • Hintergrund und Projekte Routes, Filter und Hooks Dancer 2 Plugins Community Deployment AusblickThe End Slides, Handout, Skripte: http://www.linuxia.de/talks/pws2011/ racke Tanz!