How do you go about developing your app?

I’ve been using Joomla for all my development so far. I’ve never had to write a single line of code before.

But now all that is changing, I’m forcing myself to dabble with pure php and it’s a lot of fun.

So my question to you is how do you go about developing your applications?
Do you prefer to use an existing Framework? If yes, which one and why?

I found CodeIgniter to be really good, mainly because Grocery_CRUD is a really good plugin to be used with CI but it also has its limitations.
I didn’t find too many meaningful CI tutorials out there, many of them were out-dated as it is.

And if you don’t use a Framework, how do you do it then?
How do you deal with redundancy? What about using a unified template for the whole site?
Do you use OOP?

You’re going to get a myriad of answers, it’s all personal preference and a matter of how one originally ended up learning.

I personally use a custom built framework that does the basic MVC functionality and has functions that I commonly need. I built it based upon learning how some of the main stream frameworks work, but in the end it’s all my code and done my own way (I like to keep things as simple as possible)

I’m not a fan of using other’s code and learning their style because I like to have full control over all my code.

All major PHP sites I work on at work use Drupal 6 and 7. So guess you can say I use that… though much prefer to build things myself. It is a love and hate relationship with Drupal. Some days I love it and other days I can’t stand it. If I had my way though I would rebuild everything using Symfony 2. However, that is quite difficult to do when you have 100s of none technical users who have been using Drupal for 5 years. In most cases unless you are a freelancer or have the chance to start at a company from the beginning there will already be software and methodologies that are promoted.

In most cases you can’t just do things the way you want because if you leave people have to have some relative idea how to support what you have done. Establishing a consistent system to use and promoting certain methodologies is one way though leaves little room for creativity in some cases. Some of the things I have seen in Drupal modules especially in those modules that rely heavily on ctools makes me want to cry. However, not much I can do about it.

You will find that is kinda the way it is if you start working at a company which is been around for a while. Things are already established and in many cases it is not cost effective to replace things. So go ahead and experiment now because unless you remain a freelancer all your life that is kinda the way it works.

To be fair though Drupal itself isn’t a ba*stard besides for being bloated it is the many morons who promote things like serializing gigantic objects and stuffing them into a single table column like ctools export ui which many modules rely on heavily. I’m kinda picking on Drupal because it is what I’m forced to use but it would likely be the same with any system. There are always things that suck about other peoples decisions.

I’ll first have to agree with wonshikee that it’s largely about personal preference. Most of the important factors for choosing a framework have no objective measurement.

With that disclaimer out of the way, I also highly recommend Symfony 2. I’ve found the code architecture to be astoundingly good, and I’ve found the APIs to be remarkably easy for the common cases but still flexible and powerful for the rare cases. And if you like CRUD features, then you’ll be glad that Symfony has that as well.