Inside Open Source: Zend Framework Cache Improvement
614738
Matt Wade has posted a quick item to APress' Inside Open Source blog today mentioning an update to an item he'd previously mentioned - issues with the Zend_Cache module.   One of my complaints was the Zend_Cache did not accept lifetimes on a per object basis, but rather the lifetime was at an application level. I just received notice in my inbox that the issue has been fixed! The change is currently in svn, and should be in the 0.80 preview release. Thanks go to Fabien for the fix.   You can download this latest version of the Framework (0.7.0) from the Zend Framework website.
452990
Focusing on the enterprise, PHP (Hypertext Preprocessor) tools vendor Zend Technologies is shipping Tuesday version 3.6 of its Zend Platform application server for PHP as well as Zend Studio for Eclipse, an IDE for PHP based on Eclipse open source technology.The two products "take [Zend products] to another step toward enterprise-readiness," said Andi Gutmans, Zend co-CTO. PHP, meanwhile, runs around 40 percent of the Web, he said.Featured in Zend Platform 3.6 are capabilities to monitor HTTP, Apache, and Java events; expanded performance alerts; and better diagnostics through the debugging of production problems on development servers. These improvements are part of Zend Platform's "PHP intelligence" functions for monitoring PHP application performance.Zend Platform monitors PHP applications in real time, reporting on script errors, database and performance issues, and other matters. Downtime is reduced by recording the full context for reported problems to enable root cause diagnostics and short time to resolution, Zend said.Also highlighted in version 3.6 are automatic output compression to save bandwidth and enhanced job queues for deferred and offline processing. An improved download server optimizes delivery of large content and media files. Version 3.6 also features expanded options for caching content, with support for file or URL-based caching, client-side caching, and in-memory or disk-based caching, Zend said.With client-side caching, a user can load a Web page; local cache will maintain that page if it does not change so the page does not need to be reloaded over and over, Gutmans said.With this release Zend is offering smarter, URL-based caching as an alternative to individual script-based caching, said enterprise software analyst Vishwanath Venugopalan, of The 451 Group. URL-based caching "brings it closer to how an end-user interacts with an application," he said.This approach is likely to improve application performance, Venugopalan said. With URL-based caching, Web applications leveraging MVC (model view controller) can be cached, Zend said.Zend Platform also accommodates Java systems, Venugopalan said. PHP and Java are becoming more intertwined, with PHP being used for development and mixing with server-side Java, he said."When Java systems are included in a transaction, the Java integration features of Zend Platform will enable capturing both the Java and the PHP side of the story when diagnosing an event," said Venugopalan.High-availability and tools for cluster configuration and support are improved in version 3.6 as well. Zend Platform can be clustered across an estimated several hundred servers, Gutmans said.Zend Studio for Eclipse is built on top of the Eclipse PDT (PHP Development Tools) project. Studio improves the quality of PHP applications, speeds development cycles, and simplifies complex projects, Zend said. It features a set of editing, debugging, analysis, and database tools. Agile development processes are supported, such as unit testing, refactoring, and code coverage. Eclipse plug-ins can be accessed for capabilities such as database access and source control.Zend Studio for Eclipse costs $399 per developer. A special introductory price of $299 is in effect for a limited time. Zend Framework subscriptions start at $1,500 per server.Both products support the Zend Framework application framework, which has been downloaded more than 3 million times, Gutmans said.
238267
In a new post today, Mike Naberezny talks about some updates that have been made to the XML-RPC client included with the Zend Framework, spotlighting three items in particular.   A few weeks ago, I rewrote the Zend XML-RPC client as part of a customer project at Maintainable. After fixing a fair number of bugs and writing a test suite, I made some enhancements and usability improvements. You can learn more about the new XML-RPC client from its documentation.    The three new updates to the package deal with:  Calling remote methods (a new call() method) Server proxy objects have been added Faults are thrown as PHP exceptions  Get more details on this package from its page on the Zend Framework's website.
313082
P&aacute;draic Brady, looking ahead to the work he will be doing over the next few months, is proposing on his blog about a new Zend Framework component - Zend_Service_Currency.    I did a quick check on what PHP classes are available for the purpose. There's really not a whole lot out there. There's a PEAR class along the lines I need, but it's released under the PHP License and, not to be too argumentative, I prefer non-PEAR solutions where the end-user may have no access to update PEAR.   So since the project is planned to use the Zend Framework, I shot off a mail to the Framework's fw-general mailing list to see if it would be a worthwhile contribution.    He sees that someone else had already opened a proposal for the same idea and decided to join with that group to work up the module. He also links to his original proposal and gives a brief overview of the goals of the package.
188378
Edin Kadribasic has posted some benchmarks he's created from the Zend bench.php tool on the latest build he's created with the new version of Visual Studio from Microsoft.   Here is the comparison of running Zend/bench.php from the PHP source using VC++ 8.0 (Visual Studio 2005) and VC++ 6.0. The test was done on my Lenovo laptop with Celron M 1.6 GHz processor and 1.5 GB ram.   Overall, the differences are pretty minimal, but there are a few places that stand out and have more of a variance than the others (like the 12% difference in the "simplecall" test). Check out the post for the full list of the benchmark results.
90155
Based off of a previous article from Mike Willbanks, Stuart Herbert has posted some of his own thoughts on tuning and tweaking your applications for the best performance you can get out of them.   There's some good advice in there, and I thought it'd be a good idea to quickly add a bit more detail about the separate approaches that Mike raises.   He goes over the APC caching, memcache, the "gzip trick", the "Not Modified" header and optimized SQL statements.   He also mentions one thing that Mike didn't mention - a split between static files (no PHP needed) and their dynamic cousins. Having a more pure Apache (no PHP installed) can help give a minute jump in speed that, depending on the size of the site, could really add up from a user's perspective.
536627
Stefan Reuter has a very quick example of a method for profiling your PHP applications with Xdebug and KCachegrind.   Ever wondered where your PHP applications spend their time? [...] We wanted to gain performance insights of a newly developed application based on Zend Framework to spot areas worth receiving some fine tuning. We did not want to modify the application for that purpose so I had a look at the options available for PHP.   The resulting combination of XDebug and KCachegrind to grab the stats from the application and create great output images/reports to help make locating the problem a snap.
91596
Padraic Brady has posted a manifesto of sorts about the work that he's been doing on his PHPSpec library and trying to work it into the approval process for the Zend Framework.   I'll be attempting to pound the Zend Framework into submission so I can apply Behaviour-Driven Development (BDD) using PHPSpec when I write a Controller. Why? Because I feel like it, and it gives me an excuse to promote one possible incarnation of PHPMock and the PHPSpec Zend Framework extension. See? Perfectly reasonable selfishness!   He hopes to move it past the typical test-driven development process that PHPUnit offers and "kick your ass into high-TDD gear" without having to have worked much with it before then (the key is simplicity).   He includes some code examples (how it should flow) and describes some of the challenges that he's coming across so far, specifically with the way that the Zend Framework works with the Controllers and what he wants to accomplish.
632234
Chris Hartjes has posted an update on the Zend_Service_Audioscrobbler package for the Zend Framework, including writing the unit tests to ensure it's complete functionality.   In my spare time I've been banging away at writing the required unit tests for the Zend_Service_Audioscrobbler component that Derek and I had started. I finished all the unit tests for the user based functions, which is a nice milestone. Then I decided to go back and actually read the comments made from the proposal. Oops. I discovered there were a bunch of changes that the folks at Zend said needed to be made in order to accept them. I agree with most of them.   He also lists some of these comments/changes/suggestions for the package that were given to help it fit in better with the rest of the framework.
533524
A great presentation by Ilia Alshanetsky from the International PHP Conference 2004. The only thing I would like to point out is that MMCache is still being actively developed, as evidenced by the CVS activity at sourceforge.  PS: You might need to use Mozilla to view this. IE sometimes doesn't work properly. I thought IE was a defacto standard :-)
680081
With the date for the Zend/PHP Conference & Expo (October 8-11th, San Francisco) conference growing closer all the time, the more updates the better. The Zend Developer Zone has such an update with more details about the keynote talks, sessions, the "after hours" events and more.   Ok, it's been a few days since I've given a ZendCon update so let's burn a few bytes and talk about what is being planned.   The updates concerning the keynotes are the topics the two speakers will be presenting - Cory Doctorow on "copy machines" and Joel Spolsky with his "Great Software" talk. The sessions for the conference are still mostly the same, but the "after hours" activities have exploded.   Things on the list include a ZCE party on Monday, Happy Hour 2.0 on Tuesday and on Wednesday an all-out karaoke party poolside at the hotel.   There's still plenty of time to register for the event and to get more details on the conference and the whens and wheres, check out the main conference site.
397724
Padraic Brady has put together a very comprehensive post on his blog today about using the Zend_Feed component of the Zend Framework to help with the aggregation of content from other sites (like RSS and Atom feeds).   In this entry I explore Zend_Feed from the perspective of someone aggregating RSS and Atom feeds with a view to building a database of uniquely identified content for later presentation in a "Planet" style application. [...] In fact all we create here is a simple command line script to aggregate content frequently (e.g. just set up cron to run it every hour or so) into a database for later presentation.   He guides you through each step of the way:   Setting Up Database And Models The Aggregator Script Foundation Using Zend_Feed to get common data for RSS/Atom entries Putting It All Together   There's plenty of code (and SQL to insert) in the post and he explains each point well, helping to make the development process smoother. There's even a summary section to toss in a few extra bits of information just in case you missed them along the way.
485840
P&aacute;draic Brady continues his series on working with Complex Views in the Zend Framework with this new article - part seven focusing on the Zend_View Enhanced method.   It's been a long, and hopefully interesting, road to Part 7. In this concluding entry to the long running, and oft delayed, "Complex Views with the Zend Framework" series I introduce the Zend_View Enhanced Proposal for the Zend Framework, elaborate on its operation, and provide some opinions on the ongoing debate over its implementation.    In this final entry of the series, he recaps previous concepts (like Partials/Layouts/Controllers/Placeholders) and how far reaching the Zend_View Enhanced component is. He also includes some of the helpers and interfaces he's proposed for the module including:   Zend_View_Helper_Partial Zend_View_Helper_Controller Zend_View_Helper_HeadScript Zend_View_Helper_Doctype Zend_View_Helper_HeadStyle   He takes each of the concepts mentioned above and applies these different helpers/interfaces inside them, illustrating with some sample code as needed.
768564
According to the Zend Developer Zone, the Zend Framework is going to the even more powerful in the future with the inclusion of command line functionality.   So, without further adieu, it is my pleasure to announce that Zend Framework 1.5 will include a robust, powerful, and- yes- 15-minute-demo-enabled command line interface for code generation!   They've set up a default structure (that's "recommended") but doesn't have to be strictly adhered to. They know how most developers have structured their applications and made it accordingly. There's three proposals in the group - the Zend_Console, Zend_Build component and the Zend_Build for Core.
360849
On the Zend Developer Zone today, there's this new tutorial that looks at making the move from PHP4's object-oriented programming up to the "more complete obejct model of PHP5" - specifically with the Decorator design pattern.   While working on a project I realized one particular solution was a pretty good way to demonstrate the decorator design pattern together with some of PHP5's features, including abstract classes, interfaces, type hinting, the final keyword and the visibility of properties and methods. This article is intended for those of you who, like myself, are moving from object-oriented programming, including some use of design patterns, in PHP4, to the more complete object model of PHP5.   He sets up a scenario about the development of an online pizza ordering system to show how to "decorate" a pizza with each of the toppings on a list (instead of having to list out every pizza in every possible topping combination). Of course, all of the code is included and explained so you understand exactly what's happening. Finally, there's a demonstration of its usage - a simple call that grabs the stock level/name/cost of each of the items in stock (pizza combinations).
2750
On DevShed today, there's the second part in a two part series (another excerpt from the "Zend PHP Certification" from Zend) talking about getting the most out of your application and platform through some simple debugging/optimizing tools.   They start off with a look at debuggers - what they're for and a brief mention (high level) of how to use them. Next up is some simple suggestions for optimizing the performance of your application:  Hardware issues Web server issues Avoid overkill Zip it up Database optimizations  They also include a simple recommendation that all developers, looking for performance boosts or not should follow - "keep your code simple".
369280
Paul Jones has posted a teaser concerning his talks(s) at the upcoming php|works conference this year. One is about organizing your applications to make them easier to maintain and work better and the other is a follow up to some previous benchmarks he created comparing several of the popular PHP frameworks.   About The Benchmarking Talk - Easy one-liner: "Statistical Histories for Fun and Profit." And I do mean profit: the better your apps runs on a given stack, the more eyeballs you get on your ads (or, the more users you can handle).   He will be talking about why benchmarking your app is important, how to benchmark a framework and, the thing everyone's waiting for - his benchmark stats comparing several popular frameworks.   Paul also requests that, if possible, one developer from the teams of each of the other frameworks (besides Solar of course) could be in attendance to critique the talk and help point out issues either with the talk or in his methods.