Zend_Tool In ZF 1.8 Webinar

1,506 views
1,423 views

Published on

These slides were presented on 6/30/06 in a webinar for zend.com. The recorded webinar can be seen from the zend.com site.

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

No Downloads
Views
Total views
1,506
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
38
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Zend_Tool In ZF 1.8 Webinar

  1. 1. ZEND_TOOL IN ZF 1.8 By Ralph Schindler Copyright © 2007, Zend Technologies Inc.
  2. 2. Overview •  Overview   The Problem   The Solution   Obtaining Zend_Tool •  Basic Usage   Zend_Tool usage OTB (out the box)   Zend_CodeGenerator & Zend_Reflection •  Advanced Usage   Extending Zend_Tool Overview | Jul-1-09 | 2
  3. 3. OVERVIEW “ What’s this thing all about? Overview | Jul-1-09 | 3
  4. 4. Overview •  The Problem – all the buzzwords   RAD – Rapid Application Development   Code Generation •  The generation of code during “development time” that will run during “production time” •  Development time code generation is ALWAYS better than runtime introspection   Scaffolding •  Templates •  Meta programming •  CRUD Overview | Jul-1-09 | 4
  5. 5. Overview •  In a nutshell:   “Zend_Tool is both RAD tools as well as a framework for exposing your own set of tooling needs to the Zend_Tool user interface.” •  Main Classes & APIs:   Zend_Tool_Framework   Zend_Tool_Project •  Supporting Classes & APIs:   Zend_CodeGenerator   Zend_Reflection Overview | Jul-1-09 | 5
  6. 6. Overview •  Download and go •  SVN   Create a link to the proper runner (zf.sh/zf.bat) •  Preferably in the system path   Add Zend Framework library to global include_path •  Zend Server •  Pear Channel (http://pear.zfcampus.org/) Overview | Jul-1-09 | 6
  7. 7. Overview •  How it works   Zend_Tool_Framework looks for providers, by default, on the include_path   Zend_Tool_Project is consumed by Zend_Tool_Framework •  This allows Zend_Tool_Project to be only concerned with “project” problems •  This also allows Zend_Tool_Framework to focus on the problem of knowing which requests are good, and knowing how to dispatch said request   Zend_Tool_Framework provides a client to the user   That client in 1.8 is the command line client Overview | Jul-1-09 | 7
  8. 8. BASIC USAGE “ So, how do I use this thing? Basic Usage | Jul-1-09 | 8
  9. 9. Basic Usage Basic Usage | Jul-1-09 | 9
  10. 10. Basic Usage Basic Usage | Jul-1-09 | 10
  11. 11. Basic Usage Basic Usage | Jul-1-09 | 11
  12. 12. Basic Usage Basic Usage | Jul-1-09 | 12
  13. 13. Basic Usage Basic Usage | Jul-1-09 | 13
  14. 14. Basic Usage Basic Usage | Jul-1-09 | 14
  15. 15. Basic Usage Basic Usage | Jul-1-09 | 15
  16. 16. Basic Usage Basic Usage | Jul-1-09 | 16
  17. 17. Basic Usage Basic Usage | Jul-1-09 | 17
  18. 18. Basic Usage Basic Usage | Jul-1-09 | 18
  19. 19. ADVANCED USAGE “ So, how do I extend this thing? Advanced Usage | Jul-1-09 | 19
  20. 20. Advanced Usage •  Zend_Tool_Framework Architecture   Registry •  A container for all of the Zend_Tool_Framework sub componets   Providers •  The built in providers   Loaders •  The component responsible for finding providers & manifests   Manifest •  A dictionary of metadata to be used by clients and providers   Client •  The subcomponent responsible for presenting the toolchain to the user as well as building and dispatching requests Advanced Usage | Jul-1-09 | 20
  21. 21. Advanced Usage •  Zend_Tool_Project Architecture   Project Profile •  The description of the project in terms as a tree structure of resources   Resource •  A resources is a node in the “project profile tree” •  Can be a single node, or a parent of a collection of nodes •  Is further described by the “context” associated with it.   Providers •  Set of providers responsible for project based capabilities   Context •  An object that describes the role of any given resources. Advanced Usage | Jul-1-09 | 21
  22. 22. Advanced Usage •  Zend_Reflection   Extends the API of PHP’s Reflection class to handle some missing functionality •  Docblock introspection (ability to get tags and descriptions) •  File introspection Advanced Usage | Jul-1-09 | 22
  23. 23. Advanced Usage •  Zend_CodeGenerator   Purpose is to generate OO code with an OO interface   API very similar to Reflection API, but the purpose is exactly the opposite   generate() method produces Zend/PEAR standard compliant object oriented code   Target use case: Assisting RAD and facilitating iterative development Advanced Usage | Jul-1-09 | 23
  24. 24. Advanced Usage •  Iterative Development   Use Zend_Tool to generate file & class   Modify file with external tool •  Example: use studio to fill in the body of an Action Controllers action   Use Zend_Tool to modify file & class •  Example: adding an action to an already generated and modifed Action Controller Advanced Usage | Jul-1-09 | 24
  25. 25. Advanced Usage •  Next slides are old demonstration •  API still applicable, substitute Zend for ZendL Advanced Usage | Jul-1-09 | 25
  26. 26. Advanced Usage •  Zend_CodeGenerator / Reflection example Advanced Usage | Jul-1-09 | 26
  27. 27. Advanced Usage •  Zend_CodeGenerator / Reflection example Advanced Usage | Jul-1-09 | 27
  28. 28. Advanced Usage •  Zend_CodeGenerator / Reflection example Advanced Usage | Jul-1-09 | 28
  29. 29. Advanced Usage •  Zend_CodeGenerator / Reflection example Advanced Usage | Jul-1-09 | 29
  30. 30. Advanced Usage •  Lets explore a simple problem: Db Table & Model Generation   Start with a schema   Generate Db Table Files   Generate Model Files Advanced Usage | Jul-1-09 | 30
  31. 31. Advanced Usage Advanced Usage | Jul-1-09 | 31
  32. 32. Advanced Usage •  Files needed to facilitate this endeavor •  (These are in the include_path) Advanced Usage | Jul-1-09 | 32
  33. 33. Advanced Usage Advanced Usage | Jul-1-09 | 33
  34. 34. Advanced Usage •  Start with the simpler Abstract & ModelProvider Advanced Usage | Jul-1-09 | 34
  35. 35. Advanced Usage Advanced Usage | Jul-1-09 | 35
  36. 36. Advanced Usage Advanced Usage | Jul-1-09 | 36
  37. 37. Advanced Usage Advanced Usage | Jul-1-09 | 37
  38. 38. Advanced Usage Advanced Usage | Jul-1-09 | 38
  39. 39. Advanced Usage Advanced Usage | Jul-1-09 | 39
  40. 40. Advanced Usage Advanced Usage | Jul-1-09 | 40
  41. 41. Advanced Usage Advanced Usage | Jul-1-09 | 41
  42. 42. Advanced Usage •  The more complex DbTable provider & generator •  This will include some Zend_Application integration Advanced Usage | Jul-1-09 | 42
  43. 43. Advanced Usage Advanced Usage | Jul-1-09 | 43
  44. 44. Advanced Usage Advanced Usage | Jul-1-09 | 44
  45. 45. Advanced Usage Advanced Usage | Jul-1-09 | 45
  46. 46. Advanced Usage Advanced Usage | Jul-1-09 | 46
  47. 47. Advanced Usage Advanced Usage | Jul-1-09 | 47
  48. 48. Advanced Usage Advanced Usage | Jul-1-09 | 48
  49. 49. Advanced Usage Advanced Usage | Jul-1-09 | 49
  50. 50. Advanced Usage Advanced Usage | Jul-1-09 | 50
  51. 51. Advanced Usage Advanced Usage | Jul-1-09 | 51
  52. 52. WRAPPING IT UP “ What’s next? Wha’ts on the horizon? Advanced Usage | Jul-1-09 | 52
  53. 53. Wrapping It Up •  Most immediately   Code and slides published to my blog •  http://ralphschindler.com   End of week a tutorial on DevZone •  Same code, only heavily documented to demonstrate what is going on •  Some additional functionality inside the code •  Iterative examples Name of this section | Jul-1-09 | 53
  54. 54. Wrapping It Up •  Whats to come in 1.9?   A setup script   Better include_path management   New Providers! •  Model provider •  DbTable provides   Custom profiles •  Whats on the TODO list?   Importing of existing project (resource auto-detection)   Web based client   Zend Studio client Name of this section | Jul-1-09 | 54
  55. 55. Wrapping It Up •  Questions? Name of this section | Jul-1-09 | 55
  56. 56. THANK YOU! Ralph Schindler ralph.schindler@zend.com http://framework.zend.com/ | 56 Name of thisJul-1-09 | section Copyright © 2007, Zend Technologies Inc.

×