A project that I'm working on right now required me to migrate data from the existing database to the new database and database structure. Since the application is built on top of Symfony2, I decided to write a Command that would take care of the migration. I ran into an issue though: Doctrine2 insisted on creating new IDs where I wanted to keep the old one. The solution turned out to be really simple.
This morning, I had a nice e-mail in my mailbox telling me I got accepted into the NorthEast PHP conference with no less than 3(!) topics! Awesome, and I would love to be part of the conference, however... the conference is organized by the community, and the way they work, there is no travel reimbursement.
Right, end of the year, time to look back. Let's have a look at the things that have happened this year. If you've read my PHP|architect column in the december issue, you might've already read some things, but my annual "looking back" post here is based more on my blog. So, let's have a look.
posted on December 31, 2011 - 10 comment(s) - tags: php, symfony, 2011
As the year ends, we're looking back at an interesting year. More of that you'll also find in the PHP|architect december community column, which I've written looking back at the year a bit. But that is about the PHP community, not about the global community. We should be grateful for living "in the west", where despite economic issues, we live a good and usually healthy life. And if we're ill, we can get treated. And depending on social system and insurance, we still get paid, even if we can't work for a while. There are places in the world where this isn't the case. I personally believe we have a responsibility to support those that don't have all the opportunities we have.
What to do when you want to migrate to Symfony2, but can't invest the time into rewriting your whole application at once? I get this questions sometimes, and I've asked myself as well for some time already. Talking to other people, I found I was not the only person struggling with this issue. Wrapping Symfony2 around your old application is one option, and I've found this works well in some situations. To automate this, I wrote a very simple wrapper bundle: IngewikkeldWrapperBundle.
Just a little heads-up for people working with Symfony2/Twig: Today I ran into an issue that I couldn't figure out. "It shouldn't be this hard..." I thought, and indeed, it turned out not to be as hard. It's just easy to overlook: Make sure to close your twig tags correctly
I'm happy and proud to announce that I will be speaking at the D-Day conference in Finland. I will be doing my "Don't use a screw when you need a nail" talk there, a talk I've done before at Symfony Live in San Francisco and Paris and highly enjoyed doing.
In August of last year, I wrote this excited blogpost about phpBB joining the Symfony2 camp by announcing they were going to use Symfony2 as the basis for their new version. Things like this are exciting, because it will allow several communities to work on the same software: Symfony2 developers would be able to help with the development of phpBB, and the other way around. Now, the same thing is happening with Drupal. Even though they are not adopting the full Symfony2 stack, they have just started implementing some Symfony2 components.
I have been aware of Silex for a while as a nice microframework based on Symfony2, and have looked into it a couple of times to see if it would be useful for a project. So far though, the projects I was working on seemed to need more than just Silex, so I picked Symfony2 instead. This morning, I decided to dig into Silex a bit more with a real-world project I still wanted to develop myself: A URL shortener.
Some time ago, inspired by the #linktuesday initiative Lorna started, I built this relatively simple website which I put on LinkTuesday.com. It fetches tweets from Twitter with the #linktuesday hashtag, groups them together and then displays them in various rankings. Insanely simple idea, insanely simple execution.
The PHP job market is booming. Lots of companies are looking for (good) developers, but these are hard to find. Lots of developers are looking for a (good) job, but these are equally hard to find. Wait, that sounds strange... but it's true.
It's been a busy conference year for me. In the first half of 2011, I was away from home for (on average) one week every month. While I've really enjoyed all the conferences, it's been busy. A bit too busy. So for the rest of the year, I've decided to take it a bit slower. Basically, I'll be at 4 conferences, and that's it.
Today I encountered a situation I've not encountered before: I have a project-wide stylesheet that should be used for everything, except one specific module that has different (brandable) stylesheets. I created a view.yml for this module with a different stylesheet, but of course the configuration files are merged so it doesn't actually overwrite the main stylesheet file. And this wasn't really what I needed here.
In January I announced that I had become a Sensio training partner. So far, I had not scheduled any training sessions though. With Symfony2 nearing completion though, it's time to change that, and I've finally scheduled my first training session on Symfony2.
Recently in an article (Dutch) in Dutch publication "Webwereld", Drupal advocate and developer Bèr Kessels stated that while Drupal is an awesome CMS, it is not a good fit for government websites and other big projects. An interesting statement for someone from the Drupal camp to make. While Bèr has some valid points, his statements are a bit too generic for my liking.
Over the past years I've done several talks at conferences on how to contribute to the community. The ones that most stood out to me so far have been the talks in Chicago at PHP|Tek together with my friend Lorna Mitchell, and the one in Paris last year at Symfony Live. In all those talks, I tell people that a good way to contribute to the community is to write blogposts.
So as you might or might not have noticed yet, PHPBenelux is organizing a new contest in collaboration with Microsoft: The PHP on Azure contest. The idea is simple: Build an application in PHP that runs on the Windows Azure platform. I think it's a great idea to participate, let me try to tell you why.
Some of you might have already seen me presenting my "Would you like docs with that?" talk at a conference, as I've done it a couple of times already. If you've not seen it yet and would like to, this is your chance!
For a project I am working on right now, I needed to generate barcodes and QR codes. Looking around for solutions for the barcodes I quickly found Zend_Barcode (thanks to someone pointing me to it, by the way. I had not expected a barcode generator in Zend). For QR, it was slightly harder to find a good solution. A quick question on Twitter helped a lot. In the end, it boiled down to two options: PHP QR Code and using the Google Chart API.
For some time now I've been working on a partnership, and it is with great pride and happiness that I can now officially announce it: My company Ingewikkeld is now an official Sensio trainingpartner for Benelux and Germany. This means that as of January 1st, I am now able to officially offer all Sensio courses in these countries.
I am very happy to announce that I will be speaking at both of next year's editions of Symfony Live. In February I will be travelling to San Francisco for the American edition of Symfony Live, and in March I will be present at the European edition of Symfony Live in Paris. At both conferences I will be giving the same talk: Don't use a screw when you need a nail.
So earlier this week I attended this year's Fall Edition of the International PHP Conference in Mainz. They were celebrating their 10th anniversary (with waffles!) and had an excellent schedule again. I was scheduled for given two talks but took the opportunity to also attend many of the conference's talks. And obviously I also was present in the hallway track for quite a while. Let's see what I learned at the IPC.
It's going to be an interesting week in October, when I'm speaking at SymfonyDay right before the weekend, then doing the International PHP Conference right after. But it's going to be a PHP-filled week for starting the 9th of October. In Cologne I'll be doing a workshop on starting development with symfony, and in Mainz I'll be speaking about documentation and integrating symfony and Zend Framework.
Earlier this year at the Symfony Live event in Paris, I spoke with Nils Adermann, the new lead developer of the phpBB software. At the conference it was announced that phpBB was considering moving to a Symfony basis for their upcoming version 4. Since then, an RFC was posted and given the schedule for the Libertyvasion conference organized by phpBB, they're gearing up to dive deep into Symfony. This article reflects the thoughts I've offered at the Libertyvasion Conference on the combining of powers of phpBB and Symfony.
About a month ago my good friend Lorna Mitchell put out a call for stories on how working with Open Source has influenced people's careers. Given that a lot of my recent career has been driven by my involvement in Open Source, I shared my story with Lorna. But I also wanted to share some of my story with everyone. So here is my story and opinion on how Open Source can influence your career in a positive way.
Time for a new adventure. Last monday, my wife Marjolein and I visited the local Chamber of Commerce to register our new company: Ingewikkeld. We're both doing completely different things, but we've decided to capture both into a single company because it saves us a shitload of administrative work, and since we're married anyway, it doesn't really matter. I (could you have expected something else?) will be offering (PHP) development, consultancy and training services, and my wife will be a baby wearing consultant.
This week there was an interesting discussion on twitter between several people from the PHP community on the use of access modifiers, and why things should be public, protected or private, or why not. The thing that triggered this was the fact that the new Symfony2 Coding Style disallows the usage of private methods. This discussion earlier on triggered Lukas Smith to post his opinion. I commented there but the comment became thus long that I decided to write a blogpost about it myself.
Just like last year I will again be present this year at the Symfony Day Cologne, which is organized by my friends at Interlutions. Last year was a huge success with many attendees, a wonderful list of speakers, and a great party afterwards. This year will be at least just as good, and is slightly extended: I will be doing a full-day symfony workshop not just on the Symfony Day but also on the day after.
After having set up my environment and started my first coding, yesterday I actually got to play around with Azure. And really, it isn't all that hard! Things like "cloud computing" and "Azure Storage" sound complicated, but I found out that, using the right tools, working with that is a breeze.
So time for some work on my European WinPHP Challenge entry tonight. Previously, I worked on setting up my Windows environment, and now it's time to work on getting my basic PHP setup running and configure the webserver to actually serve my PHP stuff.
Error pages. Most people don't really consider error pages when building a website or application. They usually contain some debug information so that when something goes wrong the developer knows what is wrong. But in a lot of cases when an application goes into production, this information is still exposed.
The past week was the week of Symfony Live 2010 in Paris. One of the people there was Nils Adermann, the new Lead Developer of the phpBB project. The biggest news was that phpBB is considering moving to Symfony 2 as the basis of their new version of phpBB: phpBB4. As a result of this conference, Nils Adermann posted an RFC for this. This is my response, which I post here as an open letter to the phpBB community as well as in the thread where the RFC is being discussed.
Two days have passed now since the PHPBenelux Conference 2010. On the one hand, I feel a bit stupid to have spent the majority of my free time into a conference I can not really attend any sessions in. On the other hand, I'm so grateful that I did. Let me elaborate.
So, now that I've looked back at 2009, it is time to look ahead at the coming year. I already know it will be quite an exciting year. But it's the future, so we can't predict everything that is going to happen. But there's quite a few things I already know will happen.
With the new year having started, it's always fun to look back at the previous year. Something I've donebefore in previous years. 2009 for me was one hell of a year, both in the positives and in the negatives. It means lots of conferences, but also a forced change of job. Let's have a look at this year.
Great stuff is happening today! I would dare to say that to date, december 1 2009 is probably the most active and important day in the history of the symfony project! Three(!) new versions have been released, amongst which the first of the last branch of symfony 1, and a new book is available in the form of an online advent calendar and a print book.
Recently, I was involved in trying to solve a blocking issue at work. It took us quite some time to figure out was what going on, and it ended up being one of those cases of "If it ain't broken, don't fix it". So, even though everybody knows about this line, I want to give it some extra attention.
As I'm writing this (though it is published later), I'm sitting in the sunday morning program of the PHPNW09 conference in Manchester. The conference started on friday night with speakers dinner and a social, with the main conference on saturday, dinner and drinks afterwards, and now the slightly less official sunday morning program. It has been a great conference.
Last tuesday was the phpBenelux meeting for this month, which took place in Tilburg at the office of Freshheads. Given I was helping with the organization *and* speaking, I was a bit stressed upfront. Things worked out well though, and we had a great meeting. This post contains a short report of the meeting as well as my slides for the "Integrating symfony and Zend Framework" talk I did.
Last year I was a speaker at the PHPNW08 conference in Manchester. It was a great conference and I've met some wonderful people there. We even held a short symfony update meeting there in one of the rooms during a break. I am happy to announce I will be a speaker again this year at the PHPNW09 conference!
In the past week I have been very excited about symfony Day Cologne, and now that it's over, I was right to be excited. What a wonderful event it was! It was very nice to meet all the people, and I had a great time doing my workshop.
On monday, I started my new job at Unet. And now, I am ready to announce another new job. I have been approached by Kris Wallsmith, the previous community manager of symfony, to see if I would take over that position, and I am excited to say that I have said yes to this job!
I am quite excited to announce that I have found a new job. Starting two weeks from now, I will be working at Unet, a dutch company for broadband, fiber and VOIP services mostly aimed at the business market. My job will combine senior developer work with being the team lead of the PHP development team at Unet.
Over the past weeks while I was trying to find a new job, I've made an interesting observation. Well, I made the observation before already, but my interviews over the past weeks have confirmed it: Most developers seem to limit themselves to a single framework. Be it Zend Framework (more popular than I even thought), be it symfony, there's even still a huge amount of custom "we built it because we have our own needs" frameworks out there, even in companies doing things similar to any other web development company out there.
While at the PHP UK Conference, O'Reilly had a stand. A new series of books caught my attention because they were not the standard "animal on white cover" book I had come to expect from O'Reilly. After looking at those books, I made my pick and went for Neal Ford's The Productive Programmer. A wise choice, as it soon turned out.
While Paris had Symfony Live and Nieuwegein had Joomla!Days, Amsterdam had the Dutch PHP Conference last weekend. Three days completely packed with the most amazing content from speakers that flew in from around the world. Let's have a look back at this amazing event.
Much has been said already in the past days and weeks about the PHP standards initiative that was started by a group of PHP developers at the php|tek conference two weeks ago. As I was there but have not really given my opinion on this in public, I will do that now.
Last week I attended the php|tek conference in Chicago. It was one hell of a great conference, definitely one of the best conferences I've ever been to. I got to meet many people I'd only spoken to online, got to attend some great sessions and got to do some nice presentations.
Last year's TestFest was a huge success. The worldwide initiatives by usergroups and individuals gave a nice addition to the code coverage for PHP itself. This year, the TestFest period has been extended to 3 months, starting the beginning of this month and ending end of june. But a nice bunch of European usergroups including the Dutch usergroup are combining TestFest on may 9th!
Last week we had a usergroup meeting in Amersfoort, and quite unexpectedly we announced that we'll have another one next week. This is slightly unusual, but you got to recognize opportunities as they arise.
For quite some time I've been struggling to set up the backend of a symfony application to be served from a subdomain that is being served by the same document root, to no avail. My backend subdomain would keep serving my frontend. Today, by accident, I found out which stupid mistake prevented this from working, so I thought I'd share.
As we all know by now, we're living in times of crisis. A recession is hitting us, and it's hitting us hard. Even here in The Netherlands, where at first it seemed we'd be avoiding the biggest hit, we're now getting reports that the recession is the biggest since WWII. The crisis seems to be hitting bigtime in many places. So how does it affect open source and PHP?
This week is the week of PHPCon Italia. It already starts on wednesday with workshops, and has two conference days after that. I'll be speaking twice on thursday, in the morning I'll talk about the symfony framework in my myphpbusters talk, and in the afternoon I'll go into refactoring.
phpUnderControl is a continuous integration setup for automatically running certain tasks on a project such as testing, documentation building, code sniffing and more. It is based on CruiseControl and uses PHPUnit by default. The default symfony unit testing framework is not PHPUnit, so it was time to enable continuous integration for that.
Ever since starting with PHP 5 object oriented development, all documentation I read on the topic seemed to suggest that the only way to write the method keywords is "public static". I've been following along those lines, and for a while I really thought any other order would trigger errors. Only recently I found out the other way round is actually nicer.
This year's edition of the Dutch PHP Conference will be taking place on June 11-13, and the Call for Papers is now open. So all of you, I know you have something interesting to say, now it's time to let the DPC know!
As I did last year, I wanted to have a look at this year. This year was quite the year for me, with the birth of our second child, a lot of conferences, the reviving of the dutch PHP Usergroup and new symfony versions.
I've been really busy lately hence it being quiet here. My TODO list has quite a few topics I want to write about, I just need to find the time. So what have I been up to? Mainly Jobeet, work and Spore
Francois Zaninotto, one of the two authors of the symfony book and a former core team member of symfony, announced yesterday that he is fully stopping active contributions to symfony. Even though it is always a shame to have less contributors, it is not the disaster that some people may think.
posted on October 31, 2008 - 0 comment(s) - tags: symfony
Continuous Integration. It is something that a lot of companies don't actively work on. It is very useful though. I am currently working on bringing CI to symfony in the form of phpUnderControl. This message is a short status update for those who already knew I was working on this.
With symfony 1.0, one of the nice features was the freeze option, which allowed you to package the symfony libraries inside your project quite easily. This was very useful, for instance when deploying your project on a server where you couldn't install symfony. With symfony 1.1, it is apparently not advised anymore to use the freeze option (even though it is still available). So how should this be done then? Let's have a look...
So today was a good day. The only thing bad was the fact that FC Utrecht lost in the dutch cup and is thereby thrown out. By Ajax, nonetheless. However, that is quickly forgotten when I think of all the good things.
After having organized the event last year, I am very happy to announce that I will be speaking at this years edition of the SymfonyCamp in Leusden, The Netherlands. SymfonyCamp is one of the best ways of getting in touch with the symfony community - and you'll learn something in the process.
Today I tried the DbFinderPlugin for the first time. I am truely impressed. Using this plugin, it is not necessary anymore to really care about which ORM you pick for your project. It's the thought behind symfony 1.1 taken into the symfony ORM-selection.
Last week, I put online the new version of my dutch symfony advocacy website: symfony-framework.nl. The main focus is not advocacy anymore though, I feel that even though that still needs to be done, it's not anymore the main thing needed in The Netherlands.
While playing around with the Zemanta API today, I bumped into a small problem. I first attempted to do it in symfony using the sfWebBrowserPlugin, but as I kept running into a 403 Developer Inactive error, I decided to try other tools, to see if the problem was on my side or on Zemanta's side. The problem, as it turned out, was on my side.
Last year, back then I was not yet employed by Ibuildings, I spoke highly of the Dutch PHP Conference. It was an excellent event, with enough variation in speakers and topics. This friday and saturday, this year's installment of the same conference is taking place.
Recently I wrote a review of Getting Real , the book by the guys from 37signals. But how, if at all, does this apply to, for instance, symfony ? Let's take some points from the book and see how symfony does...
When I recently did a presentation at pfCongrez , as a thank you I got the book Getting Real by the people of 37Signals. I had until then not heard of the book yet, but it's an excellent view on software development.
I just did a quite big update of the software running this site, adding some new features. Some are as easy as putting a little script on a page, others are quite a bit harder. Let's have a look at what I added.
I started using symfony by taking a single workday to walk through the first seven steps of the Askeet tutorial. After that, as time was scarce, we dived into the project we were planning to use symfony on. Here I'll present you with some tips that I either found or experienced myself.
Last year, while I was not yet working for Ibuildings, I did an introductory session on symfony at the Dutch PHP Conference. I was really looking forward to the event , and it turned out to be the success I expected . Ibuildings proved beyond a doubt that they organize a killer conference! This year, the DPC is back, and stronger than ever!
You can configure a lot of caching in symfony, so rarely do you need to cache things yourself, but it may happen that one day you decide you need it. I came to that point when I wanted to cache certain results from external web services. I could have used the Function caching, but in this case I wanted to keep a bit more control, possibly altering the cache etc.
In the development lifecycle of web applications, I think deployment is something that doesn't get nearly enough attention of developers. But where you can test your code, testing deployment is a bit harder. A good system for deploying applications is therefore a useful thing to have. Symfony has a very easy and strong system for deploying applications based on rsync.
Steer CMS is a new open source application based on symfony. It offers a CMS for websites in a way similar to other open source CMS'es, yet is based on symfony and so quite a bit more interesting to me.
Due to yesterday's happy news I only picked up on another joyful thing happening yesterday somewhere very late in the evening. So let me announce it today: The episode I recorded for the PHP Abstract Podcast on symfony was published yesterday.
On december 20, the symfony team organizes a symfony sprint : A full day of work on just symfony. From fixing bugs to getting the documentation up to speed. And I will also be working on symfony that day, helping out with this symfony sprint.
posted on December 11, 2007 - 0 comment(s) - tags: symfony
Second Life is gaining popularity these days, amongst geeks and non-geeks. It's taken me a while to stand and understand the use of Second Life, but especially for knowledge sharing I see the use after attending a presentation inside Second Life. And since my wife is very good at creating things in Second Life, the idea for a hangout place for symfony enthousiasts was born.
posted on November 11, 2007 - 2 comment(s) - tags: symfony
As you can see, I've created a tag cloud implementation here on my website. For this, I actually started writing a plugin, and I'm actually still working with that one here. But since the functionality was already implemented in another plugin as well, after a short discussion it was decided that my more limited implementation (just the tag cloud) would be moved to the snippets part of the symfony website as a helper.
posted on October 28, 2007 - 7 comment(s) - tags: symfony
For a client, I had to present a bunch of select boxes where users could select a genre, then a sub-genre based on your genre of choice, then a second level of sub-genres based on the selected sub-genre.
posted on August 13, 2007 - 2 comment(s) - tags: symfony