Is WordPress a Dependency?

I am currently on a quest to find the perfect setup for my WordPress projects (who isn’t, right?). I do think that a large part of what makes or breaks complex software projects is dependency management. And there are dependencies at every level of your projects, be they languages, libraries, servers, stakeholders, whatever. When someone pays you to attack a project (outside of hobbyism), he generally pays you to fulfil a business goal. And it’s your task to keep the things in check upon which this business goal “depends” on.

The problems you’ll deal with when trying to manage these dependencies are not new to your project; they have been the same problems for many moons. And many smart people before you have found solutions to these, which can be found somewhere on a spectrum from “satisfying” to “perfect”.

You’ll probably agree that it is best to learn from other people’s mistakes and reuse their solutions, instead of being stubborn and insisting on making these same mistakes yourself (wasting a lot of time & money in the process).

On most levels that get touched by your project, the problem of “dependency management” has probably been solved already. For example, to be able to build a server stack that can run on any hardware, we have tools to virtualize/automate/abstract the entire hardware your stack could be dependent on.

On the “libraries” or software level, you have different package managers that you can use, depending on what platform or programming language you like to work with. For the PHP language, the package manager of choice is Composer.

When I researched ways to include WordPress into a proper dependency management system for my software layer, I stumbled upon a Core Trac ticket that had logged a debate I did not expect: whether WordPress was a dependency of a site, or whether it was the site itself. So, instead off discussing how to best pull WordPress in, the discussion veered off into a question of whether this was even a good idea in the first place.

So here’s how I see it (and I still have a lot to learn, I admit, so I’m totally fine if you disagree). The point of starting a project to meet a business goal is usually to have some business logic be executed on business data. I don’t want to go into any technicalities here on where the data comes from or how the logic is executed; these are details you should discuss with your local software engineer.

But the business logic is the thing you are getting paid for. Everything else is just a dependency of making this work. So, I consider even the website itself to be a dependency, as you could also have a smartphone app, or staff members, or subcontractors, or a mainframe be responsible for executing this. As I am a software engineer and web developer, I tend not to be asked to manage anything but a software solution.

Each dependency can have its share of sub-dependencies. So, if I say that my business goal is to collect a list of emails of potential customers, my main dependencies probably are a website and an email list provider. Now, the website dependency introduces a couple of new dependencies, like a domain name, a web server, etc. The web server again has sub-dependencies, like the OS it runs on, the scripting language and DB it uses, and so on.

Somewhere rather deep inside these dependencies, you have WordPress, a CMS, that provides an abstraction of the DB and the web server (and some other things, too), so that you can better concentrate on implementing your business logic, instead of dealing with the DB directly or building endless user interface elements for management users.

So, if we ignore all the levels above it, and just concentrate on the web site level … is WordPress the site, or is it a dependency of the site? I would argue that it is pretty clear that WordPress is “just” a dependency, as you can have all sorts of stuff running alongside WordPress on your server. And the fact that there is a WP-REST API project that will be integrated into WordPress core and that allows you to have a a public-facing front-end that can be another platform or language and that is completely separate from the WordPress backend tells me that at least a portion of the WordPress core developers agree.

Although I understand the emotional attachment one might have to a project that is by your side for several years, I do think that the WordPress developers need to take a step outside of the WordPress ecosystem and exchange best practices with other platforms. Switching from [platform XYZ] to WordPress is a very frustrating experience so far, as the potential far exceeds the practical realities.

I’d love to have some feedback on this, as my conclusions might not be so “evident” as they seem to me.

48 Comments

  1. Anton Timmermans on September 18, 2015 at 7:19 pm

    Hello Alain,

    I completely agree with your post and you have explained my view in a way that I have never thought about it.

    While I still believe it would be better to add the correct composer.json to core, the tools outside of core are excellent to use WordPress as a dependency. I would advice looking at Bedrock to see how a WordPress installation should be done: https://github.com/roots/bedrock. Just linking in case you didn’t find it or someone else needs it.Report

    • Alain Schlesser on September 18, 2015 at 7:55 pm

      Hello Anton,
      Thanks for the feedback and the link to Bedrock. I know the project, and wholeheartedly agree with its mission to bring the Twelve Factor App (http://12factor.net/) to WordPress.
      You can also take a look at https://github.com/wecodemore/wpstarter, which has a similar goal, but uses Composer to do the actual setup.Report

  2. Lisa Linn Allen on September 18, 2015 at 8:08 pm

    I am in agreement with you. From a practical standpoint, if you want to separate your customized code from WordPress core so your code can be deployed across multiple environments, core has to be treated as a project dependency.

    If WordPress wants to be taken seriously by large enterprises that are not interested in having WordPress.com host their sites, eg, companies that want to self-host, they indeed do need to mature their perspective on what WordPress is and is not. Core should not be entangled with other parts of the site, and it should be Composer friendly.Report

    • Alain Schlesser on September 19, 2015 at 9:09 am

      Spot on, Lisa!
      Thanks for your feedback.Report

  3. creation site web marrakech on November 6, 2016 at 1:50 pm

    Creation Site Web Marrakech Maroc

    Creation et referencement de sites web a Marrakech au MarocReport

  4. traiteur rabat maroc regal on August 3, 2017 at 10:24 am

    Traiteur Rabat Regal; Traiteur de ronome au Maroc

    Traiteur Rabat Regal au MarocReport

  5. Traiteur Rabat Regal; Traiteur de ronome au Maroc

    Traiteur Rabat Regal au MarocReport

  6. traiteur rabat au maroc on August 3, 2017 at 11:52 am

    Traiteur Rabat Regal; Traiteur de ronome au Maroc

    Traiteur Rabat Regal au MarocReport

  7. Traiteur Rabat Regal; Traiteur de ronome au Maroc

    This is my expertReport

  8. Traiteur Rabat Regal; Traiteur de ronome au Maroc

    This is my expertReport

  9. traiteur rabat maroc on August 3, 2017 at 4:11 pm

    Traiteur Rabat Regal; Traiteur de ronome au Maroc

    Traiteur Rabat Regal au MarocReport

  10. Traiteur Rabat Regal; Traiteur de ronome au Maroc

    Traiteur Rabat Regal au MarocReport

  11. Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    Corps des ingénieurs du Parti du RNI MarocReport

  12. traiteur rabat pas cher on August 4, 2017 at 10:31 pm

    Traiteur Rabat Regal, un specialiste de renome au maroc

    Traiteur Rabat Regal au MarocReport

  13. Traiteur Rabat Regal, un specialiste de renome au maroc

    Traiteur Rabat Regal au MarocReport

  14. ingenieurs marocain on August 5, 2017 at 12:49 am

    Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    This is my expertReport

  15. corps des ingenieurs au maroc on August 5, 2017 at 1:21 am

    Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    Corps des ingénieurs du Parti du RNI MarocReport

  16. هيئة المهندسون المغاربة on August 5, 2017 at 2:00 pm

    Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    Corps des ingénieurs du Parti du RNI MarocReport

  17. ingenieurs au maroc on August 5, 2017 at 2:42 pm

    Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    Corps des ingénieurs du Parti du RNI MarocReport

  18. Traiteur Rabat Regal, un specialiste de renome au maroc

    This is my expertReport

  19. Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    Corps des ingénieurs du Parti du RNI MarocReport

  20. Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    Corps des ingénieurs du Parti du RNI MarocReport

  21. ingénieurs marocains on August 6, 2017 at 1:42 pm

    Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    Corps des ingénieurs du Parti du RNI MarocReport

  22. les ingenieurs marocains on August 7, 2017 at 5:11 pm

    Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    Corps des ingénieurs du Parti du RNI MarocReport

  23. ingenieurs maroc on August 7, 2017 at 5:42 pm

    Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    Corps des ingénieurs du Parti du RNI MarocReport

  24. maroc ingenieur on August 7, 2017 at 6:15 pm

    Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    Corps des ingénieurs du Parti du RNI MarocReport

  25. ingenieur maroc on August 11, 2017 at 10:14 pm

    Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    This is my expertReport

  26. RNI MAROC on August 11, 2017 at 11:26 pm

    Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    Corps des ingénieurs du Parti du RNI MarocReport

  27. traiteur maroc on August 14, 2017 at 4:39 pm

    Traiteur Rabat Regal, un specialiste de renome au maroc

    Traiteur Rabat Regal au MarocReport

  28. ingenieurs marocains on August 15, 2017 at 5:40 pm

    Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    This is my expertReport

  29. parti du rni on August 19, 2017 at 5:46 pm

    Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    Corps des ingénieurs du Parti du RNI MarocReport

  30. حزب التجمع الوطني للأحرار on August 19, 2017 at 8:21 pm

    Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    This is my expertReport

  31. ingenieurs marocains du parti du rni on August 19, 2017 at 8:56 pm

    Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    Corps des ingénieurs du Parti du RNI MarocReport

  32. traiteur rabat on August 19, 2017 at 10:27 pm

    Traiteur Rabat Regal, un specialiste de renome au maroc

    This is my expertReport

  33. traiteur rabat pas cher on August 19, 2017 at 11:29 pm

    Traiteur Rabat Regal, un specialiste de renome au maroc

    This is my expertReport

  34. parti du rni au maroc on August 20, 2017 at 3:17 pm

    Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    Corps des ingénieurs du Parti du RNI MarocReport

  35. ingenieurs maroc on August 20, 2017 at 4:45 pm

    Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    This is my expertReport

  36. ingenieurs marocains du parti du rni on August 20, 2017 at 8:30 pm

    Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    This is my expertReport

  37. PARTI DU RNI on August 20, 2017 at 9:17 pm

    Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    This is my expertReport

  38. RNI on August 20, 2017 at 10:21 pm

    Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    This is my expertReport

  39. parti rni on August 21, 2017 at 4:06 pm

    Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    Corps des ingénieurs du Parti du RNI MarocReport

  40. les ingenieurs du rni on August 21, 2017 at 4:30 pm

    Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    Corps des ingénieurs du Parti du RNI MarocReport

  41. les ingénieurs marocains on August 21, 2017 at 5:31 pm

    Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    This is my expertReport

  42. ingenieurs du parti du rni on August 21, 2017 at 6:10 pm

    Corps des ingenieurs du parti du rassemblement national des independants RNI au Maroc

    Corps des ingénieurs du Parti du RNI MarocReport

  43. creation site web marrakech on August 22, 2017 at 7:25 pm

    referencement site marrakech au Maroc

    This is my expertReport

  44. referencement site web marrakech on August 22, 2017 at 8:06 pm

    referencement site marrakech au Maroc

    This is my expertReport

  45. parti du rni on August 22, 2017 at 8:44 pm

    referencement site marrakech au Maroc

    creation referencement sites marrakech marocReport

Leave a Comment