In July, after another few months in Spain as a PHP consultant for a European debt collection company, I have been trudging along with my family in Kalmar. I am still doing consultancy work as a PHP developer and mostly for the very same company. It's a great opportunity to work with PHP in a financial context where accuracy and quality is important. But the last couple of months I have also been busy setting up a new company as Artamus AB is investing in myASwedish event guide AEvenemang.se. This means...
For a while now, I've had a renewed interesting testing applications - unit, functional, performance, etc - and have been learning all I can about the software you can use to run these tests. Obviously, one of the mainstays of the PHP world is PHPUnit for unit testing. There's a few others out there that are good for other kinds of testing - too many to name (and lots that aren't written in PHP).
Lately, though, I've been looking more at testing the frontend of applications and their flow. I started...
When scale and performance is important, you start to look into moving operations into synchronous or asynchronous tasks. This is important for any web application that must scale out and/or to add new ways of handling feedback to your users. While I will not be going into detail of how to operate Gearman or briefing you on ways of utilizing gearman, what I am going to show you is how to incorporate Gearman into being it's own Zend Framework application.
This article will go into incorporating Gearman...
Job postings for the past week:Job Posting: GoDaddy.com Seeks PHP Developer (Phoenix, AZ or Denver, CO)
Job Posting: Apollo Interactive Seeks PHP Programmer (Culver City, CA)
ASo last week I went to Symfony Day. All the other Liipers where having fun at Herbstausflug, but my recently operated knee appreciated the more intellectual alternative to having fun. The conference was amazingly affordable for such a nice location. Food and drink were also included, though the Wifi was a bit flaky. The line up was also quite impressive with Jon and Kris coming all the way to the US for the event. Fabien also gave another talk in his "The state of Symfony2" series.
Admittedly ever since...
Jay Allen has found what he calls the world's smallest MySQL admin script and has posted about it to his CodingThis.com blog - Adminer.I've spent years using phpMyAdmin (much to my chagrin). And I've recently warmed up to MySQL Workbench. But it wasn't until this week that I stumbled across Adminer, a single-file PHP application for MySQL administration. It's hard not to be impressed by Adminer, which is both devilishly simple and elegantly designed. The file downloads as adminer-2.3.2.php; save it as...
Lorna Mitchell has new post today pointing out the release of both the slides and the audio from a presentation she gave at the PHP UK conference (back in February of this year) about some of the best practices in API design and development.I really enjoyed giving this talk, since I work so much with APIs and enjoy sharing my ideas. The audio is now online so if you missed the talk, feel free to have a listen. You can also see the slides (on slideshare) and also read the series of blog posts I wrote on...
New on the Zend Developer Zone today there's a post that looks at working with the Zend_Registry component of the Zend Framework and how deleting the index out of it directly could be a bad thing for your application.Zend_Registry is the implementation of the Registry design pattern in the Zend Framework. It is similar to the $_GLOBALS array in pure PHP, but unlike it, it does not provide a transparent way to unset values at a specified index. As you will see in this short article, there is a very simple...
On the ServerGrove.com blog today there's this new post showing you how to create console commands with your Symfony2 codebase in addition to the normal websites you might have generated.Symfony 2 is mainly used to create web application, however, sometimes you need to extend your app and need a command line tool to help perform tasks around the application. With symfony 1.4.x these were called tasks and it was possible to create a skeleton by using the symfony generate:task task.While there's not a tool...
Popular posts from PHPDeveloper.org for the past week:Advanced PHP Tutorial: 7 Useful functions to tighten the security in PHP
Adminx Web: 15 Best Ever PHP Frameworks
Gonzalo Ayuso's Blog: Speed up PHP scripts with asynchronous database queries
Simas Toleikis's Blog: Idea for a PHP Validator
FlashFlex.com: A survival guide to building a successful open source project.
Rob Allen's Blog: A form in your layout
UltraVisual Blog: Running PHP Eclipse with FDT / FB & Ant
Pique Web Podcast: Episode 5 - Web...
Earlier in the year I gave a talk at PHP UK in London entitled "Best Practice for API Design". I really enjoyed giving this talk, since I work so much with APIs and enjoy sharing my ideas. The audio is now online so if you missed the talk, feel free to have a listen. You can also see the slides (on slideshare) and also read the series of blog posts I wrote on this topic which originally inspired the talk.
The International PHP Conference 2010, the 10th instance of this yearly PHP family meeting, ended yesterday. It was an amazing event again and we had many nice discussions. Beside that, all three Qafoo members presented talks on various topics, for which we now uploaded the slides to our talks page. Find below a short review about our sessions. If you attended any of them, please do not forget to give us some feedback via joind.in!
This week the International PHP Conference was held in Mainz, Germany. Bastian and I (Jordi) attended since we were both speaking there.
The conference was overall quite good, it was the 10th edition so they definitely know what they're doing with the organization. I first held a talk about knowledge sharing presenting all the ways we encourage that at Liip, and trying to get a discussion going with the audience, which worked fairly well I believe. The other two talks of mine, about web security and...
This post is just a heads up that development in
is still going on.
In 2010-06-09, your own bookmark manager had been released with
a number of bug fixes and some new features:
A number of SQL optimizations - the tool lists bookmarks 4 times faster now
Improvements on the delicious-compatible ajax API
On 2010-09-28 I got a private security-related
that there was
a permission problem...
I've been kicking around an idea for a while now, discussed with some friends, but don't have time to implement this just yet. AI may use this at the core of a project early next year, but I wanted to get the main idea out there now. APerhaps others are already doing this, but I haven't seen it anywhere (yet?).
Currently, many apps tie in with twitter/facebook/etc for authentication - a third party openid server indicates to the original app that you are who you say you are. AIn some cases, there's even...
I had requests from a couple of people for methods to pay for indieconf registrations without using a credit card. AI thought I'd already offered these with eventbrite, but may not have turned them on. ASoa if you were holding off registering for indieconf, you can register now and pay at the door, or pay via check, or request an invoice. AHow's that for choice?
Did you ever want to see the database queries an arbitrary PHP MySQL application runs? It takes two free downloads and 62 characters to see them.
Get PHP 5.3.4-dev
Add 19 characters to your configure line: --enable-mysqlnd-qc
Add 43 characters at the end of applications source, e.g. using the auto_append_file configuration setting: var_dump(mysqlnd_qc_get_query_trace_log());
Start your query analysis
I just released version 1.3.0 of SabreDAV. Uptake has been very strong, especially for the CalDAV components. The biggest change is a big performance boost for most tree operations.To upgrade, download the new file here, or if you installed it using pear:pear upgrade sabredav/Sabre_DAVpear upgrade sabredav/Sabre_CalDAVTo install using pear:pear channel-discover pear.sabredav.orgpear install sabredav/Sabre_DAVpear install sabredav/Sabre_CalDAVThere is a list of 4 (smallish) backwards compatibility breaks...