On the Zend Developer Zone they've posted the second part of Vikram Vaswani's look at using the Twig templating engine in your PHP applications. In the first part of the series, he introduced the tool and got started with some simple examples. In this second part, he dives in deeper to some of the advanced features.In this second and concluding segment, I'll look at some of Twig's other features, including such goodies as template inheritance, custom filters and caching. If you enjoyed the first part of...
Following up on their earlier simple object iterators post, the SitePoint PHP blog is back with a look at more sophisticated iterators you can use to work with database record objects.In my previous post, Simple Object Iterators in PHP, we discovered how to iterate over array items defined within an object using a foreach loop. However, what if you need to iterate over items which are not stored in an array, e.g. records from a database or lines of text read from a file?He shows how to create a script...
On PHPBuilder.com today Jason continues his look at some of the lighter weight PHP frameworks out there with his introduction to Limonade, a micro-framework for rapid web development and prototyping inspired by frameworks like Sinatra and Camping.In this article I'll introduce you to Limonade, highlighting its key features by building a simple exercise diary (incidentally, this Limonade introduction is the latest installment of my ongoing review of lightweight PHP frameworks see Fat-Free, DooPHP, and my...
The Horde Project is presenting their latest applications with a booth and a talk on LinuxTag Berlin, from May 11th to 14th.
In this new post from DevShed today they look at seven different frameworks and compare the speed of how they render a simple request - CakePHP, CodeIgniter, Symfony2, Yii, RainFramework, Doophp and Kohana.There are so many PHP frameworks that it can be hard to keep track of them all. Some are already very popular, while others are relatively new and unknown. [...] Of the seven criteria [of a good framework], this article will examine only the speed and performance.They define their structure for testing...
The Voices of the ElePHPant podcast has posted their latest interview with a member of the PHP community. This time it's Shaun Farley, an organizer of the DC PHP User GroupCal's "three questions" for Shaun about his website BreweryDb.com and its API:
Can you explain what a open data/closed source model model is and why you chose it for BreweryDb?
How do users know that BreweryDb won't change their data usage agreement on the API (and what problems it could cause on a wider scale, outside of BreweryDb)?...
Ryan Mauger has written up a new post about an integration he's done using the Twig templating engine (from be Symfony community) with his Zend Framework application to make view handling simpler.Mostly I thought [what Twig offered] were silly things that were not really needed unless you had a team of designers to work with, however, during my exploration, a couple of things occurred to me that I had not considered about templating systems before. One being the enforced separation of concerns they...
Here's what was popular in the PHP community one year ago today:Mike van Riel's Blog: phpStorm, a true delight to work with
Lorna Mitchell's Blog: Accessing the Magento Web API
Emran Hasan's Blog: Quick start on new Facebook PHP SDK (IFrame based)
Alan Skorkin's Blog: What Every Developer Should Know About URLs
Chris Hartjes' Blog: More Awesome Deployment Using Phing
Content with Style: Linkedin and Zend_Oauth
Matthew Weier O'Phinney's Blog: Writing Gearman Workers in PHP
Rob Allen has a new post today exploring Zend_Paginator and some of the features it has to offer.One area of displaying lists on web pages that I've generally disliked doing is pagination as it's a bit of a faff. Recently, I needed to do just this though as I couldn't delegate it as my colleague was too busy on other work. As a result, I thought that I should look into Zend_Paginator this time. Turns out that it's really easy to use and the documentation is great too.He includes some sample code to set...
In a new post to his blog today Philip Norton has made his announcement about this year's PHP North West Conference 2011 happening October 7th through 9th in Manchester, UK.I have attended the last 3 PHPNW conferences and they have all been of a very high standard in virtually every way. [...] The conference will be split over two days on the 8th and 9th of October with 3 full tracks on the Saturday and 2 tracks on the Sunday. There will also be lots of coffee breaks and there is usually a free bar in...
New from the Script-Tutorials.com site there's a guide to getting a modern looking animated login system working on your PHP application. It uses jQuery to do some of the "modern" bits when the user logs in.Today we will continue PHP lessons, and our article will about creating modern php login system. Possible you already saw similar ways to display login forms, and today we will repeat this by self. In result - it will some small element in your page layout, and after clicking on it - will appear some...
James Cohen has a new post to his blog today looking at some of the built-in functionality that PHP has to work with dates and times including simple things like strtotime and the DateTime feature.A lot of people ask questions relating to date and time in PHP. Here are some answers to the most commonly asked questions and common mistakes.He covers the differences between working with dates in strtotime, worrying about timezone settings and compares the strtotime/DateTime methods for formatting and...
PHP MySql Authentication Class
Form Validation Easy
DB table extractor
Easy Array To XML
Simple Template System
Super Globals Access Interface
On the Ibuildings techPortal today they've posted the results of their Ibuildings challenge where the developer had to create a script able to play "Four in a Line" based on an abstract Player class provided.Four in a Line as game has been mathematically solved and the advantage lies with the player taking the first turn. To level the playing field, we allowed each player to fight against all the others; in this way, any player had the chance to begin with the first move advantage playing against all the...
Enrico Zimuel as a new post to his blog today talking about his exploration of a Zend Framework bug related to the JSON handling of the Zend_Json component. The issue was related to the conversion of XML to JSON but it only happened in specific instances.As you can see the bar value, of the a element [in the example code], is not represented in JSON. This issue comes also with other XML documents, and in general when an XML node has a single character data child, any attributes are lost.In tracking down...
On the Web Developer Juice blog there's a recent post, the first part in a series looking at one of the more handy features of the recent releases of PHP - the magic functions (some which were added in the PHP 5.x series).There are some reserved function names in PHP class starting with __ (double underscore). These are __construct, __destruct, __isset, __unset, __call, __callStatic, __sleep, __wakeup, __get, __set, __toString, __set_state, __invoke and __clone. You cannot use these functions to serve...
I'm happy to report that Gimme Bar
has been running very well on MongoDB
since early February of this year. I previously posted on some of the
reasons we decided to move off of CouchDB.
If you haven't read that, please consider it a prerequisite for the
consumption of this post.
Late last year, I knew that we had no choice but to get off of CouchDB.
I was dreading the port. The dread was two-fold. I dreaded learning a new
database software, its client interface, administration techniques, and
I spent Saturday working the registration table at DrupalCamp Nashville. Aside from getting to be a bunch of great people, I got to spend most of the day sitting next to Adam Kalsey of Tropo. It seems that every time I turn around these days I'm running into Tropo at PHP events. So I decided to play around with their API to see what all the fuss was about.
In my previous post, Simple Object Iterators in PHP, we discovered how to iterate over array items defined within an object using a foreach loop. However, what if you need to iterate over items which are not stored in an array, e.g. records from a database or lines of text read from a file?For the following example, we'll create a class which:counts the number of users who are logged in to a web application by retrieving records from a databasecreates a collection of aousera objects which can be iterated...
The Voices of the ElePHPant podcast has posted their latest episode - an interview with Bulat Shakirzyanov.Cal's "three questions" for Bulat revolve around his work with unit testing:
How do you counter the arguments that unit testing takes too much time or their boss/client won't give them the time to learn or practice testing?
Do you advocate 100% unit test coverage - if so, why (and if no, why not)?
Why is it important for developers to mock native PHP commands in their unit tests?
You can listen to...