views:

408

answers:

5

I've been using Drupal for some time and have been a bit frustrated with how it takes a lot more work to do things the Drupal way than if I were writing custom code from scratch. Sometimes I spend the day not coding, but just searching for the right solution to weave my idea into the drupal flow. This has led me to think of moving back away from Drupal into something that allows a lot more creativity. But I also don't want to go back to writing custom PHP from scratch.

So I'm thinking a possible solution to this dilemma is to go somewhere in the middle and use a framework. I've done some research and Symfony is looking very sweet right now.

But I need some input from those who may have experienced what I'm experiencing right now. Am I making the right decision? What are the good things that Symfony offered you that a CMS like Drupal didn't.

Please say whatever comes to your mind. And thanks for your feedback.

+2  A: 

Maybe this will be helpful for you: Blog-Entry

Timo
+4  A: 

If you are spending a day searching for how to do something, you are definitely doing something wrong.

I think I managed to understand Drupal in a few months working with it. I didn't know all about Drupal, but I had a general idea of how it works. It's actually not that hard to grasp either. I won't go into details about how Drupal works here, but you can read Eaton's post here on SO.

In my experience, Drupal is a great development framework and due to it's great community, you can get a lot done, in very little time.

It seems like your problem is, that you haven't gotten Drupal yet, and not that Drupal is bad. I would suggest that you stick it out, in the long run, I'm sure you will be more efficient and faster, than what you can do with a framework like Symfony.
However, it also depends on what you are doing. If 90% of your site, is custom coding, you don't really need Drupal, as it brings a lot of nice CMS features with it, that can get in your way, of you are making something more like an app, than a website. But if you are creating sites, with content, users, etc, Drupal will get you far in no time. It's just a matter on selecting the modules you need.

So if you are creating websites, stick with Drupal, there's a reason why so many do. I think you will be happy for that decision once you get over the learning curb.

A good book, to really help you along with Drupal development is Pro Drupal development, if you don't have it already, you should get it ASAP.

googletorp
Hmm, To clarify your assumptions. I'm beyond the learning curve. I provide support on drupal.org so I can't agree that I haven't gotten drupal yet. But when it comes to advanced work, Drupal can really wreck the brain for things that are straightforward to implement in plain PHP. I really think that Drupal is most useful for beginners and intermediate projects, but not for advanced work. Since you mention Eaton, in one of their DIWD conferences, Eaton demo'd how to build twitter with Drupal but advised against using Drupal to build a custom app like Twitter. You see what I mean.
dave
I work with Drupal, almost 10 years now, I give (professional) Drupaltraining, -support, development consulting. And I see dave-s problem a lot. There are a lot of areas where Drupal is not appropriate. A lot of which involve customwork.
berkes
+4  A: 

As usual - take the tool that suits you best - there's no "must". First. you are comparing wrong things - you are doing CMS vs Framework - tool already built with tool that enables you to build. I know that Drupal lies under its specific framework but I don't count that as one. Drupal needs you to conform, symfony will conform to you - choose whichever you want.

Tomasz Kowalczyk
+5  A: 

I would advice you to, first and for all, look into the various frameworks, regardless of their language. A big part of the difficulties with systems such as Drupal come from their use of PHP. Not said that PHP is bad, per sé, but other languages have proven to be much better for web-frameworks.

From my knowledge, the best (and most known) frameworks are (not in any particular order):

Then secondly, evaluate what kind of developer you are. Many webdevelopers love the fact that they can develop functionality, without touching a single line of code. Many don't like that for many different reasons. A tool like Drupal, or typo3 allow development without writing code to a large extend. IMHO Typo3 has this better thought trough, while in Drupal this way of working grew more organically (and therefore is less consistent and less predictable).

Once you have that clear, the third step would be to evaluate the nature of the project at hand.

  • Is it something that has been built in a dedicated, focused app? I mean: you can build 80% of twitter in Drupal, but in 10% of that time, you get 100% of Twitters features by installing status.net.
  • Is it something that Drupal is particularly good at? A community blog, a simple forum and more such work can be done very well with Drupal, yet a simple brochureware can prove to be a painstakingly long road of horror in Drupal (yet done in 10 minutes with, say, Joomala!).
  • Is it something that has never been done before? Then no CMS will be able to help you a lot, after all, it hasn't been done, so it is not a standard component, yet.

And last, evaluate what a CMS like Drupal offers you, versus what it will cost you. Often I hear a reason to use Drupal, is that it offers a lot of standard features out of the box. That is true. But really: saving four hours for a login-feature on a 10k project: does that matter. At all? And even if it does: are you not going to loose that four hours right after, because the client wishes an entirely different login, then Drupal delivers out of the box? In other words: evaluate very well what a CMS like Drupal really offers you in code-writing-savings.

Edit: as commentor points out, it is Symfony, not Symphony.

berkes
Symfony, not Symphony - I know that sounds pretty surprisingly however not everything has an English name. ;)
Crozin
+3  A: 

I'm going to do the "try my CMS" thing, and suggest you give modx a try. Adding your own php code extension is a breeze, which is what converted me. They call it a CMF (f meaning framework) but it is still a cms with some looser code implementation, it's nowhere close though to the raw ability of frameworks like symfony and kohana(ci).

Some of the frameworks have an easy way of creating the databases and pre-populating them (like symfony) and a lot of the basics are done for you before you even touch any php. However you'll still need to do quite a bit to implement necessary features like user management, text editor, media uploader, and other things that have been taken care of in most CMSes.

Drupal seems like it wants you to do things the drupal way, and if you don't you pay the price sooner or later. But my understanding (could be wrong about this) is that a lot of the plugins are not done properly all the way, and if you just install a bunch of plugins without understanding drupal, you can end up with a big mess.

Daniel