0
logo-typo3 Willko mmen bei  FLOW3 Viel Freude beim Einstieg  wünscht Ihnen Ihr Team der  elementaren teilchen
Wer steht vor Ihnen? logo-typo3 <ul><li>Franz Kugelmann (geb. Ripfel)
elementare teilchen GmbH (ehem. A.BE.ZET)
http://www.abezet.de
http://www.elementare-teilchen.de
7 Jahre Erfahrung mit TYPO3, seit Version 3.5
FLOW3 Tester der ersten Stunde
Langjährige Erfahrung als Coach/Trainer </li></ul>
FLOW3: PHP-Framework in modernst logo-typo3 <ul><li>Konvention statt Konfiguration
Konsequentes MVC
Daten Repository
Domain-Driven Design (DDD)
Test-Driven Development (TDD)
Upcoming SlideShare
Loading in...5
×

T3 ak11 flow3_aop

1,305

Published on

slide for demonstration of AOP-Features in flow3 during TYPO3 Akademie 2011 in munich

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

  • Be the first to like this

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

No notes for slide

Transcript of "T3 ak11 flow3_aop"

  1. 1. logo-typo3 Willko mmen bei FLOW3 Viel Freude beim Einstieg wünscht Ihnen Ihr Team der elementaren teilchen
  2. 2. Wer steht vor Ihnen? logo-typo3 <ul><li>Franz Kugelmann (geb. Ripfel)
  3. 3. elementare teilchen GmbH (ehem. A.BE.ZET)
  4. 4. http://www.abezet.de
  5. 5. http://www.elementare-teilchen.de
  6. 6. 7 Jahre Erfahrung mit TYPO3, seit Version 3.5
  7. 7. FLOW3 Tester der ersten Stunde
  8. 8. Langjährige Erfahrung als Coach/Trainer </li></ul>
  9. 9. FLOW3: PHP-Framework in modernst logo-typo3 <ul><li>Konvention statt Konfiguration
  10. 10. Konsequentes MVC
  11. 11. Daten Repository
  12. 12. Domain-Driven Design (DDD)
  13. 13. Test-Driven Development (TDD)
  14. 14. Aspektorientierte Programmierung </li></ul>
  15. 15. Aspect Orientated Programming (AOP): Einsatzbeispiele <ul><li>Security Interception </li><ul><li>Security Framework </li></ul><li>Caching </li><ul><li>Fluid: parseTemplate
  16. 16. Routing: findMatchResults(), resolve() </li></ul><li>Logging </li><ul><li>TYPO3: Routing-Logging
  17. 17. Security Logging
  18. 18. Unser Beispiel </li></ul></ul>logo-typo3
  19. 19. Aspect Orientated Programming (AOP): Szenario <ul><li>Anforderung: </li><ul><li>Wir wollen wissen, wie lange die einzelnen Abfrage für unsere Listenansichten dauern (weil alle immer sagen FLOW3 ist hier so langsam) </li></ul><li>Lösungsvarianten: </li><ul><li>Logging in alle relevanten Klassen einbauen
  20. 20. ???
  21. 21. AOP (Überraschung!) </li></ul></ul>logo-typo3
  22. 22. Aspect Orientated Programming (AOP): Szenario logo-typo3
  23. 23. Aspect Orientated Programming (AOP): Begriffe <ul><li>Aspect -> Was wird benötigt
  24. 24. Join Point -> Wo wird es benötigt
  25. 25. Advise -> Code, um den Aspect abzubilden
  26. 26. Pointcut -> Stelle, an der der Advise greifen soll
  27. 27. Pointcut expression -> Definition der Pointcuts
  28. 28. Target -> Zielklasse, die verändert wird
  29. 29. Introduction -> Erweiterung einer Klasse </li></ul>logo-typo3
  30. 30. Aspect Orientated Programming (AOP): Begriffe <ul><li>Advise: Verschiedene Arten möglich </li><ul><li>Before advice
  31. 31. After returning advice
  32. 32. After throwing advice
  33. 33. After advice
  34. 34. Around advice </li></ul><li>Advice chain </li><ul><li>Mehrere around advise können ineinander verschachtelt (verkettet) werden. </li></ul></ul>logo-typo3
  35. 35. Aspect Orientated Programming (AOP): Beispiele <ul><li>Pointcut Bezeichner (Teil 1) </li><ul><li>method() </li><ul><li>method(F3MyPackage.*->delete.*())
  36. 36. method(F3MyPackageMyClass->update(title == &quot;F3&quot;)) </li></ul><li>class() </li><ul><li>class(F3MyPackageMyObject) </li></ul><li>within(): interface oder subclass </li><ul><li>within(F3FLOW3LogLoggerInterface) </li></ul></ul></ul>logo-typo3
  37. 37. Aspect Orientated Programming (AOP): Beispiele <ul><li>Pointcut Bezeichner (Teil 2) </li><ul><li>classTaggedWith() </li><ul><li>classTaggedWith(entity)
  38. 38. classTaggedWith(cool.*) </li></ul><li>methodTaggedWith() </li><ul><li>methodTaggedWith(special)
  39. 39. /**
  40. 40. * @special
  41. 41. */ </li></ul></ul></ul>logo-typo3
  42. 42. Aspect Orientated Programming (AOP): Beispiele <ul><li>Pointcut Bezeichner (Teil 3) </li><ul><li>setting() </li><ul><li>setting(my.configuration.option = 'AOP is cool') </li></ul><li>filter() </li><ul><li>filter(F3MyPackageMyCustomPointcutFilter) </li></ul><li>evaluate() </li><ul><li>evaluate(current.party.name == &quot;Andi&quot;)
  43. 43. evaluate(this.someObject.someProperty == current.party.name)
  44. 44. evaluate(current.party.accounts matches ('Administrator')) </li></ul></ul></ul>logo-typo3
  45. 45. Aspect Orientated Programming (AOP): Beispiele <ul><li>Pointcut Bezeichner (Teil 4) </li><ul><li>Kombinationen sind möglich
  46. 46. method(F3TestPackagePointcutTestingTargetClass.*->.*()) && within(F3FLOW3ServiceLayerInterface) </li></ul></ul>logo-typo3
  47. 47. Wie weitermachen? <ul><li>http://flow3.typo3.org
  48. 48. http://forge.typo3.org/projects/flow3-overview
  49. 49. Mailing Listen: http://lists.typo3.org/ (flow3.general, flow3.teams.core)
  50. 50. www.robertlemke.de/blog/
  51. 51. Schulungen durch die elementaren teilchen bei der OpenSource School: </li><ul><li>FLOW3 Schnuppertag (1 Tag)
  52. 52. FLOW3 Intensivschulung (3 Tage)
  53. 53. http://www.abezet.de/typo3-schulungen/flow3-schnuppertag/ </li></ul></ul>logo-typo3
  1. A particular slide catching your eye?

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

×