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.
PHP Toolkit from Zend and IBM: Open Source on IBM iAlan Seiden
PHP developers on IBM i have a new way to access resources such as RPG and COBOL programs, system commands, data areas, and more, using a new, free, flexible, open source toolkit, supported by Zend. Using IBM's XMLSERVICE toolkit on the back end, it's all open source, enabling a high level of quality and functionality delivered by Zend, IBM, and IBM i community members who take the initiative.
You will learn:
• How your older PHP applications can use the new toolkit with minimal changes, thanks to the Compatibility Wrapper (CW), developed for Zend by Alan
And how to:
• Optimize performance
• Develop PHP on your laptop (Windows, Linux) or in the "cloud" and deploy to the IBM i
With suggestions for:
• Security
• Troubleshooting
• Tips and tricks to work with your IBM i in new ways
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.
PHP Toolkit from Zend and IBM: Open Source on IBM iAlan Seiden
PHP developers on IBM i have a new way to access resources such as RPG and COBOL programs, system commands, data areas, and more, using a new, free, flexible, open source toolkit, supported by Zend. Using IBM's XMLSERVICE toolkit on the back end, it's all open source, enabling a high level of quality and functionality delivered by Zend, IBM, and IBM i community members who take the initiative.
You will learn:
• How your older PHP applications can use the new toolkit with minimal changes, thanks to the Compatibility Wrapper (CW), developed for Zend by Alan
And how to:
• Optimize performance
• Develop PHP on your laptop (Windows, Linux) or in the "cloud" and deploy to the IBM i
With suggestions for:
• Security
• Troubleshooting
• Tips and tricks to work with your IBM i in new ways
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.
Strategic Modernization with PHP on IBM iAlan Seiden
You know you need to modernize your IBM i applications, but where to start? In this talk, Alan will inspire you with creative examples of modernization on IBM i that provided a strong return on investment while controlling risk. Learn how to choose projects with the best return on investment, and then complete them with confidence. We will lead an honest discussion of the most effective strategies. Can RPG programmers learn PHP? Yes. Can new PHP developers be integrated into an existing IT department? Yes. Both approaches have merit. See creative ways to use PHP, not only to create new GUI front-ends, but to enhance existing interactive RPG programs. Please your users and business people by incorporating PHP into your shop.
Heather Meeker and Michael Herzog discuss the primary open source license obligations and some practical approaches for compliance with attribution and redistribution obligations.
Browser tools that make web development easierAlan Seiden
A departure from my usual PHP talks, I discussed browser-based tools that help with client-side tasks such as performance diagnostics, page analysis, HTTP flow analysis, the ability to step through javascript, and much more. Developers can work smarter with downloadable browser tools.
Web services on IBM i with PHP and Zend FrameworkAlan Seiden
Case study of connecting to Windows-based SOAP server (UPS Roadnet) with a client running on IBM i with PHP and Zend Framework. Lots of tips and help to get started.
Running open source PHP applications on you IBM iProximity Group
At International i-Power 2015, Pete Samways presented a hands-on workshop entitled 'Running open source products on your IBM i'.
As the IBM i is a more open platform than it has ever been, it has become an excellent platform for running and developing web and mobile applications. In this practical workshop, attendees were guided through the process of installing and running open source PHP applications on their IBM i such as Drupal, Magento, WordPress, Mantis Bug Tracker and Sugar CRM. The session included live and guided demonstrations of installing Zend Server, Zend DBi and the applications themselves from a .zpk or from source.
Download the slides from the workshop to find out about more about Zend Server, some top tips for configuring Zend Server, what open source is, why PHP for open source and the advantages of PHP on the IBM i.
From Zero to ZF: Your first zend framework project on ibm iAlan Seiden
Step by step, I'll demonstrate the creation of a Zend Framework (ZF) project, with special attention to configuring the db2 adapter so it works well with IBM i.
This is the slide deck of the Zend webinar "A tale of two toolkits".
Have you heard of the exciting new open source XML Toolkit currently being developed in collaboration between IBM and Zend? Are you curious about how it works and what you need to get started? Are you aware that it is available in Zend Server 5.1 as a beta and soon to be released as GA? Well rest assured, Mike Pavlak will fill you in on the details and a little bit more.
You can watch the webinar at http://bit.ly/q9byHS, after a short registration.
Redundancy Management in Heterogeneous Wireless Sensor NetworksSaeid Hossein Pour
Communication security and reliability are two important issues in any network. A typical communication task in a wireless sensor network is for every sensor node to sense its local environment and, upon request, sends data of interest back to a base station (sink). Due to the distributed nature of these networks and their deployment in remote areas, these networks are vulnerable to numerous security threats that can adversely affect their proper functioning. This problem is more critical if the network is deployed for some mission-critical applications such as a tactical battlefield. Due to resource constraints in the sensor nodes like processing power, memory, bandwidth and power sources, traditional security mechanisms with large overhead of computation and communication are infeasible in WSNs.
Security in sensor networks is, therefore, a particularly challenging task. The main requirements of wireless sensor networks are to extend the network lifetime and energy efficiency as well as provide a secure and reliable connection.
In this project redundancy management of heterogeneous wireless sensor networks (HWSNs) is proposed, to answer user queries in the presence of unreliable and malicious nodes. The objective of the redundancy management is to exploit tradeoff between energy consumption against the gain in quality of service (QoS) such as reliability, timeliness and security to maximize the system lifetime. The presence of heterogeneous nodes in a sensor network is known to increase network reliability and lifetime. Selecting multipath routing can yield a variety of benefits such as fault tolerance, increased bandwidth and improved security. Furthermore, the best redundancy level for path redundancy and source redundancy is analyzed and the best intrusion detection system (IDS) is provided.
Strategic Modernization with PHP on IBM iAlan Seiden
You know you need to modernize your IBM i applications, but where to start? In this talk, Alan will inspire you with creative examples of modernization on IBM i that provided a strong return on investment while controlling risk. Learn how to choose projects with the best return on investment, and then complete them with confidence. We will lead an honest discussion of the most effective strategies. Can RPG programmers learn PHP? Yes. Can new PHP developers be integrated into an existing IT department? Yes. Both approaches have merit. See creative ways to use PHP, not only to create new GUI front-ends, but to enhance existing interactive RPG programs. Please your users and business people by incorporating PHP into your shop.
Heather Meeker and Michael Herzog discuss the primary open source license obligations and some practical approaches for compliance with attribution and redistribution obligations.
Browser tools that make web development easierAlan Seiden
A departure from my usual PHP talks, I discussed browser-based tools that help with client-side tasks such as performance diagnostics, page analysis, HTTP flow analysis, the ability to step through javascript, and much more. Developers can work smarter with downloadable browser tools.
Web services on IBM i with PHP and Zend FrameworkAlan Seiden
Case study of connecting to Windows-based SOAP server (UPS Roadnet) with a client running on IBM i with PHP and Zend Framework. Lots of tips and help to get started.
Running open source PHP applications on you IBM iProximity Group
At International i-Power 2015, Pete Samways presented a hands-on workshop entitled 'Running open source products on your IBM i'.
As the IBM i is a more open platform than it has ever been, it has become an excellent platform for running and developing web and mobile applications. In this practical workshop, attendees were guided through the process of installing and running open source PHP applications on their IBM i such as Drupal, Magento, WordPress, Mantis Bug Tracker and Sugar CRM. The session included live and guided demonstrations of installing Zend Server, Zend DBi and the applications themselves from a .zpk or from source.
Download the slides from the workshop to find out about more about Zend Server, some top tips for configuring Zend Server, what open source is, why PHP for open source and the advantages of PHP on the IBM i.
From Zero to ZF: Your first zend framework project on ibm iAlan Seiden
Step by step, I'll demonstrate the creation of a Zend Framework (ZF) project, with special attention to configuring the db2 adapter so it works well with IBM i.
This is the slide deck of the Zend webinar "A tale of two toolkits".
Have you heard of the exciting new open source XML Toolkit currently being developed in collaboration between IBM and Zend? Are you curious about how it works and what you need to get started? Are you aware that it is available in Zend Server 5.1 as a beta and soon to be released as GA? Well rest assured, Mike Pavlak will fill you in on the details and a little bit more.
You can watch the webinar at http://bit.ly/q9byHS, after a short registration.
Redundancy Management in Heterogeneous Wireless Sensor NetworksSaeid Hossein Pour
Communication security and reliability are two important issues in any network. A typical communication task in a wireless sensor network is for every sensor node to sense its local environment and, upon request, sends data of interest back to a base station (sink). Due to the distributed nature of these networks and their deployment in remote areas, these networks are vulnerable to numerous security threats that can adversely affect their proper functioning. This problem is more critical if the network is deployed for some mission-critical applications such as a tactical battlefield. Due to resource constraints in the sensor nodes like processing power, memory, bandwidth and power sources, traditional security mechanisms with large overhead of computation and communication are infeasible in WSNs.
Security in sensor networks is, therefore, a particularly challenging task. The main requirements of wireless sensor networks are to extend the network lifetime and energy efficiency as well as provide a secure and reliable connection.
In this project redundancy management of heterogeneous wireless sensor networks (HWSNs) is proposed, to answer user queries in the presence of unreliable and malicious nodes. The objective of the redundancy management is to exploit tradeoff between energy consumption against the gain in quality of service (QoS) such as reliability, timeliness and security to maximize the system lifetime. The presence of heterogeneous nodes in a sensor network is known to increase network reliability and lifetime. Selecting multipath routing can yield a variety of benefits such as fault tolerance, increased bandwidth and improved security. Furthermore, the best redundancy level for path redundancy and source redundancy is analyzed and the best intrusion detection system (IDS) is provided.
2. Apr 11, 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. Apr 11, 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. Apr 11, 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. Apr 11, 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. Apr 11, 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. Apr 11, 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. Apr 11, 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. Apr 11, 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. Apr 11, 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
12. Apr 11, 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. Apr 11, 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. Apr 11, 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. Apr 11, 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. Apr 11, 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. Apr 11, 2014 # 17
Example Controller
• Note: indexAction() is declared abstract in
Zend_Controller_Action, and therefore must be
defined in any Action/Page controller
18. Apr 11, 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. Apr 11, 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. Apr 11, 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. Apr 11, 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. Apr 11, 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. Apr 11, 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. Apr 11, 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. Apr 11, 2014 # 26
Sending HTML mail is now really easy
27. Apr 11, 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. Apr 11, 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. Apr 11, 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. Apr 11, 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