A (Lengthy) Look Back at PHP in 2005

Well, here it is, the end of another year and it’s times like these that it’s always fun to take a look back to where we’ve come from and how far we’ve made it on various projects. The PHP community has come so far from those early days of January, and I thought I’d take my own look back via some of the news posts that I’ve made over on PHPDeveloper.org in the past year (almost 2000 of em) and see which ones stuck out. So, bear with me on this – I know I’ll miss a few of the biggies, but I’m going to try to highlight things in each month that really effected the community as a whole.

If you like it, give it a digg to share it with more of the community.

January:
Of course, 2005 started off with its share of ideas about the PHP community and where it’s been (and where it’s going). Derick Rethans took the opportunity to look back at PHP in 2004, and the SitePoint PHP Blog (Dynamically Typed) looked forward to this year with a few predictions of their own. The PEAR project started off the year with a bang, releasing version 1.4.0a1 of the base libraries. The php|architect conference, php|tropics, had been announced near the end of 2004, but more details came to us from them about the conference – the wheres, whys, and hows. Tiobe Software noted that PHP had been officially named the Programming Language of 2004 (according to their index). Unfortunately, it’s gotten bumped down a few spots for this year.

Zend announced their “Zend Platform” software, a “robust PHP production environment” combining some of their already existing software into a neat little package. They also continued to push their Certification (Zend Certified Engineer) with the help of a new practice certification book with real examples of the types of questions from the test. More big Zend news came later in the month when it was announced that both Intel and SAP were going to invest in the company.

Two other unrelated items were also announced – the release of MySQL version 4.1.9 and the posting of the schedule for the International PHP Conference 2005 (speakers and sessions).

February:
This month saw people really diving into the latest PHP release, 5.1, and included highlights from Davey Shafik on the subject. There was a huge push on security in PHP applications only further spurred on by the break-in on the phpBB website (and lockout of every developer). Everyone from Chris Shiflett to Robert Peake was talking about the best practices to follow to keep you and your site safe. Wez Furlong released a beginning beta of his PDO (PHP Data Objects) functionality and it was announced that PEAR 1.4 was “on the horizion” by Tobias Schlitt. php|architect announced their webcast series, php|symphony and gave more updates for the php|tropics conference.

IBM announced that they were going to work with the core PHP developers in some collaborations to help strengthen the PHP community. There were all sorts of opinions passed around about this collaboration, including some from PHP Magazine. Several PHP developers also really started looking around this month and noticing something interesting about the community – the adoption rate for PHP5 was much slower than previous versions. With all of the new features (and some things that broke), people seemed hesitant to make the jump up to this new version.

Also, the latest version (at the time) of the popular PHP-based blogging package, WordPress, was released – version 1.5.

March:
This month, the SitePoint PHP blog shared some opinions on an ever-present struggle in the online programming world – ASP versus PHP, and Zend made an announcement about their upcoming conference – the Zend/PHP Conference & Expo in California. Other conference news, such as the reminder of PHP Quebec 2005, the announcement of the International PHP Conference – Spring Edition, and a call for papers for the PHP West conference were posted. March also marked the public start of one of the most popular web technologies to come along lately – Ajax – and sites like PHP Everywhere wondered (at that time) if it would really catch on. Indicthreads had yet another programming language comparison in the form of a look at whether Java CMS systems could really compare to the massive amount of PHP-based ones out there. In the start of another trend, Chris Shiflett started looking at testing applications with two different tools Apache-Test and SimpleTest.

Three big stories happened this month as well – a release candidate for PHP 5.0.4 was posted (RC2), the dowload number for the base PEAR packages passed the ten million mark, and everyones favorite web server celebrated ten great years of development.

April:
The beginning of this month saw the end of the PHP Quebec 2005 conference, with several blogger looking back at the event, including Jason Lotito, Tobias Schlitt, Chris Shiflett, Sean Coates, and Derick Rethans. It was also announced this month that NASA and Zend were “teaming up” to provide the agency with effective tools to make their lives easier (sorry, no shuttles run on PHP – heh). The PHP Security Consortium also announced that they were going to start a newsletter with various security topics and information on a regular basis. Greg Beaver, that huge proponent of PEAR, also announce that the PHP_Archive package was gaining momentum and had a promising future ahead of it. He also looked at whether it was better to “bundle or PEAR” your applications.

Via DynamicWebPages.de, there was a note about the training classes that Zend was now offering for their certification. You could take the class, be prepared for the exam, and get a discount on taking it as well. On the topic of training, the New York PHP Group announced that they were going to offer people in the area (or whoever wanted to come in) PHP training in a two-day session.

May:
At the beginning of May, the International PHP Conference 2005 was in full swing, and several people were blogging right from the conference, including Sebastian Bergmann (who was also a speaker – “PHP5 – A Year After”). PHP Magazine even had a “blogging from the floor” section on their site where various bloggers contributed their own posts. This was followed up by several of the bloggers/presenters posting photos of the event their roundups and the slides from their talks (including Ben Ramsey and Derick Rethans). This month also saw the start of another conference – the php|tropics conference in Cancun hosted by php|architect. Soon after, other bloggers also posted their own wrapups of this conference (Lukas Smith, John Coggeshall, Andrei Zmievski, Derick Rethans, Jason Sweat) and slides from their presentations.

Davey Shafik posted a wonderful announcement on his blog this month as well – the PHP_Archive package, version 0.5.0 was now live and posted for all to use and abuse. Greg Beaver also mentioned that the next version of PEAR (1.4.0) was not “too far off”. He later released a version of the PEAR_PackageFile2Manager package as well. php|architect also announced their latest webcast in their series – “Tackling the PHP Job Market”.

May was also the month that the first ever PHP-related podcast went on the air. Marcus Whitney made a post on hsi blog about the idea and began working on his first show. Later in the month, php|architect had their Ajax webcast with Joshua Eichorn (author of the HTML_AJAX PEAR package) and psoted the resulting audio and slides for everyone to enjoy. There was also a post on the ZDNet site in Australia with an opinion from the IBM camp that “LAMP users need to grow up” (talking specifically about the “youngness” of most PHP-based applications).

June:
As Ajax continued to gain steam in the online community, it became more and more apparent that keeping the Ajax news and the PHP news separate was probably a good thing – so I founded PHPDeveloper.org’s sister site, AjaxDeveloper.org. It uses the same engine and everything, the focus is just different. Announcements related specifically to Ajax were moved over there, and everything was PHP again here. This month also saw a facelift for PHPDeveloper.org as well – a move to a cleaner, news-centric look without a lot of the other features (that never really caught on) in the mix. The last of the slides/wrapups from the php|tropics conference came trickling in (via Marco Tabini) and the call for papers for the 2005 International PHP Conference was posted.

Derick Rethans made note on his blog this month that the branch off to PHP 4.4 had been made and things were progressing nicely from there. php|architect made the announcement of their latest conference offerings, the php|works and web|works conferences, appealing to both the PHP side and the general web developers out there. The Pro-PHP Podcast (from Marcus Whitney) posted its first show – an interview with the man behind PDO, Wez Furlong.

With PHP5 already out in the wild and developers hungry for more, work on PHP 5.1.0 was pushed even further, and the Beta 1 was posted near the beginning of the month. People began blogging about what the improvements were going to be and what new features it would contain. Later in the month, the Beta 2 was posted as well. The latest release candidate for the PHP 4.4.x series was also posted – PHP 4.4.0RC1.

There was focus on a lot of different things through out this month, including: unit testing, a collaboration between Zend and PayPal on the PEAR::SOAP project, the introduction of ThinkPHP Press, work on Services_Trackback (from Tobias Schlitt), and the joining up of PHPDeveloper.org with the Pro-PHP Podcast to further its development (and even do a few shows, such as episode #3, the first PHP-related newscast).

The big news this month, however was that PHP was officially turning ten – it had been ten years since Rasmus first cobbled together those scripts to help him manage his pages easily, and it was celebrated with a cake and a CD containing every version of PHP they could get their hands on. Bloggers all posted their thoughts on the occasion, and even looked back at their own history of PHP development, talking about the whens and hows of how they were introduced.

July:
The beginning of July saw even more development on the Ajax front, and several Ajax and PHP frameworks started to surface. ParticleTree.com posted their look at some of them, including some of the toolkits in the process. The PHP Security Consortium started something that is still very helpful today – the posting of the SecurityFocus summaries for PHP-related security issues. These newsletters contain the various exploits and what software they reference to. The latest show in the Pro-PHP Podcast was posted – another news show, talking about the news for that week, as posted on PHPDeveloper.org. Security was brought back to the forefront, and articles from PHPBuilder.com and IBM developerWorks helped to reinforce that aspect.

Later, the PHP team released the first in the 4.4.x series – PHP 4.4.0 – on the 11th. The latest Beta of PHP 5.1.0 was posted as well – Beta 3. Zend also announced thier latest project, the Zend Network, a resting place for the Zend Core – a development/production environment fully supported by Zend. Davey Shafik also announced this month the start of development of his own framework project, Cerebral Cortex. Joshua Eichorn also announced his own project, the HTML_AJAX PEAR package – a blend of PHP and Ajax that makes it easy for any user to take advantage of the combination of both. The International PHP Conference posted their listing of speakers and sessions for their 2005 conference. The Pro-PHP Podcast published its latest, a roundtable session with people like Aaron Wormus and Ben Ramsey. The folks over at Oracle also published a podcast this month, taking an inside look at the Zend Core software for Oracle connections. Wez Furlong made the announcement of the release of his PDO libraries via the PECL repository to make it simple for anyone to grab and use.

Marco Tabini announced a huge PHP-centric project that he’d been developing – the BeebleX search engine – a PHP search that goes through various sites, newsgroups, and other resources to pull in every bit of information it can on your given topic. Of course, there were a few bloggers who posted opinions after its launch, including John Coggeshall. Another very popular item this month was the Ajax tutorial what Rasmus posted, a “30 second Ajax tutorial” that provided a bare-bones look at how to use PHP and Ajax together to do something simple. Finishing up the month was a note about a contest that APress was putting on to generate Mandelbrot fractals in the language of your choice – which eventually would yield a PHP winner (in its category).

August:
Adam Trachtenberg started off the month with his tutorial on integrating the eBay API with PHP using some of the latest features that PHP5 had to offer (and a little Ajax on the side). php|architect had reminders about some of its training programs that it offers – a look at “PHP Essentials” and “Professional PHP Development”. There was a Call for Papers from the International Open Source Database Conference group, and some photos posted from the previous OSCON by a PHPer that attended. Joshua Eichorn was looking for votes for his HTML_AJAX package to try to get it into the PEAR repository.

The Register posted an article with the title “Is the Web’s Love Affair with PHP Over?”, talking about some of the recent issues that had popped up with breaking backwards compatibility and the slow adoption rate that PHP5 has seen. The Pro-PHP Podcast posted a new kind of show, one involving one of the big proponents of security in PHP applications, Chris Shiflett – “Ask Chris”. Later in the month, another show would be posted, an interview with Paul Jones (previously of the Solar framework, now with Zend). PHP 5.1RC1 was released (by Ilia) and PEAR 1.4.0 went into a feature freeze before its release. php|architect also announced their latest book this month – the “Guide to PHP Security”.

Zend celebrated a big milestone this month as well – the one year anniversary of their Zend Certification program. They celebrated by having all sorts of special promotions and offerings for those wanting to take the exam. Several events, both on location and online, happened this month as well – the Oracle and PHP Installfest at Linux World and the PEAR Online Workshop (involving Tobias Schlitt). In PEAR related items, Davey Shafik looked at the future of PHP and PEAR, and Greg Beaver announced the working version of go-pear.phar (and that PHP_Archive works in PHP 5.1.0+).

August also saw some of the more realisitc talk about the next leap in PHP’s evolution – PHP version 6 – and some of the features/fixes that would come with it. Rasmus even posted his “wish list” for the version, really sparking off a huge discussion on what it should contain (on the php-dev mailing list). Chris Shiflett also blogged about it, stating how excited he was that some of these things were already being discussed. Others that mentioned it were the SitePoint PHP Blog and Pierre.

September:
At the beginning of September, the Pro-PHP Podcast started the month out with a new episode – an interview with Davey Shafik (of the Cerebral Cortex project). Also this month, with the turmoil that happened with the Mambo project and the resulting split that came from it, the group that split off officially announced their version of the popular portal, Joomla! This was also the time for some rough weather for a lot of the United States, and getting into the spirit of giving, php|architect set up an ordering system for a book of thiers where the profits from the sales all went to help the hurricane victims (they raised over five-thousand dollars). And, speaking of books, Chris Shiflett announced that he had finished writing his upcoming book, the Essential PHP Security guide from O’Reilly.

The PHP group released the latest in the PHP5 series this month as well – PHP 5.0.5. An updated Oracle extension was also included in the PECL library for those that wanted to grab it. Time grew closer for the Zend/PHP Conference, and Zend encouraged people to sign up to come to this great event. They also released the latest Beta for their Studio software, version 5.

The Pro-PHP podcast posted a new show, another interview – this time with Greg Beaver talking about the “PEAR Revolution”. Blog coverage for the php|works/web|works conference started, and people like Davey Shafik, Wez Furlong, Derick Rethans, and Ilia Alshanetsky all told things from their points of view. A new PEAR-related site was launched too – uPEAR.com – a PEAR channel aggregator in an effort to provide people with a more central resource for the various PEAR channels springing up out there. Along that same line, the latest version of PEAR was also released – the “long time coming” version 1.4.0.

The Zend folks posted their listing of the talks/sessions that were going to happen later in the year at their Zend/PHP Conference (and Expo), and php|architect announced the offering of their “Design Patterns with PHP” webcast. The APress fractal contest saw a PHP winner (in its category) – Mathias Helm. The SecurityFocus Summaries from the PHP Security Consortium were in full swing, and there was some talk about comparing an up and coming language/framework, Ruby, to PHP from more than one source. Companies started looking more and more at PHP, wondering things on both sides like “what’s the total cost?” and “why isn’t PHP the natural successor to Java?”

October:
October was a huge month of happenings in the PHP community – starting off with a push concering input filtering (and script security), the adoption rate of PHP5 still being somewhat stagnant, and a “year of confusion” about what the pros and cons of this latest PHP version were all about. Christian Wenz made the announcement of the release of the PHP Phrasebook being published (by Sams Publishing), and the Forum PHP conference (in Paris) was announced. Of course, one of the largest announcements this month was the huge “make your own mashup” site, Ning. The PHP-based application provides a simple method for users to create apps that combine the features of more than one application quickly and easily.

Sebastian Bergmann announce the release of the PHPUnit Pocket Guide, a complete resource for those dealing with one of the community’s most popular unit testing frameworks. Later in the month, the latest version of the PHPUnit software would also be released – version 2.3. Zend also offered a (limited time) t-shirt offer to commemorate the ten year birthday celebration of PHP this year. The latest version of PHP in the 4.4.x series, a release candidate, was posted this month, too – PHP 4.4.1RC1. The Pro-PHP Podcast was one of the featured podcasts on iTunes for a bit this month, as they focused on technology podcasts on the main page. It even broke into the Top 100 for a while there.

Chris Shiflett’s book, Essential PHP Security, finally hit the shelves with a great reception from the PHP community. Though smaller in size, it covers just about every topic you can imagine and has the information for each boiled down to only the needed information. Matthew O’Phinney also posted this review of one of the other PHP security related titles, php|architect’s Guide to PHP Security. An update was made to the 5.x line of PHP development as well – the latest release candidate was posted, PHP 5.1.0RC3. The Apache web server project reached a new landmark record this month – over 50 million sites out there are using it.

Of course, one of the major announcements from this month (one thats effects are still being felt) was the Zend Collaboration Project (as announced at their Zend/PHP Conference). Zend combined with other companies to create a foundation for the further development of PHP on various different levels. They also joined with the Eclipse project to work up a collaboration between their resources and Eclipse’s editor. Zend launched a website to provide information about the Collaboration to the general community, and announced that another aspect of the project was going to be a standardized framework (which we’ve commented on quite a bit). This caused quite a sitr in the community, and caused several developers to share some of their ideas on the matter – including Jackson Miller, Wez Furlong, Andi Gutmans (who dispelled some runmors about the framework) and this blog. Several people also posted summaries on some of the other aspects of the conference as well as some photos taken there.

The month was wrapped up with the release of PHP 5.1.0RC4 and the introduction of the Mayflower/ThinkPHP PHP Support Hotline.

November:
The start of this month saw the latest stable release of PHP in the 4.4.x family – PHP 4.4.1. Joshua Eichorn kept up development of his PEAR package, HTML_AJAX, and Wez Furlong released the latest candidate for his PDO software, version 1.0RC2. With rumors and other infromation flying around about the Zend Collaboration Project and the resulting framework, php|architect decides to have a new webcast with one of the people close to the heart of things, Andi Gutmans.

Rasmus Lerdorf also posted a widely popular mini-app over on his site, a combination (mashup) of geocoding a location and plotting it on the newly released Yahoo Maps API (and Maps site). The PHPUnit Pocket Guide was released for free from Sebastian Bergmann and was made available online. The latest version of the Zend Studio software was released – version 5, and the PHPCommunity.org site published their latest Gazette, Issue #3. The Pro-PHP Podcast posted their latest episode, an interview with a developer (Kelly Taylor) concering the Zend Certification. It dealt with ideas and feelings from both sides of the Zend exam – having taken it and looking at taking it. More opinions on the Zend Framework project were posted by Henri Bergius and Marco Tabini.

Davey Shafik posted his review of Chris Shiflett’s “Essential PHP Security” book, and Aaron Wormus gave his views on the PHPUnit Pocket Guide in a new post on his blog. As support and use of the Ajax technology becomes larger and larger, a report was cited that PHP and Ajax were the most popular combination for Ajax-enabled site development. Some talk about the International PHP Conference was starting up, and a Call for Papers was issued later in the month. PHP itself saw the latest release candidates in its development: for the 5.x series – PHP 5.1.0RC5, and PHP 4.4.2RC1. Later in the month, PHP version 5.1.0 (final) was posted with several new features and advantages included. Unfortunately, there were also some rather large bugs included to. This prompted the PHP development crew to quickly update things with the release of PHP 5.1.1. A tentative roadmap to version 5.1.2 was posted as well.

One of the larger events that happened this month, however, was the “PHP Developers Meeting” with several of the core group to talk through the direction that PHP was heading towards. Talk about PHP6 and what it will include increased even more, and the community was buzzing with ideas and suggestions.

Wez Furlong announced that the PDO libraries had finally gone stable, and the eZ Systems group launched their competition to the Zend Framework, eZ Components. Greg Beaver also released an update to the long-dormant phpDocumentor project.

December:
At the beginning of this month, the new site PHPNamespaces.org was launched (in an effort to clear up some confusion over the namespaces issues in future versions of PHP), and patterns started coming more and more to the forefront (including a DevShed article that included excerpts from the php|architect book). The Apache project has released their latest in the 2.x series of their web server – Apache 2.2.0. We published our notes from the php|architect Zend Framework webcast here on this blog, reporting all of the features/outline they’d reported so far. In the wake of the webcast, there were also other sites that posted their perspectives, including the Professioanl PHP Blog. php|architect also posted their Call for Papers for thier upcoming php|tek conference (replacing the php|tropics conference from years prior).

In an effort to provide a resource for not only his book, but for security issues in general for the community, Chris Shiflett launched the new site PHPSecurity.org. In a look forward to the future versions of PHP, PHPBuilder posted their look at what would be coming up in PHP, version 6. Richard Davey also announced the launch of his PHP-centric comic, “PHP Life”, which can be found at PHPLife.org. The Professional PHP Blog reported that in the book sales for some of the major languages out there – Java, Ruby, and PHP – that PHP was the clear victor.

As the month draws to a close, people start looking at the future and what 2006 might mean for the PHP community – such as Bruce Perens. Unfortunately, he suggests that the ride for PHP might be just about over, that people will look more to frameworks like Ruby to get the job done. Ilia Alshanetsky posted about the latest release candidate for PHP, version 5.1.2RC1, and Sebastian Bergmann announced more about the latest release of PHPUnit – version 3.0 – and it’s imminent release.

So, that’s it…it was definitely a full year for the PHP community, especially with all of the discussion of PHP6 and the Zend Framework there close to the end.

If it makes you dizzy reading this here in the blog, drop me a line and I’ll send it along in another format (maybe I’ll make a PDF).

So, from all of us here at PHPDeveloper.org, we thank you all for the support that you’ve given us through out 2005, and we look forward to a great and eventful 2006 with some wonderful things coming up in the world of PHP. Happy New Year!

New Blog Launched – OpenEverything.org

One of my latest pet projects is something that I hope not only the PHP community can get behind, but also other programming groups, businesses, and really just anyone interested in working with APIs/web services in general…

OpenEverything.org

OpenEverything is a new blog that I’m starting up as a place for discussion of APIs, notifications about new features companies are offering or just new APIs in general. My vision for it is not so much a place to come to get technical help as it is to discuss the concepts and difficulties that come with the “information freedom” web services offer. There’s only the one post on there to start (from yesterday), but you can be sure that there’s much more to come. As the web moves more and more towards applications that are based on a remote machine, technologies that make use of them are gaining more and more ground…

So, come check us out!

Notes from the php|architect Zend Framework Webcast

UPDATE: if you’d like to listen to the actual webcast, head over here to the php|architect site and click on the first link.

I just got done with the php|architect web case concerning the Zend Framework and I have to admit – there was a whole lot of content in there that answered a lot of the questions that I (and others in the community) were having about what the framework will really be and what kinds of things it’ll do.

I took some notes along the way of what the Zend folks talked about, and I wanted to go through it for those out there that didn’t get a chance to attend:

The Zend guys emphasized that the framework is more than “just another project” out there in the PHP arena – it’s more of a part of an “ecosystem” (as he put it) that resides around PHP. They had a puzzle graphic showing how it would all fit together and included other things like the Eclipse collaboration and community involvement. The framework is really just a part of all of this, and looks to make better, faster (and cleaner) PHP apps possible. Of course, their target is to make it the industry-leader, and to have a “vibrant user-base” that surrounds it, providing things like feedback, new component suggestions, and bugfixes for the framework’s code.

One of the keys to this whole thing is to keep it simple, something they really do seem to be trying to keep in mind. They’re looking for that “extreme simplicity” that comes from a good review process, tons of testing, the inclusion of modues/features that most people use, and providing good, easy-to-use documentation for the entire project. When they looked at creating it, they also didn’t want to cause any kind of conflict that could come with the use of someone else’s code, so they started from scratch, generating all of the code in-house. There’s a strict review and testing process that they have for the components as well before they can be included in the package. As far as licensing, they wanted to stick with the PHP crowd on this one and went with a BSD license, with “no strings attached”. When external code (or coders) are being considered to join the team, they sign off on a CLA (Contributor License Agreement) before anything is even considered.

Now we start getting down to the real meat of the matter – the architecture of the framework. Since the emphasis of the enture framework is that it all works well together, the “glue” that holds it all together needs to be solid. As a result, when a new release happens, the plan is to upgrade the entire package, not just parts. Of course, people can use the Zend framework for some things and mix-and-match with things like PEAR for others – it’s not restrictive. There are three main parts to the framework: the front controller, the action controller, and the component library interface. Of course, the front controller handles the incoming data and information and can act as a substitute for the mod_rewrite module in Apache (handles URI mapping). It also includes a plugin capability. The action controller includes an “action interface” that does most of the work that the front controller passes along. On the back side of this happy trio, there’s the component library interface – the manager of all things…well, component-ish. This is the part that tells the framework what components you want to use and how to use them with the data given. Some examples of these components include:

  • Frontend – Ajax, forms, etc
  • Data – ActiveRecord, InputFiltering
  • Syndication – RSS, Atom
  • Web Services – REST, SOAP, XMLRPC
  • User – Auth, Session
  • Documentation – phpDoc, Manual

This brings us to the next stage – the components themselves. Each of the components are developed by a team of individuals, no single developer/small teams here. Cross-company development is also encouraged. All of the components come out of proposals that are written up and “well reviewed” before they’re ever even talked about as far as inclusion. As mentioned before, all of the code for them is brand new stuff, not pulled from outside sources and is subjected to a good real-life testing before it’s finally approved. Some of the defaults that are built into the framework include the throwing of exceptions for all errors, the use of constants on a class level to keep the global namespace clean, hooks into the Zend Engine 2 and SPL when it makes sense, and __magic() functions in helpful cases (though there are no calls to __autoload() because of its scope). Each module is required to adhere to the “ZEnd Coding Standard” and is throughly tested with PHPUnit2 before it’s included (tests for these will be included as well).

And now, the moment you’ve all been waiting for – some code!

In this example, the use of their ZActiveRecord component is used to interact with a database:
[php]
< ?php
class Person extends ZActiveRecord {}
$person=new Person();
$person->nameFirst=”Andi”;
$person->nameLast=”Gutmans”;
$person->save();
?>
[/php]
It creates a new record for the class and performs an insert into the database for you. One key that they kept mentioning is the focus on “extreme simplicity” to get the job done, and this example shows that well. The ZActiveRecord functionality actually looks at your database for a table called “Person” and reads in the meta-data for it, grabbing column information and caching it for the object. Frm there, it’s just a matter of inserting data into the column values (nameFirst and nameLast) and saving it to the table. ZActiveRecord translates that information into a query and performs the insert all for you.

In this other example using the ZActiveRecord, a query is made for the matching values of nameFirst and nameLast and a row is returned. In the second example, a search is also made, but it returns all of the values found:
[php]
class Person extends ZActiveRecord {}
$zeev=Person::findFirst(
array(
‘nameFirst’=>’Zeev’,
‘nameLast’=>’Suraski’
)
);
//the result is then in $zeev

$people=Person::findAll(
array(‘nameFirst’=>’Daniel’)
);
//and now we can loop through the results just fine
foreach($people as $person){
echo $person->nameFirst.”n”;
}
[/php]

There were two other examples that they gave – the ZMail component and the ZSearch component – both with code examples. The ZSearch component is based on the Lucene search engine technology, but is written entirely in native PHP – no extra modules are required to get it working. It has a simplifed API to make the searching easy, and allows many different kind of query types including: phrase, proximity, and wildcard. Here’s an example of a query:
[php]
require_once(‘/path/to/ZSearch_class_file’);
$index=ZSearch::open(‘/tmp/index’);
$hits=$index->find(‘zend’);
foreach($hits as $hit){
echo $hit->getDocument()->getFieldValue(‘title’).”n”;
}
[/php]
The code above searches for the term “zend” in the index file that’s been created (ZSearch uses files to ensure the maximum amount of flexibility) and returns object results in $hits. One of the cooler things mentioned about the ZSearch module is the ability to look at multiple kinds of indexes with different data structures. They don’t even have to have the same field names for the script to discover matches for the terms.

From there, it was mostly a Q&A session with all sorts of questions about what the framework will be like, when it might be released and other various details. Here’s a list of the questions and their answers from Zend:

  • How does Zend plan to make money off of the framework? – We don’t, we’re just contributing to the “PHP ecosystem” in a positive way
  • Are there plans to compete on the compiled code level? – No, PHP, as a dynamic language performs very well, so we don’t see a need.
  • Is there a release date set yet? – Not as of yet, but we are shooting for as soon as possible, possibly as soon as Q1.
  • Can the framework be stripped down to keep the size of apps smaller? – Of course, it will be distributed in plan PHP files, but the real question is “why would you?”
  • Will the framework be distributed as compiled files or standard PHP files? – It will be in stsandard, non-compiled PHP files
  • How soon will things like documentation and use cases be made public? – We’re working heavily on the docs for the framework and will release them as soon as possible. We do hope, however, to have a more detailed site up within the next few weeks.
  • Will it support Unicode in PHP6? – Most definitely
  • What will the documentation be like? – The documentation relies heavily on phpDoc for reference, and higher-level documentation will be provided as well.
  • How different are Zend Coding Standards from PEAR Coding Standards? – They are very similar, but with a few minor differences that are specific to the framework structure.
  • Will all of the web services have a similar API? – With the differences in the structure of the services being different, there will not be much overlap in them.
  • How will you push it out when the time comes to make a release? – “In every way possible” including the website, webcasts, etc.
  • It seems that much of the framework is taken from Ruby on Rails, do you think you’re too late? – The only direct correlation between the Ruby stuff and our framework seems to be the ActiveRecord functionality. And, no, I don’t think we’re too late given the usage that PHP sees and its ever growing popularity.
  • Will the framework be included in the test for the Zend Certification Exam? – As of yet, there are no plans to include it. There has been talk of separate testing, but nothing concrete yet.
  • Will the framework scale well? – Definitely, it will fit well into the “increased performance” standard already set by the PHP language
  • How will the framework fit into the CLI side of things? – Obviously, the controllers wouldn’t be of much use for a command-line app, but the majority of the components will work in both environments – the CLI side just won’t take as much advantage of the “glue” behind the scenes.

Well, there you have it – obviously, the answers from the above Q&A are paraphrased. I didn’t feel like writing out a transcript. I found the webcast to be quite enlightening and, especially with the inclusion of the sample code, has answered several of the questions that I had about things. There are still a few things that are a bit fuzzy to me about it – namely how one will become one of the “inner circle” of component developers down the line, but that’s the subject of a whole different blog post…