The document introduces the Zend Framework, an open-source PHP framework. It discusses that the framework aims to simplify common PHP tasks, serve as a starting point for applications, and demonstrate best practices. Key features include modularity, compatibility with PHP 5, and an MVC architecture. The document provides examples of using common framework components like controllers, input filtering, mailing, and searching. It emphasizes that the framework is designed to have an extremely simple interface while supporting complex tasks.
A a sneak peek into PHP 7, Zend Server 9, Zend Studio 13.5, and what the combination brings to IBM i users. Available in Q3, sporting a new DB2 extension and lots of new goodies, Zend Server 9 will prove to be the biggest open source story to hit IBM i this year. Once you add the latest Zend Studio release (13.5), you’ll be well on your way to full web enablement.
Zend Framework is widely known as having a "use-at-will" architecture, but what does that really mean? We'll explore two scenarios: one where developers use Zend Framework as a base and extend various components to suite their needs and another where developers can extend nonZF code with ZF components. On conclusion, developers will have a necessary enough understanding to extend with and for ZF.
This presentation reviews of the many aspects of PHP performance that can impact day-to-day living. It explores basic concepts for resolution when PHP performance has got you down. The focus is on Zend Server configuration options including, but not limited to: caching, Apache settings, PHP syntax fundamentals, diagnosing bottlenecks, and DB2/SQL optimization.
ZF2 takes a different approach to services; there are several services out there and you should be providing the ability for ZF2 to integrate with this. ZF2 marries services with composer and a different packaging mechanism to ensure that services can be released without a specific framework version. This not only helps the framework but helps you prevent an API changing in between framework releases without having an issue of awaiting a framework release.
A a sneak peek into PHP 7, Zend Server 9, Zend Studio 13.5, and what the combination brings to IBM i users. Available in Q3, sporting a new DB2 extension and lots of new goodies, Zend Server 9 will prove to be the biggest open source story to hit IBM i this year. Once you add the latest Zend Studio release (13.5), you’ll be well on your way to full web enablement.
Zend Framework is widely known as having a "use-at-will" architecture, but what does that really mean? We'll explore two scenarios: one where developers use Zend Framework as a base and extend various components to suite their needs and another where developers can extend nonZF code with ZF components. On conclusion, developers will have a necessary enough understanding to extend with and for ZF.
This presentation reviews of the many aspects of PHP performance that can impact day-to-day living. It explores basic concepts for resolution when PHP performance has got you down. The focus is on Zend Server configuration options including, but not limited to: caching, Apache settings, PHP syntax fundamentals, diagnosing bottlenecks, and DB2/SQL optimization.
ZF2 takes a different approach to services; there are several services out there and you should be providing the ability for ZF2 to integrate with this. ZF2 marries services with composer and a different packaging mechanism to ensure that services can be released without a specific framework version. This not only helps the framework but helps you prevent an API changing in between framework releases without having an issue of awaiting a framework release.
PHP is the top platform for building and modernizing IBM i applications. In this webinar, Erwin discusses how features of the application server can be leveraged to streamline the development process as well as fast-tracking the management of the PHP environment.
This webinar lays the foundation for your PHP app. If you have at least one year of PHP experience, this webinar explains these key building blocks for creating and maintaining enterprise-class applications, mobile services, and third-party libraries. It covers: what makes mission-critical PHP different? (including cloud-based solutions); how to maintain your PHP stack; how to ensure code security; and what to do when your system goes down?
Managing Open Source Software in the GitHub EranexB Inc.
Heather Meeker and Michael Herzog discussed about the latest trends in open source compliance in the GitHub Era.
Key legal issues for software supply chain management in this evolving environment and best practices for open source management.
- Practical issues for software supply chain management in the GitHub Era
- Best practices to avoid claims and reduce risk
- Latest trends for process and tools to manage open source compliance
You will learn the following
- Introduction to Azure Resource Manager Templates and its benefits.
- Provision applications to Azure using a declarative template.
- How to deploy multiple services along with their dependencies using a single template.
- Also, offer the option of splitting up your ARM templates into multiple templates that each describes individual resources.
PHP is the top platform for building and modernizing IBM i applications. In this webinar, Erwin discusses how features of the application server can be leveraged to streamline the development process as well as fast-tracking the management of the PHP environment.
This webinar lays the foundation for your PHP app. If you have at least one year of PHP experience, this webinar explains these key building blocks for creating and maintaining enterprise-class applications, mobile services, and third-party libraries. It covers: what makes mission-critical PHP different? (including cloud-based solutions); how to maintain your PHP stack; how to ensure code security; and what to do when your system goes down?
Managing Open Source Software in the GitHub EranexB Inc.
Heather Meeker and Michael Herzog discussed about the latest trends in open source compliance in the GitHub Era.
Key legal issues for software supply chain management in this evolving environment and best practices for open source management.
- Practical issues for software supply chain management in the GitHub Era
- Best practices to avoid claims and reduce risk
- Latest trends for process and tools to manage open source compliance
You will learn the following
- Introduction to Azure Resource Manager Templates and its benefits.
- Provision applications to Azure using a declarative template.
- How to deploy multiple services along with their dependencies using a single template.
- Also, offer the option of splitting up your ARM templates into multiple templates that each describes individual resources.
2. Dec 23, 2014 # 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
3. Dec 23, 2014 # 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
4. Dec 23, 2014 # 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.
5. Dec 23, 2014 # 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
6. Dec 23, 2014 # 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. Dec 23, 2014 # 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
8. Dec 23, 2014 # 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.
9. Dec 23, 2014 # 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
10. Dec 23, 2014 # 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
11. Dec 23, 2014 # 11
Zend Framework from 10,000 feet
12. Dec 23, 2014 # 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. Dec 23, 2014 # 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. Dec 23, 2014 # 14
$ svn checkout http://framework.zend.com/svn/framework/trunk
• 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
15. Dec 23, 2014 # 15
Installing Zend Framework
• Installing the framework is very easy, 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. Dec 23, 2014 # 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
17. Dec 23, 2014 # 17
Example Controller
• Note: indexAction() is declared abstract in
Zend_Controller_Action, and therefore must be
defined in any Action/Page controller
18. Dec 23, 2014 # 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();
19. Dec 23, 2014 # 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. Dec 23, 2014 # 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>);
21. Dec 23, 2014 # 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
23. Dec 23, 2014 # 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. Dec 23, 2014 # 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
25. Dec 23, 2014 # 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. Dec 23, 2014 # 26
Sending HTML mail is now really easy
27. Dec 23, 2014 # 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. Dec 23, 2014 # 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. Dec 23, 2014 # 29
Using Zend_Search
• Using Zend Search is very easy
• The search engine also boasts a parser for google-like searching: zend php -java
31. Dec 23, 2014 # 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