Your SlideShare is downloading. ×
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Zend_Tool In ZF 1.8 Webinar
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Zend_Tool In ZF 1.8 Webinar

1,202

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.

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,202
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
38
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ZEND_TOOL IN ZF 1.8 By Ralph Schindler Copyright © 2007, Zend Technologies Inc.
  • 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. OVERVIEW “ What’s this thing all about? Overview | Jul-1-09 | 3
  • 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. 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. 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. 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. BASIC USAGE “ So, how do I use this thing? Basic Usage | Jul-1-09 | 8
  • 9. Basic Usage Basic Usage | Jul-1-09 | 9
  • 10. Basic Usage Basic Usage | Jul-1-09 | 10
  • 11. Basic Usage Basic Usage | Jul-1-09 | 11
  • 12. Basic Usage Basic Usage | Jul-1-09 | 12
  • 13. Basic Usage Basic Usage | Jul-1-09 | 13
  • 14. Basic Usage Basic Usage | Jul-1-09 | 14
  • 15. Basic Usage Basic Usage | Jul-1-09 | 15
  • 16. Basic Usage Basic Usage | Jul-1-09 | 16
  • 17. Basic Usage Basic Usage | Jul-1-09 | 17
  • 18. Basic Usage Basic Usage | Jul-1-09 | 18
  • 19. ADVANCED USAGE “ So, how do I extend this thing? Advanced Usage | Jul-1-09 | 19
  • 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. 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. 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. 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. 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. Advanced Usage •  Next slides are old demonstration •  API still applicable, substitute Zend for ZendL Advanced Usage | Jul-1-09 | 25
  • 26. Advanced Usage •  Zend_CodeGenerator / Reflection example Advanced Usage | Jul-1-09 | 26
  • 27. Advanced Usage •  Zend_CodeGenerator / Reflection example Advanced Usage | Jul-1-09 | 27
  • 28. Advanced Usage •  Zend_CodeGenerator / Reflection example Advanced Usage | Jul-1-09 | 28
  • 29. Advanced Usage •  Zend_CodeGenerator / Reflection example Advanced Usage | Jul-1-09 | 29
  • 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. Advanced Usage Advanced Usage | Jul-1-09 | 31
  • 32. Advanced Usage •  Files needed to facilitate this endeavor •  (These are in the include_path) Advanced Usage | Jul-1-09 | 32
  • 33. Advanced Usage Advanced Usage | Jul-1-09 | 33
  • 34. Advanced Usage •  Start with the simpler Abstract & ModelProvider Advanced Usage | Jul-1-09 | 34
  • 35. Advanced Usage Advanced Usage | Jul-1-09 | 35
  • 36. Advanced Usage Advanced Usage | Jul-1-09 | 36
  • 37. Advanced Usage Advanced Usage | Jul-1-09 | 37
  • 38. Advanced Usage Advanced Usage | Jul-1-09 | 38
  • 39. Advanced Usage Advanced Usage | Jul-1-09 | 39
  • 40. Advanced Usage Advanced Usage | Jul-1-09 | 40
  • 41. Advanced Usage Advanced Usage | Jul-1-09 | 41
  • 42. Advanced Usage •  The more complex DbTable provider & generator •  This will include some Zend_Application integration Advanced Usage | Jul-1-09 | 42
  • 43. Advanced Usage Advanced Usage | Jul-1-09 | 43
  • 44. Advanced Usage Advanced Usage | Jul-1-09 | 44
  • 45. Advanced Usage Advanced Usage | Jul-1-09 | 45
  • 46. Advanced Usage Advanced Usage | Jul-1-09 | 46
  • 47. Advanced Usage Advanced Usage | Jul-1-09 | 47
  • 48. Advanced Usage Advanced Usage | Jul-1-09 | 48
  • 49. Advanced Usage Advanced Usage | Jul-1-09 | 49
  • 50. Advanced Usage Advanced Usage | Jul-1-09 | 50
  • 51. Advanced Usage Advanced Usage | Jul-1-09 | 51
  • 52. WRAPPING IT UP “ What’s next? Wha’ts on the horizon? Advanced Usage | Jul-1-09 | 52
  • 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. 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. Wrapping It Up •  Questions? Name of this section | Jul-1-09 | 55
  • 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.

×