0
Hintergrund und Projekte           Routes, Filter und Hooks                             Plugins                        Dep...
Hintergrund und Projekte                                              Tanzflur                  Routes, Filter und Hooks   ...
Hintergrund und Projekte                                               Tanzflur                   Routes, Filter und Hooks ...
Hintergrund und Projekte                                              Tanzflur                  Routes, Filter und Hooks   ...
Hintergrund und Projekte                                              Tanzflur                  Routes, Filter und Hooks   ...
Hintergrund und Projekte                                                 Tanzflur                     Routes, Filter und Ho...
Hintergrund und Projekte                              Routes, Filter und Hooks    Routes                                  ...
Hintergrund und Projekte                      Routes, Filter und Hooks    Routes                                        Pl...
Hintergrund und Projekte                            Routes, Filter und Hooks    Routes                                    ...
Hintergrund und Projekte                             Routes, Filter und Hooks    Routes                                   ...
Hintergrund und Projekte                              Routes, Filter und Hooks    Routes                                  ...
Hintergrund und Projekte                             Routes, Filter und Hooks    Routes                                   ...
Hintergrund und Projekte                        Routes, Filter und Hooks    Routes                                        ...
Hintergrund und Projekte                        Routes, Filter und Hooks    Routes                                        ...
Hintergrund und Projekte                            Routes, Filter und Hooks    Routes                                    ...
Hintergrund und Projekte                     Routes, Filter und Hooks    Plugins auf CPAN                                 ...
Hintergrund und Projekte                   Routes, Filter und Hooks    Plugins auf CPAN                                   ...
Hintergrund und Projekte                      Routes, Filter und Hooks    Plugins auf CPAN                                ...
Hintergrund und Projekte                               Routes, Filter und Hooks       Plugins auf CPAN                    ...
Hintergrund und Projekte                    Routes, Filter und Hooks    Plugins auf CPAN                                  ...
Hintergrund und Projekte                                Routes, Filter und Hooks       Plugins auf CPAN                   ...
Sessions                    Hintergrund und Projekte                                                Logs                  ...
Sessions                     Hintergrund und Projekte                                                 Logs                ...
Sessions                      Hintergrund und Projekte                                                  Logs              ...
Sessions                Hintergrund und Projekte                                            Logs                Routes, Fi...
Sessions                       Hintergrund und Projekte                                                   Logs            ...
Sessions                   Hintergrund und Projekte                                               Logs                   R...
Sessions                        Hintergrund und Projekte                                                    Logs          ...
Sessions                          Hintergrund und Projekte                                                      Logs      ...
Sessions                       Hintergrund und Projekte                                                   Logs            ...
Sessions                               Hintergrund und Projekte                                                           ...
Sessions                             Hintergrund und Projekte                                                         Logs...
Hintergrund und Projekte                  Routes, Filter und Hooks                                              Dancer 2  ...
Hintergrund und Projekte               Routes, Filter und Hooks                                           Dancer 2        ...
Hintergrund und Projekte                    Routes, Filter und Hooks                                                Dancer...
Upcoming SlideShare
Loading in...5
×

Tanz!

317

Published on

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.

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
317
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Tanz!"

  1. 1. 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!
  2. 2. 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!
  3. 3. 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!
  4. 4. 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!
  5. 5. 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!
  6. 6. 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!
  7. 7. 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!
  8. 8. 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!
  9. 9. 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!
  10. 10. 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!
  11. 11. 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!
  12. 12. 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!
  13. 13. 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!
  14. 14. 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!
  15. 15. 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!
  16. 16. 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!
  17. 17. 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!
  18. 18. 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!
  19. 19. 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!
  20. 20. 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!
  21. 21. 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!
  22. 22. 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!
  23. 23. 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!
  24. 24. 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!
  25. 25. Sessions Hintergrund und Projekte Logs Routes, Filter und Hooks Szenarien Plugins Starman Deployment Perlbal Ausblick SkriptsSzenarien: Reverse Proxy Apache nginx Perlbal racke Tanz!
  26. 26. 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!
  27. 27. Sessions Hintergrund und Projekte Logs Routes, Filter und Hooks Szenarien Plugins Starman Deployment Perlbal Ausblick SkriptsPerlbal LOAD vpaths XS enable headers racke Tanz!
  28. 28. 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!
  29. 29. 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!
  30. 30. 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!
  31. 31. 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!
  32. 32. 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!
  33. 33. 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!
  34. 34. 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!
  35. 35. 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!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×