The Perfect PHP Framework

I’ve been looking at a lot of framework recently, Zend Framework, Symfony, CodeIgniter, Yii, Prado, Lithium, KohanaPHP, Recess Framework, Akelos, Fuse Framework, Solar Framework, Seagull Framework, Fuse Framework, PHP on Trax, etc and haven’t found one that suit my all my needs. I’ve been using Zend Framework for a couple of years now and am pretty happy with it, however recently I’ve been creating web apps which mainly deliver content through a REST API, which ZF does not support out the box.

I’ve also been meaning to look into Ruby on Rails, but this is a bigger commitment as I don’t know ruby. The main reason for this is developers are still going on about how great Rails is even though that the buzz has died down, coupled with the fact that the rails team have just released v3 it seem like a good time.

After going through a few basic tutorials of Rails I could immediately see the benefits, even though I was developing on a Windows machine and Rails is slow as hell. The main things I love about Rails is scaffolding, instant REST in XML and Json, the command line interface CLI (and I thought I would hate that) and other things I mention below.

My main concerns with Rails were my speed of learning and then convincing everyone at my company it was the way forward, finding web development work in Leeds for Rails and the lack of hosting companies offering a server with Rails as a setup. Hence, I decided to have a really good look round at the PHP Frameworks to see if there was anything that come close, so far my attempts have failed.

Here is my perfect PHP framework

Thing I need:

  • PHP 5+ (I need autoloading!)
  • MVC
  • No templating language, I just want PHP
  • Optional Command Line Scaffolding which creates CRUD Models and Controllers
  • Automatically exposed REST API with xml and json formats
  • Fast
  • No huge config required
  • Nice strict code conversions (e.g. Zend or Pear)
  • Easy to use cache (automatic would be nice)
  • Validation
  • Good documentation
  • Production Ready

Things I would like:

  • Modules
  • Support for multiple databases (master, slave)
  • Big community

Things I don’t care about (which other people seem to):

  • The size of the Framework
  • PHP 5.3 Name spacing

I think for the moment I will stick with Zend Framework, do the Yii Blog Tutorial, learn more Ruby on Rails and continue developing my own personal php framework.

My Perfect Future

I’m currently reading 59 seconds by richard wiseman and the first task is to write about my perfect future as apparently this will help improve my happiness. Also I think it will be useful in the future to look back and see what my hopes and dreams were.

Written on the 13/10/2010
Starting with my business life as that seems to occupy most or my time at present. The agency will be running by itself with great staff, loads of big clients and bringing in plenty or money (not that, that will matter, as I will be rich from selling a large number of shares of the review business). The web app business will also be booming with over 1 million paid users between them, this was only possible due to the first web app being used as a template once it was built and stable with a decent and growing user base.

In the earlier years for the most part I can be found Travelling to new places, learning new skills, taking on adventures and/or exploring new business opportunities. Some of the work will involve charity, however not in the traditional sense, all charity work will be built around stastainability so that in the long run my ideas and work will continue even without me.

Later I will have two kids with a wonderful, caring wife both of which I will spoil and always have time for, no matter what I’m doing or where in the world I may be. More than likely we will live in a small town or village, with good links to a major city, we will have a large garden with a pond, sometimes ducks, a massive tree with a tree house, chickens and a pet dog and cat. We will attempt to grow fruit and veg and although they will be edible they will never be as good as the ones we normally buy from the local market.

In the garage I will keep my vintage AC Cobra, other sports cars (eg Porshe, Fararri, Veyron, Aston and 205 Gti etc) along with my day to day fuel cell car (built by the company of which I will own a decent share). I will also have a small work shop that will be full of parts from my Katrom 7 and Classic Ducati, it may also be used to help mend the broken fence or add a swing rope to the tree house.

After some time I will attempt to further my education of physics, possibly doing a PHD at the local university. I will be famous but only in the small village where everyone knows everyone and where the new years party is always held in the local pub, which brings together friends and family I never seem to see anymore.

Most importantly, it will be a happy life, not because of the achievements or money but because of the feeling of never wasting second of life and of the knowing that there are always family and friends that care.

I thinks that’s all I want.

PS. I will also have found a way to live youthfully longer, about 100 times longer.

How to Take your Start-Up to the Next Level

I’m always on the look out for new great “how to” videos or books for setting up and marketing web apps. I’ve always liked the presentations and talks from Aaron Patzer from Mint.com, which he started and sold for $170 Million within 3 years. He’s talks are very open and frank and I think they make a lot sense.

Just found this great talk from FOWA Miami 2010. Some of the key points Aaron makes are:

  • Solve a real problem (in a large market)
  • Will the problem exist in 5 years time
  • Have a real revenue potential (get an idea of revenue per user)
  • Sustainable advantage (best user interface, quickest, best features etc)
  • Share your idea
  • Validate the idea (ask people in the street)
  • Buy a great domain name
  • Get alpha users
  • Interview using Top Grading approach (ask why a lot when interviewing new staff based on the book Top Grading)
  • Hire an aggressive PR company, when you are ready!

The Agency Dream

The agency I have now is not the agency I wished for!

What do I mean by that? I had a dream of being the ‘best’ agency around, with work that everyone would envy, designs that would make people say wow to, an agency that people who are passionate about the web would aspire to design like and want to work for, basically an awesome agency. Don’t get me wrong, I’ve got great staff, I’ve got a great office environment and we work with some great clients but we’ve bent too many of my/our morals on the way.

My agency would be amazing, if it wasn’t for clients.
We would produce stuff of dreams, with no boundaries, no ‘make my logo bigger’, no compromise and no IE6 but we would also be out of business. At the end of the day we have to pay wages and bills and the only money we get are from clients, so although they’ve ruin my dream they also make my dream a possibility.

Don’t get me wrong we have tried to draw a line, we have tried to explain to clients that a bigger logo isn’t the way forward, we tried to explain that it’s not wasted white space, its part of the design and brings balance to the page and increases usability, we’ve tried really hard to explain that it’s not what you want that matters it what your visitors want to see but in the end it’s up to the client. The only analogy I can think of is trying to explain to a child that sweets aren’t good for them, no matter what you say, no matter how many white papers or proofs you bring to them they are still going to eat sweets.

I have come to a few conclusion:
1. That to produce something amazing we have to produce it for ourselves for no other reason that we simply can; without the annoyance of clients, money or a brief. The only issue with this great idea is time and money.

2. We need to produce a product that we can love, like a web app with features and designs we decide upon, with users that want to use our software without the ability to interfere.

3. Sometimes we need to stand up for our principals and tell clients that we are unwilling to make the changes they want, despite the cost or emotional turmoil that may bring.

So what are am I going to do about it?
We are going to dedicate 1/5 to 1 day a week to a internal project of our choosing, but until we make our millions from our internal project we will still be saying “yes, if you really want..but you really shouldn’t because…” to clients.

The Best WordPress Social Sharing Plugin

I’ve never found a social sharing plugin for wordpress that I liked. With my old site I resorted to adding the social sharing icons (Digg and Reddit) manually to the html and php but since then a few more social shares have popped up: Facebook like, Facebook share, Twitter share, Google Buzz etc.

Most of the wordpress plugs have a rollover popup of some sort with hundreds of tiny icons for every social network on the web, recently however I have come across “Simple Social – Sharing Widgets & Icons“.

Simple Social – Sharing Widgets & Icons in my opinion has the import networks Digg, Delicious, StumbleUpon and Reddit but also has the all important Facebook “Like” button and the new Twitter button. The plugin also gives you a choice of small or large icons which look lovely.

Download Simple Social – Sharing Widgets & Icons

Twitter Updates