Your SlideShare is downloading. ×
Introducing: Zend Framework
John Coggeshall

Copyright © 2006, Zend Technologies Inc.
Welcome
• Today I’ll be introducing you to the Zend
Framework






What it is
Why we’re doing it
How to use it
Where...
Getting Started
• Zend Framework is..
 A modular collection of PHP classes based on PHP 5 to
simplify common tasks
 A st...
Goals of the Framework
• Zend Framework strives to be fundamentally….
 An industry-leading framework for PHP application
...
Why Yet another Framework?
• Keep PHP competitive with other technologies
 .NET, Java, etc.

• Provide “clean” IP to enab...
The Framework License
• Zend Framework is licensed using a PHP/BSD
style license

 Anyone can use it, for anything, no st...
There’s no such thing as a free…
• Why spend so much time and effort on
something, just to give it away?

 Yes, we’re sti...
We eat our own dog food
• Zend Framework is more than unit-tested, it is
used in real-life production environments

 Give...
The grail: Extreme Simplicity
• Many of PHP 5’s most exciting new technologies
are really simple to use:
 Simple XML
 SO...
Getting the Grail
• To achieve the grail of extreme simplicity
 “Simple things should be simple, complex things should
be...
Zend Framework from 10,000 feet

Dec 4, 2013

# 11
Completely PHP-5 focused
•
•
•
•
•
•

Requires PHP 5.0.4 or later for near future
Takes full advantage of the PHP exceptio...
Preview Release
• PR 1.2 is the latest preview release of the

Framework including many immediately useful
tools such as:
...
Getting Zend Framework
• You can either get the framework preview

release or check out the latest repository version

• P...
Installing Zend Framework
• Installing the framework is very easy, just modify
your include_path to include the library/
d...
MVC Pattern
• MVC, or Model View Controller pattern is a
•
•

powerful technique for developing user
interfaces
Originally...
Example Controller

• Note: indexAction() is declared abstract in

Zend_Controller_Action, and therefore must be
defined i...
Passing Parameters
• Beyond $_GET/$_POST you can also pass

parameters to a specific controller action by
appending them t...
Dealing with 404s
• 404 errors are no longer the responsibility of
•

Apache per-se, and are more likely to result in a
‘C...
Chaining Controllers
• Controllers can be chained together to either

break business logic out into components, or to
othe...
Final thoughts on MVC
• Although the pattern dictates three individual
•

class types, they are as conceptual as functiona...
Input Filtering

Copyright © 2006, Zend Technologies Inc.
Zend_InputFilter
• Security is a primary concern in Zend Framework
• As such, we provide facilities to clean and
manage un...
Using Zend_InputFilter
• With Input Filter you can both test data types and
retrieve filtered data easily

• Note, by defa...
Zend_Mail
• Simplifies building and sending e-mail
• Supports MIME types and multipart e-mail
• Supports multiple transpor...
Sending HTML mail is now really easy

Dec 4, 2013

# 26
Zend_Search
• PHP 5 implementation of the popular Lucene
search engine from the Java world.

• Simplified API
• Requires n...
Zend_Search Features
• Ranked Searching
 Best results always first

• Many Query types: phrase, wildcard, proximity
• Sea...
Using Zend_Search
• Using Zend Search is very easy

• The search engine also boasts a parser for google-like searching: ze...
Adding documents to the index

Dec 4, 2013

# 30
Cool things about Zend_Search
• The Lucene search engine allows you to index

multiple document types in a single index, e...
Questions?

Copyright © 2006, Zend Technologies Inc.
Upcoming SlideShare
Loading in...5
×

Unit Test for ZF SlideShare Component

63

Published on

Unit Test

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

  • Be the first to like this

No Downloads
Views
Total Views
63
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Unit Test for ZF SlideShare Component"

  1. 1. Introducing: Zend Framework John Coggeshall Copyright © 2006, Zend Technologies Inc.
  2. 2. Welcome • Today I’ll be introducing you to the Zend Framework      What it is Why we’re doing it How to use it Where it’s going How to be a part of it Dec 4, 2013 #2
  3. 3. Getting Started • Zend Framework is..  A modular collection of PHP classes based on PHP 5 to simplify common tasks  A starting point for your applications  A demonstration of PHP 5 best practices  A smaller component of the PHP Collaboration Project • Zend Framework isn’t…  A free-reign open source project  A religion Dec 4, 2013 #3
  4. 4. Goals of the Framework • Zend Framework strives to be fundamentally….  An industry-leading framework for PHP application development  A partnership between many companies already experienced in PHP Framework development • Zend Framework strives to be technically…  A source of high-quality, PHP 5 / E_STRICT compatible application components  Completely PHP 5 powered, requiring as few external PHP extensions as necessary  A minimal object hierarchy to achieve the necessary goals  Modular design allowing developers to use the framework at will, as they see fit. Dec 4, 2013 #4
  5. 5. Why Yet another Framework? • Keep PHP competitive with other technologies  .NET, Java, etc. • Provide “clean” IP to enable commercial use  Real companies can’t just “borrow” code from the Internet without clear licensing • “Extreme Simplicity”: It may not be simple • technically, but using it should be. Take full advantage of PHP 5 Dec 4, 2013 #5
  6. 6. The Framework License • Zend Framework is licensed using a PHP/BSD style license  Anyone can use it, for anything, no strings attached – period. • Along with the license of the framework itself, contributors must sign a Contributor License Agreement (CLA) Dec 4, 2013 #6
  7. 7. There’s no such thing as a free… • Why spend so much time and effort on something, just to give it away?  Yes, we’re still interested in making money • For the continued success of PHP it must be a collaboration beyond OSS hackers  Through the PHP Collaboration project, and projects like Zend Framework, we can leverage the knowledge of some of the best in the industry in the benefit of PHP as a whole  As you might expect, Zend benefits with PHP Dec 4, 2013 #7
  8. 8. We eat our own dog food • Zend Framework is more than unit-tested, it is used in real-life production environments  Gives us the ability to test performance, ease of use, etc. in a practical environment  Zend and its partners are already using the preview release of the Framework to speed development of their applications  Both the Framework homepage (framework.zend.com) and our new Developer’s Zone (devzone.zend.com) use the preview release of Framework as their foundation. Dec 4, 2013 #8
  9. 9. The grail: Extreme Simplicity • Many of PHP 5’s most exciting new technologies are really simple to use:  Simple XML  SOAP  Tidy • While the underlying technologies may be extremely complex, the end-user APIs are reduced to an extremely simple interface Dec 4, 2013 #9
  10. 10. Getting the Grail • To achieve the grail of extreme simplicity  “Simple things should be simple, complex things should be possible” • Use-at-will architecture  You shouldn’t be forced into buying the whole pizza just for a slice  Use individual components (controller/model) without being forced to use everything (your own template/view) • Configuration-less  The framework should be plug-and-go, no configuration files necessary Dec 4, 2013 # 10
  11. 11. Zend Framework from 10,000 feet Dec 4, 2013 # 11
  12. 12. Completely PHP-5 focused • • • • • • Requires PHP 5.0.4 or later for near future Takes full advantage of the PHP exception model Constants are all at the class-level No functions in global namespace ZE2 / SPL technologies fully utilized where it makes sense Black magic __magic() functions used very sparsely Dec 4, 2013 # 12
  13. 13. Preview Release • PR 1.2 is the latest preview release of the Framework including many immediately useful tools such as:          A basic MVC framework for application design A PDO-based database layer Feed (RSS, Atom) ingestion and manipulation An HTTP client Input data filtering Json support for AJAX PDF generation and manipulation RPC / Web service support And more! Dec 4, 2013 # 13
  14. 14. Getting Zend Framework • You can either get the framework preview release or check out the latest repository version • Preview Release: http://framework.zend.com/ • Repository: $ svn checkout http://framework.zend.com/svn/framework/trunk Dec 4, 2013 # 14
  15. 15. Installing Zend Framework • Installing the framework is very easy, just modify your include_path to include the library/ directory From php.ini: …… include_path=“.:/usr/local/lib/php:/usr/local/lib/ZendFramework” …… From .htaccess …… php_value include_path “.:/usr/local/lib/php:/usr/local/lib/ZendFramework” …… Dec 4, 2013 # 15
  16. 16. MVC Pattern • MVC, or Model View Controller pattern is a • • powerful technique for developing user interfaces Originally was conceived for client-side GUI applications and adopted to the web Zend Framework provides a simplistic MVC model Dec 4, 2013 # 16
  17. 17. Example Controller • Note: indexAction() is declared abstract in Zend_Controller_Action, and therefore must be defined in any Action/Page controller Dec 4, 2013 # 17
  18. 18. Passing Parameters • Beyond $_GET/$_POST you can also pass parameters to a specific controller action by appending them to the URL:  http://localhost/foo/dosomething/param1/value1/param2/value2 • Parameters can be accessed from within the action by name  $this->_getParam(<key> [, <default value>]);  $this->_getAllParams(); Dec 4, 2013 # 18
  19. 19. Dealing with 404s • 404 errors are no longer the responsibility of • Apache per-se, and are more likely to result in a ‘Class not found’ / ‘Method not found’ exception To deal with these Zend Framework provides two methods  In the event of a controller not found, the IndexController::noRoute() method will be called instead  In the event a controller action is not defined, it is the responsibility of the controller to implement safeguards (i.e. __call() which traps bad action calls) Dec 4, 2013 # 19
  20. 20. Chaining Controllers • Controllers can be chained together to either break business logic out into components, or to otherwise redirect the user  $this->_forward(<controller_name> [, <parameters>])  Parameters are a series of key/value pairs  Controller Chaining does not occur until the current action is complete, to immediately forward you must return from the current action after calling _forward() • Forwarding does not cause a refresh on the client, to physically refresh the browser  $this->_redirect(<url>); Dec 4, 2013 # 20
  21. 21. Final thoughts on MVC • Although the pattern dictates three individual • class types, they are as conceptual as functional For instance a “model” or “view” isn’t absolutely necessary to gain most of the benefit of MVC  You can always perform queries from a controller  You can always print output from a controller • Although not necessary, they are never the less recommended Dec 4, 2013 # 21
  22. 22. Input Filtering Copyright © 2006, Zend Technologies Inc.
  23. 23. Zend_InputFilter • Security is a primary concern in Zend Framework • As such, we provide facilities to clean and manage untrusted data in your applications via Zend_InputFilter and Zend_Filter  Provides a number of methods for filtering data against many common data types (digits, alphanumeric, alpha, phone, etc.) Dec 4, 2013 # 23
  24. 24. Using Zend_InputFilter • With Input Filter you can both test data types and retrieve filtered data easily • Note, by default the source of the data and all of it’s references are destroyed when filtered Dec 4, 2013 # 24
  25. 25. Zend_Mail • Simplifies building and sending e-mail • Supports MIME types and multipart e-mail • Supports multiple transports and persistent connections automatically • Supports large file attachments via the streams API improving performance Dec 4, 2013 # 25
  26. 26. Sending HTML mail is now really easy Dec 4, 2013 # 26
  27. 27. Zend_Search • PHP 5 implementation of the popular Lucene search engine from the Java world. • Simplified API • Requires no special PHP extensions • Fully compatible with the binary index format of Java Lucene 1.4 and above Dec 4, 2013 # 27
  28. 28. Zend_Search Features • Ranked Searching  Best results always first • Many Query types: phrase, wildcard, proximity • Search by field (Author, title, body, etc.) • Robust, and simple API  One-method intelligent searches against indexes, or complex OO queries if desired  Index multiple document types, with different field requirements Dec 4, 2013 # 28
  29. 29. Using Zend_Search • Using Zend Search is very easy • The search engine also boasts a parser for google-like searching: zend php -java Dec 4, 2013 # 29
  30. 30. Adding documents to the index Dec 4, 2013 # 30
  31. 31. Cool things about Zend_Search • The Lucene search engine allows you to index multiple document types in a single index, each with different index fields  Index Individual documents with different searchable criterion  I.e. Index code samples by functions used, while articles by title, author, and keywords in the same index • Because it is 100% compatible with Lucene 1.4+, it is compatible with all pre-created index files Dec 4, 2013 # 31
  32. 32. Questions? Copyright © 2006, Zend Technologies Inc.

×