tiwari
-
Upload
alind-tiwari -
Category
Documents
-
view
251 -
download
2
description
Transcript of tiwari
- 1. Introducing: Zend Framework John Coggeshall
2. Welcome
- Today Ill be introducing you to the Zend Framework
-
- What it is
-
- Why were doing it
-
- How to use it
-
- Where its going
-
- How to be a part of it
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 Frameworkisnt
-
- A free-reign open source project
-
- A religion
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,requiringas 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.
5. Why Yet another Framework?
- Keep PHP competitive with other technologies
-
- .NET, Java, etc.
- Provide clean IP to enable commercial use
-
- Real companies cant 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
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)
7. Theres no such thing as a free
- Why spend so much time and effort on something, just to give it away?
-
- Yes, were 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
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 Developers Zone (devzone.zend.com) use the preview release of Framework as their foundation.
9. The grail: Extreme Simplicity
- Many of PHP 5s most exciting new technologies arereally simpleto use:
-
- Simple XML
-
- SOAP
-
- Tidy
- While the underlying technologies may be extremely complex, the end-user APIs are reduced to an extremely simple interface
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 shouldnt 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
11. Zend Framework from 10,000 feet 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
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!
14.
- You can either get the framework preview release or check out the latest repository version
- Preview Release:http://framework.zend.com/
- Repository:
Getting Zend Framework $ svn checkout http://framework.zend.com/svn/framework/trunk 15. Installing Zend Framework
- Installing the framework isveryeasy, just modify your include_path to include the library/ directory
- From php.ini:
- From .htaccess
include_path=.:/usr/local/lib/php:/usr/local/lib/ZendFramework php_value include_path .:/usr/local/lib/php:/usr/local/lib/ZendFramework 16. MVC Pattern
- MVC, orM odelV iewC ontroller 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
17. Example Controller
- Note: indexAction() is declared abstract in Zend_Controller_Action, and therefore must be defined in any Action/Page controller
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( [, ]);
-
- $this->_getAllParams();
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)
20. Chaining Controllers
- Controllers can be chained together to either break business logic out into components, or to otherwise redirect the user
-
- $this->_forward( [, ])
-
- 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();
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 isnt 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
22. Input Filtering 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.)
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 its references are destroyed when filtered
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
26. Sending HTML mail is nowreallyeasy 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
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
29. Using Zend_Search
- Using Zend Search is very easy
- The search engine also boasts a parser for google-like searching: zend php -java
30. Adding documents to the index 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
32. Questions?