PHP 6 & The PHP Collaboration Project Present & Future. Zeev Suraski Co-founder & CTO, Zend Technologies Co-architect of PHP

Similar documents
IBM Rational Application Developer for WebSphere Software, Version 7.0

IBM Rational Developer for System z Version 7.5

IBM JZOS Meets Web 2.0

The Now Platform Reference Guide

RAD Studio XE Datasheet

Introduction to XML. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University

Oracle Service Cloud Integration for Developers Ed 1

Introduction to XML 3/14/12. Introduction to XML

THE NEW ERA OF WEB DEVELOPMENT. qooxdoo. Andreas Ecker, Derrell Lipman

Etanova Enterprise Solutions

Tools to Develop New Linux Applications

Oracle Service Cloud Integration for Develope

Unveiling Zend Studio 8.0

Developing Ajax Web Apps with GWT. Session I

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints

Oracle Service Cloud Integration for Developers Ed 1

The course also includes an overview of some of the most popular frameworks that you will most likely encounter in your real work environments.

Web 2.0 Käyttöliittymätekniikat

eclipse rich ajax platform (rap)

The Dojo Ecosystem: How Open-Source and Commercial Succeed Together

1. I NEED TO HAVE MULTIPLE VERSIONS OF VISUAL STUDIO INSTALLED IF I M MAINTAINING APPLICATIONS THAT RUN ON MORE THAN ONE VERSION OF THE.

Pick A Winner! In What Tool Should I Develop My Next App?

Application Integration with WebSphere Portal V7

Oracle Application Development Framework Overview

Eclipse SOA Tooling Platform: Project Overview. An Overview of the Eclipse STP (SOA Tooling Platform) Project

IBM Forms Experience Builder

Cisco Unified Application Designer 2.4

Packaging for Websphere Development Studio was changed with V6R1.

Building modern enterprise applications from scratch: lessons learned DOAG 2014 Dr. Clemens Wrzodek

XML Processing & Web Services. Husni Husni.trunojoyo.ac.id

Using JavaScript on Client and Server with Project Phobos

Tooling for Ajax-Based Development. Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc.

Creating Custom Dojo Widgets Using WTP

GWT and jmaki: Expanding the GWT Universe. Carla Mott, Staff Engineer, Sun Microsystems Greg Murray, Ajax Architect, Sun Microsystems

What is it? What does it do?

JBuilder 2007 Product Tour November 2006

Create-A-Page Design Documentation

"Web Age Speaks!" Webinar Series

What's new in Zend Framework 2.2? by Enrico Zimuel Software Engineer Zend Framework Team

WebSphere MQ Update. Paul Dennis WMQ Development 2007 IBM Corporation

Solution overview VISUAL COBOL BUSINESS CHALLENGE SOLUTION OVERVIEW BUSINESS BENEFIT

WebSphere Puts Business In Motion. Put People In Motion With Mobile Apps

Build Mobile Cloud Apps Effectively Using Oracle Mobile Cloud Services (MCS)

All About Open & Sharing

Getting. Started with. smash. IBM WebSphere. Ron Lynn, Karl Bishop, Brett King

Creating an Online Catalogue Search for CD Collection with AJAX, XML, and PHP Using a Relational Database Server on WAMP/LAMP Server

Delivery Options: Attend face-to-face in the classroom or remote-live attendance.

ActiveVOS Technologies

Overview of Web Application Development

Modern Application Development Featuring Web 2.0 for System z

Delphi XE. Delphi XE Datasheet

Ecocion Facility Management System Alex Anderson Niles Hacking Ryan Shipp June 16, 2015

Distributed Multitiered Application

The goal of this book is to teach you how to use Adobe Integrated

Delivery Options: Attend face-to-face in the classroom or via remote-live attendance.

,

HTML5 Applications Made Easy on Tizen IVI. Brian Jones / Jimmy Huang

Developing Web Applications for Smartphones with IBM WebSphere Portlet Factory 7.0

<Insert Picture Here>

When learning coding, be brave

ENTERPRISE MOBILE APPLICATION DEVELOPMENT WITH WAVEMAKER

Web App Builder: Code-free Development. Adam Ziegler, Esri-Northeast, Local Government Team

Interactive webmaps with ArcGIS. Kristel Meikas, AlphaGIS

We are ready to serve Latest Testing Trends, Are you ready to learn? New Batch Details

Tools for Mobile Web Eclipse Day Paul Beusterien Symbian Foundation August 26, 2010

Front End Programming

(p t y) lt d. 1995/04149/07. Course List 2018

Developing Enterprise Services for Mobile Devices using Rational Software Architect / Worklight

ECLIPSE PERSISTENCE PLATFORM (ECLIPSELINK) FAQ

IBM DB2 Web Query Tool Version 1.3

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

Rich Web Applications in Server-side Java without. Plug-ins or JavaScript

Oracle Developer Day

Oracle Forms and Oracle APEX The Odd Couple

The 60-Minute Guide to Development Tools for IBM Lotus Domino, IBM WebSphere Portal, and IBM Workplace Applications

Upload to your web space (e.g., UCSC) Due this Thursday 4/8 in class Deliverable: Send me an with the URL Grading:

Fast Track Model Based Design and Development with Oracle9i Designer. An Oracle White Paper August 2002

CSCI 201 Google Chrome DevTools

Getting started with WebSphere Portlet Factory V7.0.0

Using Development Tools to Examine Webpages

AJAX Programming Overview. Introduction. Overview


UX400. OpenUI5 Development Foundations COURSE OUTLINE. Course Version: 02 Course Duration: 5 Day(s)

Network Programmability with Cisco Application Centric Infrastructure

Database Driven Web 2.0 for the Enterprise

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX

IBM Research Report. WebRB: A Different Way to Write Web-Applications

Spring Web Services Tutorial With Example In

Zend Framework's MVC Components

An Overview of. Eric Bollens ebollens AT ucla.edu Mobile Web Framework Architect UCLA Office of Information Technology

Standard 1 The student will author web pages using the HyperText Markup Language (HTML)

Instructor s Notes Web Data Management Web Client/Server Concepts. Web Data Management Web Client/Server Concepts

What's New in ActiveVOS 7.1 Includes ActiveVOS 7.1.1

Services Interoperability With Java Technology and.net: Technologies for Web 2.0

describe the functions of Windows Communication Foundation describe the features of the Windows Workflow Foundation solution

Mobile Web from the RPG and Dojo Perspectives

THIS IS ONLY SAMPLE RESUME - DO NOT COPY AND PASTE INTO YOUR RESUME. WE ARE NOT RESPONSIBLE Name: xxxxxx

The Next Generation of Eclipse: e4. Mike Milinkovich Executive Director Eclipse Foundation

Developing Exceptional Mobile and Multi-Channel Applications using IBM Web Experience Factory

1 Introduction. 2 Web Architecture

Transcription:

PHP 6 & The PHP Collaboration Project Present & Future Zeev Suraski Co-founder & CTO, Zend Technologies Co-architect of PHP

PHP 6 Key Improvements Unicode support Polish up OO including tostring() support everywhere Improved SOAP support? (WS-Security, file attachments) Remove legacy junk such as register_globals & safe_mode The future will tell # 2

Internationalization A definition for i18n: The effort to make the Web usable to everyone regardless of their preferred language or geographic location through the effort of making all technologies operable across all languages and writing systems. PHP will support Unicode standard & Zend leading effort Use the IBM ICU library: provides an open, flexible, portable foundation for applications to use for their software globalization requirements. Bulk of core work already completed # 3

Unicode String Literals With unicode_semantics=on, string literals are of Unicode type 1 character may be > 1 byte // unicode_semantics = on $str = "hello world"; // Unicode echo strlen($str); // result is 11 $jp = " "; // Unicode echo strlen($str); // result is 7 To obtain length in bytes one would use a separate function # 4

PHP Collaboration Project Community PHP Framework Best Practices PHP Language Open Source SOA, Web Services, etc. Open IDE # 5

What do we need? SOA & Web Services: Finally software re-use truly seems to work. And not in its previous copy-on-write incarnation. Software re-use works across companies. Increasingly important to support all (popular) forms of Web Services Data is (still) King: Need to support all data (relational, XML, legacy) Data needs to be searchable # 6

What do we need? Rich Interfaces: The world has acknowledged the deployment advantages of the browser. Ajax is a response to the need for a richer and easily deployable interface in the browser. Continue the low barrier to entry: Continue building on PHP s simplicity which has made it a success. Open-source s distribution advantages enables companies to start playing and building on top of technology without a relationship with vendors. # 7

What do we need? Need for Best Practices: It is not trivial to architect, build and deploy stable, secure and high-performing three tier Web apps (Javascript PHP DB) RAD: Time-to-market on the Web is becoming increasingly critical. # 8

The Importance of Simplicity "Things should be made as simple as possible, but no simpler. -- Albert Einstein Simpler is easier to use. Simpler is more stable, and less prone to error. Simpler is more compatible. Simpler is easier to maintain. Plagiarized from http://www.pantos.org/atw/35504.html # 9

Guiding Principles Keep it extremely simple stick to 20%/80% rule and compensate by: Extensibility Use-at-will architecture Configuration-less Cherry pick best-of-breed ideas Showcase current trends in Web development (Web Services, Ajax, Search, Syndication, ) Document development with use-cases Only high quality and necessary components Play nicely with others # 10

How does the PHP Collaboration Project fit in? SOA & Web Services: Zend Framework has a large focus on Web Services Zend_Feed, Zend_Service_* Eclipse (Web Tools Project): WSDL/XSD graphical editors UDDI/WSDL Explorer PHP code completion for WSDL # 11

How does the PHP Collaboration Project fit in? Data is (still) King: Zend Framework: Zend_Db, Zend_Search_Lucene Support for XML databases Eclipse (DTP Project): SQL Editing SQL Visual Query building SQL Debugging # 12

How does the PHP Collaboration Project fit in? Rich Interfaces Zend Framework: Ajax and event model Json, Widgets Eclipse (ATF Ajax Toolkit Framework) Javascript editor Javascript debugger DOM inspector Toolkit specific functionality (Rico, Zimbra, Dojo) Best Practices Zend Developer Zone (devzone.zend.com) Zend Framework # 13

Where are we heading?

RAD Component architecture Both visual and non-visual components Rich-design time experience ala Delphi and Visual Basic Drag&drop of components onto the Web page Component is self-contained incl. design and run-time rendering & property editors IDEs don t have to be hard coded per-component WYSIAWYG Programmatic model # 15

Key issues Differentiating between run-time and designtime rendering Isolation of HTML & component generated HTML Client & server side event model Property editing HTML? Themes Standard CSS as a recommendation to component authors # 16

How does it all work?

Friendly Licenses Zend Framework PHP-like license PHP IDE Eclipse license Using these licenses bares great advantages: Allows commercial use free of charge, no strings attached Attracts developers Licenses are well respected and widely proven # 18

Building the Community Industry-wide collaborative effort led by Zend including ISVs, integrators, experts both from small and large companies including: 100days.de IBM Ning.com php architect Omni TI Security experts (Chris Shiflett) JamboWorks and others # 19

Development Process (Framework) Components designed by small teams Proposals written and reviewed before coding All code starts from scratch Real Life Tests # 20

Quality Assurance Strict adherence to Zend Coding Standards All classes fully unit tested with PHPUnit2 Peer-review and approval of all code # 21

More Examples

ZActiveRecord Declare a class that extends ZActiveRecord for each database table. Create a new instance of the class to make a new row. The fields in the table become properties of the object automatically. INSERT new records or UPDATE existing ones by calling save(). # 23

ZActiveRecord For simple queries, supply the search parameters to one of the find() methods without needing to write SELECT statements in SQL. For more complicated queries, KISS. No large OO-based query builder is provided. Just write the SQL and use findbysql(). Optionally, the ZDbAdapters include a simple tool for building SELECT statements to pass to findbysql(). # 24

ZMail Once the transport has been configured (defaults to SMTP), simply build the email and send() it. In the example above, ZMail automatically builds the multipart email and passes it to the transport, which sends it over a persistent SMTP connection. # 25

ZSearch Both a simple query API and an advanced OO-style query builder are provided. For searching simple words and phrases, use the find() method. Each hit returns a document object. Documents are divided into fields that are chosen at the time of indexing. The documents in the index do not all need to be the same format they may have any mix of fields. # 26

ZSearch Complex query strings may be passed to ZSearch::find(). ZSearch includes a tokenizer and a parser to allows for Google-like query strings to be added to any website. The example above searches all documents of all fields for zend and php but not java. Individual fields may also be specified: -fieldname:content. # 27

Resources Zend Framework - http://framework.zend.com PHP IDE project at Eclipse.org - http://www.eclipse.org/php/ (TBD) Zend Developer Zone - http://devzone.zend.com # 28

Grazie!