Paul Jones has written up a response to Matthew Weier O'Phinney's recent post on shared interfaces and the PHP-FIG. In it he talks about the PHP-FIG group itself and specific references back to the original post.He mentions the ideas of "new thinking" and the limitations that standardized interfaces might try to impose on an application:One is able to imagine reasons why having shared interfaces of the kind described above is in opposition to, or at best orthogonal to, better development practices and...
In a recent post to his site, Brandon Savage has a few helpful hints to keep in mind when you're refactoring your applications to make them easier to maintain (and possibly perform better) in the future.The downtime [of this week] provides a perfect opportunity for the aspiring software developer to do the one thing they are always told there's no time to do: make the code better for better's sake. With few deadlines and plenty of free time, most developers can get a few hours of refactoring in to their...
Joshua Thijssen has a recent post for all the PHPStorm users out there (or maybe investigating a new IDE) and are looking for a way to debug your PHP apps easily with XDebug. Well, he's come up with a step-by-step guide to help you get it all set up and working, complete with screenshots. He helps you debug command-line applications, but the setup will work for your web apps too.Even in these days, with full-featured PHP IDEs around, I still see PHP developers using var_dump() and die() to debug their...
Nikita Popov has a new post to his blog about a new feature that will be coming in PHP 5.5 and how to use them, coroutines and generators, in an example application.Coroutines on the other hand have received relatively little attention. The reason is that coroutines are both a lot more powerful and a lot harder to understand and explain. In this article I'd like to guide you through an implementation of a task scheduler using coroutines, so you can get a feeling for the stuff that they allow you to do....
The brain is a muscle, and as all muscles, it needs regularAexerciseAto keep sharp. Or at least that's what the old adage says. This is a post that I've been meaning to write for a long time now, but never got around to (until now that is). Sparked by a twitter conversation with Mr Grumpy himself (Chris Hartjes), I decided that the time was right for it. So, here's my method for staying sharp and exercising my brain...Read more A
Recent releases from the Packagist:meenie/munee (1.3.0)
kphoen/sitemap-bundle (1.1.2, 1.1.1, 1.1.0)
Latest PEAR Releases:
We who work on the Web, as Noah Stokes wrote in an earlier article, have a privileged opportunity to create things that can change the world more easily than most; to make a difference. This concept is inherent to the essencea-athe very naturea-aof the Web. I believe this depends in part on us maintaining and supporting what's already been done. I'll illustrate.
How I startedI'll not pretend I was kicking around back when the Web was formed. I was too busy trying to work out where I fit in the high...
Recent releases from the Packagist:cypresslab/gitelephant (0.9.7)
It must be a small world after all. Walking through a neighborhood, that I neither live in or work in, in a city of eight million people, I some how manage to, seemingly randomly, bump into someone I know, nearly every time. If I were to come across this acquaintance in the neighborhood where he lived, I would think nothing of it, but usually this is not the case. Occasionally, this someone is not even a resident of any of the five boroughs of the city. How is it that I can walk through a city so...
Recent releases from the Packagist:goodby/csv (1.0.1)
raftalks/form (1.2.1, 1.2.0)
One of the large new features in PHP 5.5 will be support for generators and coroutines. Generators are already sufficiently covered by the documentation and various other blog posts (like this one or this one. Coroutines on the other hand have received relatively little attention. The reason is that coroutines are both a lot more powerful and a lot harder to understand and explain.
In this article I'd like to guide you through an implementation of a task scheduler using coroutines, so you can get a...
I'm here to show you how to create sliding panels using CSS and a class name toggle. Why use sliding panels on your app? Because they are awesome, that's why. Also, because they allow users to switch between views whithout the need to load another page.
First things firstBefore we go wild with aocreativity,a we need a simple html structure to work with.
My awesome app
Click me to slide panel
Click me to slide panelNext, we need to bind our panels (.panel) so they toggle the class name .is-anchored from...
More and more conference organizers reach out to me for advice. My advice is not applicable to all types of events, but hopefully it will help to make the task easier and achieve better results. In the following series, I will explain how we manage to organize an internationally recognized conference (ConFoo) run by a tiny group of volunteers. Two part-time organizers and a few advisors, to be exact.
Tip #1: Advisors
The purpose of advisors is to select better content for the conference. No...
On NetTuts.com there's a new screencast posted showing you how to get up and running with the upcoming version of a PHP framework that's been getting a lot of talk over the last year - Laravel 4.As you may know, here at Nettuts+, we've covered the popular Laravel framework a great deal. With version 4 on the near horizon, I've received quite a few emails and comments, requesting a screencast that describes exactly how to clone and work with the alpha version of Laravel 4, as well as Composer. Hope this...
If you're going to be rolling your own user handling in your application, no doubt you've heard that something like bcrypt-ing your passwords is a good idea. Well, Anthony Ferrara has some suggestions for you and shows you seven ways you can "screw up" when trying ti implement it.There are numerous articles on the web about how to properly use bcrypt in PHP. So this time, rather than write yet-another-how-to-use-bcrypt article, I'm going to focus on the mistakes that are commonly made when implementing...
In his most recent post Matthew Weier O'Phinney (lead on the Zend Framework project) takes a look at the PHP Interoperability Group (php-fig) and some recent discussions that have come up about shared interfaces for things like logging and caching.A little over a year ago, there was a new push by a number of folks wanting to do more. Paul Jones did a remarkable job of spearheading the next two standards, which centered around coding style. [...] And this is when we started seeing proposals surface for...
Matt Frost has shared some of his work he's done with the SoapClient in PHP and how he mocked it out for his unit tests (since it's an external resource).The concept of mocking web services for testability took a little while to sink in for me. A big part of it was that my job doesn't see me consuming web services all that often, but I had an opportunity to give it a shot with SOAP. I found that I learned a lot more about testing in general having worked through this. I used SoapClient and wrapped it, so...
The PHP development team announces the immediate availability of
PHP 5.5.0alpha2. This release adds new features and fix some bugs from alpha1.
All users of PHP are encouraged to test this version carefully,
and report any bugs in the bug tracking system.
THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!
PHP 5.5.0 Alpha 2 comes with new features and improvements such as (incomplete list) :
Support for using empty() on the result of function calls and
Vance Lucas has a new post to his site sharing at a project he's been working on, a micro-framework for PHP that takes a functional approach to its structure (and the structure of the apps you can make with it), Bullet.Bullet is a new PHP micro-framework with a unique functional approach to URL routing that allows for more flexibility and requires less verbosity than the more typical full route+callback approach found in other micro-frameworks. The main problem with most micro-frameworks and even...