Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

T3 ak11 flow3_aop

1.852 Aufrufe

Veröffentlicht am

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

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

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

×