28

I know this has been asked a lot and I've explored the other answers, but I still have questions, so hopefully this sheds fresh insight on the debate.

A year ago I built a service scheduling web app from scratch in CodeIngniter with the following functionalities:

  • user management with different roles and functionalities
  • different backends for each user
  • interactive and manageable calendar for scheduling services
  • territory management and assignment
  • management for service status
  • reports and records
  • billing with authorize.net
  • front-end informational pages

All pretty standard stuff and codeIgniter worked great. Now, a year later, I'm revising the code. The client wants some different management features, like a CMS for the pages and to add new services and change the calculation price points, etc. I need to add new classes and code to make this work.

Over the last year I have dove very deep into Wordpress and realize that I could have built this whole app in wordpress using custom post types, taxonomies, custom fields, and expanded custom functionality though a custom plugin. In many ways, this seems like it would be better.

Pros of using Wordpress instead of php framework:

  • existing base with CMS, user management, familiar backend, database structure to start from, saving lots of development time
  • constantly updated security
  • stability
  • robustness (I know wordpress can handle this even though its intended use is for blogs)

Reasons to use a framework:

  • flexibility
  • ORM
  • MVC
  • other?

So... which is better? Do I really need ORM or MVC for this project? I feel my development efforts and client ux would be easier if I use Wordpress.

What else do I lose if I switch to wordpress?

What about combining Wordpress in a framework, or vice versa? Recommendations?

When does it make sense to use a framework instead of wordpress?

Jeff
  • 556
  • 4
  • 9
  • 5
    This is slightly "broader" than the scope of questions I prefer, but it is well written so I hope it stays open and there are some good answers. –  May 03 '12 at 18:35
  • 2
    Yeah, I was worried about it being so broad, that's why I tried to make it specific to my project and concerns. Thanks for compliment. – Jeff May 03 '12 at 18:47
  • 2
    It's been a while since you asked this question. Can you share your know-how and insights you gained about this subject? Thanks! – Adrian Moisa Jan 15 '16 at 15:58

3 Answers3

13

It's a fairly broad question, so here's a fairly broad answer...

Wordpress is a CMS. It's a good, flexible CMS with lots of built-in goodness, but its sweet spot is managing a site that's primarily about content, where content is very broadly defined as "words, pictures and other assets". The plug-in model lets you build/use additional functionality, and the wide user community provides lots of stability/security/scalability help.

Code Igniter is a framework that's designed for functional web apps (in practice, this usually means database-driven apps). Its sweet spot is managing complex interactions with a business domain. It is a framework for building any kind of app (including, if you were glutton for punishment, a CMS).

If your business domain is about content (and I don't think it is, based on your description), Wordpress is an obvious winner. In your case, I think you could probably build the solution using Wordpress, but it would be a real edge case - and the benefits you mention of "security, stability, robustness" would likely not apply, because you would need to build a lot of custom code. I think you'd very quickly get to the "well, it's not the way Wordpress wants me to work, but to deliver this feature, I just have to do it this way" point.

When business users say they want a CMS, they usually don't mean they want Wordpress (or Drupal, or Sitecore, or Magnolia); they want to be able to manage their site without having to go to the techies. If your site is primarily database-driven, that means screens to manage database records.

trante
  • 33,518
  • 47
  • 192
  • 272
Neville Kuyt
  • 29,247
  • 1
  • 37
  • 52
  • 1
    Thanks for the answer, I agree with your premise, but I'm still uncertain wp isn't the way to go for this reason: in Wordpress I can treat appointments, territories, services, and orders each as their own custom post type, and extend and link them through custom fields (very easily and powerfully using a custom fields manager like http://wp-types.com/; not much custom code needed). In that case, wp is giving me a nice admin to manage database data that's also very easy to modify in the admin (no code to add a field for example). So why not go this way? That's really what I want to know. – Jeff May 07 '12 at 22:36
  • 1
    For middle of the road web sites that will have a small amount of data in them using Wordpress with custom post types will be fine. But if you're building an app that does something new and different and is not primarily about managing some sort of content then using a more flexible framework is best. The next Facebook won't be built using Wordpress, will it? ;) – Rimu Atkinson Dec 13 '12 at 07:15
3

It's about structure and function in my view. Both CMS(Wordpress) and PHP Framework provide structure/functions to build your own functions. You can do the same things on CMS and Framework. They shouldn't have much difference on performance and security amongst well known Frameworks and CMSs.

However, CMS focus on Front-end (contents?), provides with ready to use CSS, Javascript (Front-end) in order to build / manage websites and web based applications easy and quick. Though, it's not very clear in structure comparing to MVC model.

Both would do the same job if you develop yourself, but in a team, framework could provide benefit.

It's only my view, I am using Wordpress a lot and a little knowledge on framework.

N Zhang
  • 119
  • 1
  • 3
2

I use CodeIgniter and my bias is for that because you've already built the bulk of your app in it and because it seems more flexible/less pre-configured than Wordpress. I also get the feeling that CI is growing in use relative to WP with developers so CI seems possibly more future-proof, though to be fair they are both popular.

Can you make clearer you're bosses demands? The way I read what you say is that you're 80% of the way there and then are considering scraping (or at least possibly having to heavily revise) that 80% because the other 20% seem more logically done in Wordpress.

As I learn PHP more, I'm actually finding myself using even less of CI and writing more straight up PHP or actually JavaScript (for even better UX). So I guess I'm surprised to hear of someone wanting to switch from a minimal PHP/ruby/Python framework to a heavier one since most of the work is shifting to JavaScript these days.

Another key point on going towards straight-up PHP is that the number of people who know PHP dwarfs the number of people who are familiar with CI- or WP-specific syntax. So you are more likely to get help/collaborations/career advancement focusing on a solid foundation in the "mother tongue" over these minority dialects. Doing this with PHP is also having the benefit of helping me understand other languages such as JavaScript better since the level of abstraction is on the same page with php-ruby-python, whereas a framework brings in an entirely different (an in my increasing view, extraneous) vocabulary.

user229044
  • 232,980
  • 40
  • 330
  • 338
tim peterson
  • 23,653
  • 59
  • 177
  • 299