concrete5 & Zendstatic.zend.com/topics/concrete5-zend-slides.pdf · concrete5 & Zend Framework...

23
concrete5 & Zend Framework Andrew Embler CTO, concrete5 Adding Enterprise Functionality to Existing PHP Web Applications

Transcript of concrete5 & Zendstatic.zend.com/topics/concrete5-zend-slides.pdf · concrete5 & Zend Framework...

Page 1: concrete5 & Zendstatic.zend.com/topics/concrete5-zend-slides.pdf · concrete5 & Zend Framework Andrew Embler CTO, concrete5 Adding Enterprise Functionality to Existing PHP Web Applications

concrete5 & Zend Framework

Andrew Embler

CTO, concrete5

Adding Enterprise Functionality to Existing PHP Web Applications

Page 2: concrete5 & Zendstatic.zend.com/topics/concrete5-zend-slides.pdf · concrete5 & Zend Framework Andrew Embler CTO, concrete5 Adding Enterprise Functionality to Existing PHP Web Applications

PHP is a hero...

PHP

FastDevelopment

SlowDevelopment

Scales Poorly Scales Well

Ruby

Java

dotNET

ColdFusion

Page 3: concrete5 & Zendstatic.zend.com/topics/concrete5-zend-slides.pdf · concrete5 & Zend Framework Andrew Embler CTO, concrete5 Adding Enterprise Functionality to Existing PHP Web Applications

...but it doesn’t do everything*

* Yet.

MVC

JSON

Localization CAPTCHA

RSS ATOM MIME

Logging

PDF

LuceneCaching

Translation

XML/RPC

OAuth LDAPOpenID

Queue

InfoCard BarCode GData

Page 4: concrete5 & Zendstatic.zend.com/topics/concrete5-zend-slides.pdf · concrete5 & Zend Framework Andrew Embler CTO, concrete5 Adding Enterprise Functionality to Existing PHP Web Applications

ProblemSupporting enterprise standards in web applications can easily overwhelm small teams.

Page 5: concrete5 & Zendstatic.zend.com/topics/concrete5-zend-slides.pdf · concrete5 & Zend Framework Andrew Embler CTO, concrete5 Adding Enterprise Functionality to Existing PHP Web Applications

SolutionZend Framework helps PHP developers extend their applications substantively, quickly and reliably.

Page 6: concrete5 & Zendstatic.zend.com/topics/concrete5-zend-slides.pdf · concrete5 & Zend Framework Andrew Embler CTO, concrete5 Adding Enterprise Functionality to Existing PHP Web Applications

• Commercial CMS that went Open Source

• PHP/MySQL/Apache

• Compelling in-context editing UI

• Small core team

• Hundreds of add-ons

• Huge horizontal market

Page 7: concrete5 & Zendstatic.zend.com/topics/concrete5-zend-slides.pdf · concrete5 & Zend Framework Andrew Embler CTO, concrete5 Adding Enterprise Functionality to Existing PHP Web Applications

• Code quality

• Documentation and code samples

• Selective inclusion of components

• Easy to experiment

• Endorsed by Zend

Why?

Page 8: concrete5 & Zendstatic.zend.com/topics/concrete5-zend-slides.pdf · concrete5 & Zend Framework Andrew Embler CTO, concrete5 Adding Enterprise Functionality to Existing PHP Web Applications

Real Problem : Email

• All web applications deal with it

• Implemented using a concrete5 helper

SENDING MAIL IN CONCRETE5

Page 9: concrete5 & Zendstatic.zend.com/topics/concrete5-zend-slides.pdf · concrete5 & Zend Framework Andrew Embler CTO, concrete5 Adding Enterprise Functionality to Existing PHP Web Applications

Real Problem : Email

+ Send plain text email

+ Send mail using local mail server.

Page 10: concrete5 & Zendstatic.zend.com/topics/concrete5-zend-slides.pdf · concrete5 & Zend Framework Andrew Embler CTO, concrete5 Adding Enterprise Functionality to Existing PHP Web Applications

Real Problem : Email

+ Send plain text email

+ Send mail using local mail server

+ Send HTML mail

+ Send mail using external mail server

+ Attach files to outbound emails

+ Import mail from POP and IMAP servers

+ Import mail attachments

+

Page 11: concrete5 & Zendstatic.zend.com/topics/concrete5-zend-slides.pdf · concrete5 & Zend Framework Andrew Embler CTO, concrete5 Adding Enterprise Functionality to Existing PHP Web Applications

Real Problem : Email

• Completely backward compatible

• Implementation: from start to testing within 1 day.

• Creates add-on opportunities for developers

+

Page 12: concrete5 & Zendstatic.zend.com/topics/concrete5-zend-slides.pdf · concrete5 & Zend Framework Andrew Embler CTO, concrete5 Adding Enterprise Functionality to Existing PHP Web Applications

Real Problem : Translation

<?php print t(‘Hello World!'); ?>

Hallo Welt!

Bonjour Monde!

Hello Verden!

Page 13: concrete5 & Zendstatic.zend.com/topics/concrete5-zend-slides.pdf · concrete5 & Zend Framework Andrew Embler CTO, concrete5 Adding Enterprise Functionality to Existing PHP Web Applications

Real Problem : Translation

+ Translate the core.

+ Formats supported: Gettext

+ Fast

- Unreliable

- No add-on translation

Page 14: concrete5 & Zendstatic.zend.com/topics/concrete5-zend-slides.pdf · concrete5 & Zend Framework Andrew Embler CTO, concrete5 Adding Enterprise Functionality to Existing PHP Web Applications

Real Problem : Translation

+ Translate the core

+ Translate add-ons

+ Share translations

+ Formats supported: Gettext, Array, CSV, TMX, INI

+ Reliable

+ Consistent Date Localization

- Resource Usage

+

Page 15: concrete5 & Zendstatic.zend.com/topics/concrete5-zend-slides.pdf · concrete5 & Zend Framework Andrew Embler CTO, concrete5 Adding Enterprise Functionality to Existing PHP Web Applications

Real Problem : Translation

• Completely backward compatible

• addTranslate() is almost magical

• Implementation: entire existing localization framework replaced in half a day

+

Page 16: concrete5 & Zendstatic.zend.com/topics/concrete5-zend-slides.pdf · concrete5 & Zend Framework Andrew Embler CTO, concrete5 Adding Enterprise Functionality to Existing PHP Web Applications

Real Problem : Caching

New software applications start lean.

Page 17: concrete5 & Zendstatic.zend.com/topics/concrete5-zend-slides.pdf · concrete5 & Zend Framework Andrew Embler CTO, concrete5 Adding Enterprise Functionality to Existing PHP Web Applications

Real Problem : Caching

More features = longer load times, slower execution

Page 18: concrete5 & Zendstatic.zend.com/topics/concrete5-zend-slides.pdf · concrete5 & Zend Framework Andrew Embler CTO, concrete5 Adding Enterprise Functionality to Existing PHP Web Applications

QuickTime™ and aGIF decompressor

are needed to see this picture.

Real Problem : Caching

Solution: Caching stores frequently used data for quick access

Page 19: concrete5 & Zendstatic.zend.com/topics/concrete5-zend-slides.pdf · concrete5 & Zend Framework Andrew Embler CTO, concrete5 Adding Enterprise Functionality to Existing PHP Web Applications

Real Problem : Caching

+ File

+ eAccelerator

- Rushed development

Page 20: concrete5 & Zendstatic.zend.com/topics/concrete5-zend-slides.pdf · concrete5 & Zend Framework Andrew Embler CTO, concrete5 Adding Enterprise Functionality to Existing PHP Web Applications

Real Problem : Caching

+ File

+ XCache

+ APC

+ Zend Platform

+ SQLite

+ memcached

+ Optionally use two Cache Levels

+ Works with Zend_Translate

+ Highly configurable

+ Highly maintained

+

Page 21: concrete5 & Zendstatic.zend.com/topics/concrete5-zend-slides.pdf · concrete5 & Zend Framework Andrew Embler CTO, concrete5 Adding Enterprise Functionality to Existing PHP Web Applications

Real Problem : Caching

• Completely backward compatible

• Implementation: Original Cache? Weeks. Zend_Cache? 2 days

+

Page 22: concrete5 & Zendstatic.zend.com/topics/concrete5-zend-slides.pdf · concrete5 & Zend Framework Andrew Embler CTO, concrete5 Adding Enterprise Functionality to Existing PHP Web Applications

The Result

• Fewer bug reports

• Fewer third party libraries/licenses

• Less time spent on problems unrelated to concrete5

• Business & Enterprise interest in concrete5

• Extreme gratitude

Page 23: concrete5 & Zendstatic.zend.com/topics/concrete5-zend-slides.pdf · concrete5 & Zend Framework Andrew Embler CTO, concrete5 Adding Enterprise Functionality to Existing PHP Web Applications

The Future

• Exploring further integration opportunities

• Zend Framework first, other libraries second

• Increased interest in Zend Platform as a whole