1 / 57

My Very First… Model View Controller Web Application with the Zend Framework

My Very First… Model View Controller Web Application with the Zend Framework. New York City ZF Meetup. Part One. Why use an MVC framework? Inversion of Control makes life simpler. Setting up an environment for use with ZF. Creating a project with ZF tool. ZF application basics.

ansel
Télécharger la présentation

My Very First… Model View Controller Web Application with the Zend Framework

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. My Very First…Model View Controller Web Applicationwith the Zend Framework New York CityZF Meetup

  2. Part One • Why use an MVC framework? • Inversion of Control makes life simpler. • Setting up an environment for use with ZF. • Creating a project with ZF tool. • ZF application basics.

  3. Why Use an MVC Framework? • Helps to stay DRY (don’t repeat others either) • Spend time on unique application problems, not plumbing problems. • Take advantage of combined years of experience. • Things you think of down the line already taken care of. • Flexible, reliable, well tested code base: • Unit tested. • Community tested.

  4. Inversion of Control • Framework != Library • A library is a set of tools. • A framework gives you a working structure to customize by hooking into key points. • The framework invokes your code at the appropriate time (control is inverted).

  5. Zend Framework MVC Framework + Components Library + CMD Tool • MVC architecture. • Useful components for everyday tasks: • ACL + Auth • Forms: validation, filtering built in • Web services: Amazon, Twitter, etc • Command line tool eases set-up tasks.

  6. Zend Framework • Use at will: • Components can be integrated into an app done with Lithium, Symfony, Wordpress, Drupal, etc. • Large user community • 500 contributors, 10 million downloads • Corporate backing (+/-) • Test driven development

  7. Background Info • MVC frameworks typicallyare made of: • Controllers and action methods • 1 Action Method ≈ 1 Page • Controllers group action methods • View scripts • Control look and feel of app • Models • Application data

  8. Simple Example(find the code for a URL) • In a ZF app, this URL: • Maps to the “about action method” of the “index controller”

  9. Simple Example • The “index controller” is a class. • The “about action method” is a method of the IndexController class.

  10. Simple Example • About action is called by the framework and renders the “about view script”.

  11. Simple Example • The results of the view script are output.

  12. Simple Example: Summary • Framework maps URL to an action method. • You write one method and one view script • Framework calls your code when it’s needed • Framework presents view script to user

  13. Real Project: Tasks • Want an application to create, manage, and view my tasks. • Users should be able to register. • Users should be able to create, edit, and delete individual tasks. • Users should be able to view a list of their tasks, or any single task.

  14. Tasks: So we’ll need… • A user component. • A registration component. • A tasks component. • Security to make sure: • Only members can see other users • Only members can do task stuff • Only the owner of a task can do stuff to her tasks • etc

  15. Set Up 1: ZF Command Line Tool • Download current version of ZF • Folder will contain Zend library, and bin: • Windows: Add bin to your PATH • *nix: Create symbolic link • Even better, use PEAR installer!

  16. Set Up 2: Zend library to Include Path • Can add in php.ini • Can add in application’s index.php file

  17. Step 1: Create Project • Use ZF tool to create project structure. • Must “enter” app directory for further tooling.

  18. Step 1: Create Project • “public” is the face of your application. • Accessible to civilians • CSS, Javascript, other asset files go here. • index.php is single point of entry. • .htaccess automatically created • “application” is where most of the app lives. • “library” is for app specific libraries. • “tests” is for unit tests

  19. Step 1: Create Project • zf create project creates an index controller with a default index action and script

  20. Step 2: Modify Index Action Output • Want to put something specific to your app on public splash page. • Need to: • Modify the action method • Modify the view script • Where are these files in app folder structure?

  21. Step 2: Modify Index Action Output • One controller class per file, • View scripts housed in views/scripts • Grouped into folder named after “it’s controller”

  22. Step 2: Modify Index Action Output • Change views/scripts/index/index.phtmlfrom this…

  23. Step 2: Modify Index Action Output • …to this:

  24. Step 3: Variables in View Scripts • In ZF, view is an object • View object is in charge of rendering scripts • View scripts execute inside of view object • View scripts have same scope as method of view object • In other words, in script $this refers to the view object • Controller has reference to view object • Controller assigns variable to view object for use in view scripts • Assign as property of view object

  25. Step 3: Variables in View Scripts • Variables assigned as view object properties in controller:

  26. Step 3: Variables in View Scripts • Variables used as members of view object inside of view script:

  27. Step 3: Variables in View Scripts

  28. Step 4: Create Another Page • A Page ≈ An Action Method • Create action methods using ZF tool • Creates method body in controller and view script. • Zf create action actionNamecontrollerItsIn • (Note that you have to have created the controller using ZF tool to create an action in it using the tool)

  29. Step 4: Create Another Page • Create an about page:

  30. Step 4: Create Another Page • Action body and view script magically created!

  31. Step 4: Create Another Page • Modify view script as desired and presto!

  32. Steps 5 – 8: Users • Want to be able to register users • Want to be able to store user data • Want to let users manage their data • Want to make sure only users can access user data

  33. Steps 5 – 8: Users • So we’ll need: • A way to interact with a user database table (Zend_Db) • A way for users to interact with information (Zend_Form) • User pages (UserController) • Log in and access control (Zend_Acl + Zend_Auth)

  34. Steps 5 – 8: Users • Start with a Users table like so:

  35. Step 5: Create UserController • We’ll put user related actions in the UserController. • Use ZF tool to create the controller and actions • Zf create controller controllerName • Will create controller class file, and view scripts directory

  36. Step 5: Create UserController

  37. Step 5: Create UserController

  38. Step 6: Using a Database • ZF has adapter based access toDB tables. • Most major DB server’s supported • MySQL, Postgre, Oracle, MSSQL, IBM DB2… • Query against adapter  easier to make changes to backend without ripple effects in consumer code. • Not Zend_Model

  39. Step 6: Using a Database • 2 or 3 Steps: • Create DB adapter • Optionally, create table • Use it

  40. Step 6: Using a Database • We’ll use simple version (query against DB) • For now, DB config in controller init method • Think of init as constructor hook

  41. Step 6: Using a Database • Method to insert is…insert!

  42. Step 6: Using a Database • Method to update is…update!

  43. Step 6: Using a Database • Method to delete is…delete!

  44. Step 6: Using a Database • Various methods for SELECT statements: • fetchAll • fetchAssoc • fetchNum • fetchObj

  45. Step 6: Using a Database

  46. Step 6: Using a Database • Methods are similar when using Zend_Db_Table • Usually configure DB in bootstrap

  47. Step 7: Using Forms • Users need to be able to register • Use Zend_Form for registration form • Forms and form elements in ZF are objects: • Add elements to form with addElement • Can add validators to elements to ensure data integrity • EmailAddressvalidator • Integer validator • Many more

  48. ZF Tool and Forms

  49. Add Elements to Forms • Element name and type required

  50. Create and Display a Form • Create in controller, assign to view, use Zend_Form::render() to display.

More Related