SpinDrop.us: Not taking frameworks for granted
94731
On the SpinDrop blog, Dave Dash talks about a hole that he felt in his bug fixing for a project, something that he felt like the application had simply left out - a framework.   My client noted that these scripts were made from another contract programmer, and then a light-bulb went onâ¦ frameworks (whether it be symfony, ROR, Django, CakePHP, etc) help iron out and standardize these tasks.   He lists some of the basics of what a framework can help with, including storing data (both in the database and in things like $_SESSION) and a big one - form validation. Sure, you can do these things outside of any of the named frameworks out there, but they can make them simpler for any application written within them.
475410
On the SitePoint PHP Blog today Troels Knak-Nielsen asks th3e question "what's so bad about the singleton?" For all of its advantages, is there a darker side of the design pattern when it pertains to global variables.   As I have often taken this stance myself, I found it reasonable that I should be able to argue for it, so I'll try to give an explanation. This is also in part a follow-up on my post from last week, in which I present a way to avoid global symbols, without spending much time on why.   He talks about what they are and how they're commonly used - sometimes with some unpleasant side effects because of their use of globals.
580432
Paul Jones has run some benchmarking on four different frameworks - CakePHP, Solar, Symfony, and the Zend Framework - to check for overall speed and has come up with some interesting results.   Anger-inducing broad-brush overview: Solar is 4x faster than Zend, and almost 2x faster than Symfony. Read on for all the nuances and caveats.   Throughout the rest of the post he talks about the methods that he took for testing the frameworks and that his goal was the fastest response time only, nothing about the actual functionality. The test was as simple of a "hello world" that he could get in each one.   He's provided the benchmarking results, as provided by Apache's ab testing script for the base (just PHP manually) and then for each of the frameworks, providing the code used as well. There's also a helpful bit on which classes get loaded for each of the frameworks to see what the overhead is. Symfony tops off this list with 43 total libraries for what ends up as a simple echo statement.
439562
In a new post to his blog today, Danial Krook shines a spotlight on a the technology that bridges the gap between two different languages - Java and PHP.   In the time since I wrote that post [talking about PHP with WebSphere], and particularly in the past month, there have been several items published which demonstrate the value of this technology. I still need to delve deeper, but hereâs a quick summary of whatâs going on.   He looks quickly at this combination, breaking it out into four parts - what the technology is, how it allows PHP and Java to work together, where you can download the needed software from and some resources where you can find out more information on implementation and examples of it in action.
481653
I'm back, with a very interesting topic too!  Joel Spolsky, ex-Microsoft Manager and software engineering guru has a new essay, How Microsoft Lost the API War that is creating quite a big storm in the blogging communitiy.  Joel posits that the priests in the holy Temple of Microsoft have lost their way, because it has split into two factions, and the wrong faction is winning. One faction worships on the alter of backward compatibility, while the other is led by fervent priests who are proselytizing to raise up the new gods of .NET and Longhorn. Joel suggests that the new gods will cause the destruction of the holy Temple because Microsoft's great victories were built on the altar of keeping customers happy with backward compatibility. Furthermore the old gods of the Windows API continue to grow more grotesque and cruel with the passing of time, driving former worshipers into the arms of the friendlier gods of World Wide Web.  This story sounds extremely plausible. I must admit that i fit the profile of the developer who used to develop on the Window's API, is familiar with COM and Win32 who now develops mostly using PHP and Python. However I continue to develop and maintain Windows apps that keep our customers happy, and we still plan to develop new Windows apps. Some points:  Temple of the Blind? Firstly, Microsoft is still a compelling place to work for to people who feel that they can make a difference. The Temple continues to attract talented people with a Unix background. For example we have the recent hiring of Ward Cunningham, author of the Wiki.  Microsoft is still able to keep talented people like Raymond Chen, and others like him who continue to look after the Windows API, and Longhorn apparently will still give high priority to backward compatibility. Open sourcerers like Miguel Icaza are sufficiently attracted to the .NET vision to stake their careers on Mono. Longhorn and .NET are compelling technologies, so even if Win32 is not so cute anymore, M'soft is providing something that remains very attractive.  What i do see M'soft doing wrong is that they aren't disseminating the .NET runtime fast enough. It remains an optional install in XP Service Pack 2 for example. Also their IE dev team appears to be hog-tied due to political reasons; nevertheless IE remains good enough, particularly when I can embed IE as an activeX control, something I cannot do with Mozilla (AFAIK) - Update: I'm wrong.  Temple of the Spider?  Secondly, people don't merely use a web browser. They run the web browser in the OS.  So let me ask you, if you are using DreamWeaver or HomeSite or Photoshop or vi or emacs or Gimp, how many of you are willing to give it up for a java applet (or whatever your favorite technology is) running in your web-browser? Precisely.  Temple of the Abandoned?  Third, Joel makes the claim that developers are not developing to the Windows API. Well he could be right. But I bet a lot of them are still calling Win32.  If you are using a framework or IDE like Delphi or wxWindows (or .NET or VB) then you certainly are insulated from the Windows API, but that doesn't mean that you're not calling the Windows API all the time. I don't see Borland dropping their Windows version of Delphi at any point in time.   In fact, the fact that many developers are using some form of framework is a compelling argument for Microsoft to enhance the .NET framework to attract developers who are using other frameworks.  Today, not that many students learn x86 assembler, but that doesn't mean that Intel lost the CPU wars. Just because fewer people are learning Win32 doesn't mean Microsoft has lost the API wars, if the frameworks run predominantly on Win32.  Temple of the Lost  Joel even warns you in the beginning that "because I'm talking about big trends, I need to exaggerate and generalize". But you still get sucked in because Joel Spolsky is a first-class writer, in the same order as Philip Greenspun or Eric Raymond. That makes him so persuasive and plausible. But this is not Indiana Jones and doomed temples, but Steve Jobs and reality distortion fields.  Other opinions:  Harry Fuecks (PHP is ASP's upgrade path),  Dennis Hamilton (M'soft is just covering all bases), Robert McLaws (Joel is wrong in 7 points), Oliver Travers (the web is not good enough), One Run-time to Rule them all....
540441
Aaron Wormus is back today on the Zend Developer Zone with another in his "Hidden Gems" series. This time, he takes a look at the "Zend Plumbing", those bits of connective code that help you make your Zend Framework applications work.   The functionality that he covers in this article are some of the min parts that a lot of ZF coders use every day and might not know it:  the Zend class (providing a suite of helper methods) built in Wrapper functions:  loadFile loadClass loadInterface isReadable dump exception  the Zend registry  Each of these is briefly described with some sample code for the loadFile, loadClass, exceptions and the Registry to give you an idea of how to use it all. As always, you can check out the Zend Framework website for all the details on each of these functionality bits.
651804
On the Spindrop Blog today, there's the series wrapup for their look at using the Zend Search Lucene functionality inside of a Symfony application.   This is part of an on going series about the Zend Search Lucene libraries and symfony. We'll pretty everything up when we're done. We now know how to manipulate the index via our model classes. But let's actually do something useful with our search engine...let's search!   This quick post shows how to initialize the object and run the find() on the data and fetch out the results. They even work the script so that, if the index for the search isn't there, it generates it on the fly, then makes the search.
521521
The results of the latest poll from the International PHP Magazine are in. The question this time asked which, of the options given, were your favorites in the Smyfony project's feature set. There was a clear winner above all of the others - the scaffolding that it makes so simple.   Some of the other options that were included but didn't get nearly as many votes were:  Simple templating and helpers Multilingualism and I18N support Object model and MVC separation Ajax support  Following at a distant second was the "Object model and MVC separation" choice (and to others, "Enterprise ready" and "Ajax support" nipping close at its heels).   Be sure to cast your vote in this week's poll that asks your opinion on some of the rules that the PHP Throwdown has set in place. Vote for the one that you think fits best with the spirit of the competition.
342194
Leo Buttiker has posted a release announcement about the new framework they've developed - Trevi.   There're already thousands of web frameworks out there so I would sink into the ground if we really wrote another one. [...] Zend Framework looked like a nice solution. But what we probably liked most is that ZF allowed us to replace every component in the framework.    To this end, their "framework" isn't truly a new way of doing things - it's just a heavily modified version of the Zend Framework they've customized to fit their needs. Trevi is their own internal name for this release.
457664
In this post on the Zend Developer Zone, Cal Evans takes a look at an article published in a recent php|architect issue from Chris Hartjes about how several recent advancements in the PHP community have helped developers think more in "the Rails way" of development.   Chris does a good job of laying out his points. As with any article of this nature, you are going to agree with some of them and you'll disagree with some of them. However, to get to that point you'll have to consider all of them. That's really the point of the article; making developer sit back and think for a minute. It's well worth the read.   Cal also mentions some of the topics presented in the article including more conceptual ideas like "Convention Over Configuration" and "Rapid Should Mean Rapid".
746444
Josh Sharp has posted a new article to his blog advocating something that there's still a lot of controversy around in the PHP community - frameworks (when to use them and when to not).   PHP's ease of use is also its downfall. Because there are less restrictions on the structure of the code you write, it's much easier to write bad code. But there is a solution: use a framework. [...] Of course, if you're not taken with any of the packages above you can also write your own framework, which I've done and will talk about in the next few posts. But for now, let's have a look at the common benefits of a framework.   He's broken it out to talk about the usual framework structure, MVC and how a framework can enforce good code standards. He also mentions some happy side benefits of their use including making for "pretty URLs" and the helpers that most of the frameworks come with.
172605
The International PHP Magazine has posted the results from their latest poll conducted over the week. This time they asked developers what they looked for in a framework.   The options this time were:  An O-O MVC structure ORM / Active Record Good Controller Structure Ajax Interoperability Ability to Incorporate Testing Open Source/Free License Security Good Helpers Scaffolding  With the first option "an OO MVC structure" leading the pack with almost twenty percent. Next in line was (in order of votes): having an Open Source/fre license, bundled with good helpers, good security, and a good controller structure.   Be sure to check out their latest poll too. It asks about security architectures and what developers out there think they should contain.
610973
This article discusses the use of Libwhisker, a PERL module which allows for the creation of custom HTTP packets and can be used for penetration  testing various web applications.
731437
Elizabeth Smith has posted a new item to her blog today with information about a PHP-GTK2 framework that she's been working on (and with) called the Callicore Desktop.   Donât look at me like that, I havenât lost my mind. Itâs not really a framework in the traditional MVC web application sense. Instead itâs a group of fairly loosely coupled widgets and classes with an emphasis on clean code.   With the help of several singletons, multiple widgets and a modular structure, the Callicore Desktop makes working with this parts as simple as calling it on the command line (with limited setup). If you'd like to get a look at the current version of the framework, check out the Callicore site or just head straight to the code.
755326
Back in the days of stone knives and bearskins applications were  things that were written in cretinous languages like COBOL that  ran on wierd 71 bit architectures and used messed up file formats like  JCL and VSAM files or whatever.  What's a 'Data Division'?  Some whiny  80s band from Manchester?      Of course today we are so much  smarter.  If you look at the evolution, from ML, to branched languages  to structured programming to OOP, and from 3270 applications, to PC  apps to client server to web apps, you can clearly see how the  applications programmer transformed himself from knuckle dragging  simian to homo sapiens. That's the stereotype, right?    We have a name for all that old stuff, a pejorative name:  'legacy'.[1]   I'm here to tell you that the web application is the new  legacy.
402184
Continuing on with his look at his OpenID library and its implementation, Padraic Brady has two new posts with more of the story.   From the first post:   As a follow on from my previous entry about OpenID in the Zend Framework, I've been in brief contact with Dmitry Stogov across a scattering of emails. Dmitry posted his OpenID proposal for the framework over at the Proposals Wiki earlier in the week. [...] It's actually very hard to comment constructively rather than simply handing over my code which probably says a lot more all by itself. [...] Anyway, I've agreed to port my OpenID library to PEAR as a PHP5 package. I checked with the mailing list, and the approach I've taken in splitting the library across a number of freestanding components hasn't seen any objections. On the flipside, it does help by providing upgrades to existing PEAR Encryption packages which are not yet migrated to PHP5 versions.   And from post number two:   Over the weekend, I managed to grab a few hours to dig around my OpenID library with the ultimate development tools: patience and experimentation. [...] What I've refactored towards is a splitting of the OpenID process based on three categories: Request, Redirect, Response.
751529
Michael Kimsal has come up with the start of a series to introduce PHP developers to the world of Grails (the Java framework).   The comparisons I plan to make will be mostly to PHP, cause that's what I'm most familiar with, though there may be some other comparisons from time to time.  This is a work in progress, but I'd be very interested in feedback from anyone out there interested in this aea - Grails, Groovy, PHP, why another language/platform/framework, etc.   The first two installments have been posted - part one and part two - with an introduction to what Grails is and a brief dip into some "Hello world" sort of code to give you an idea of the structure.