A few months ago I posted on HackerNews a question about Laravel vs. Drupal. Although an unofficial poll, One can the overwhelming response in favor of Laravel. However, gather feedback from the Internets wasn’t enough.
A little background, I’m working on a contract for a large organization and the administrator of the contract who has a background in system administration decided to use Drupal 8 as project to prevent people from uploading directly to the production server from Dreamweaver, SCP, FTP. terminal or some archaic method. (There is absolutely no deployment methodology) Prior to the sys admin leaving in July, I asked the sysadmin why he chose Drupal? His response was “Well I programmed in it briefly, like 10 years ago so I think it will help us.” So that was the rational. I started to learn to program in Drupal, I quickly learned that essential it is a pain in the @ss to program in Drupal. In fact it is downright excruciating.
Spending a few weeks trying to implement a simple group permission module that would allow certain writers access to certain articles and deny writers access to different articles, etc. What I would consider very basic content moderation / group access, there only two modules out there, Groups and Organic Groups and neither of them seem to work very well. Most importantly, most developers haven’t moved over to Drupal 8, so there doesn’t seem to be a rush to support these modules. In addition, I had coded out content moderation / group access features in php / Codeignitior / MVC with no problems in the past.
With the Sys Admin, who did a little coding 10 years ago, now gone, I saw opportunity to change direction, as I didn’t want to get stuck coding in Drupal. I address the issue with the new administrator and instead of telling him that I was going to switch to a new framework, I thought it was only fair to a present my case. I believe that it is important for administrators or senior leadership to make informed decisions. All to often I have seen developers just tell non technical people what they are going to and then start programming in their flavor of the week coding language. With that said I would put together a presentation on Drupal vs. Laravel and make non technical person to understand. I was excited about this because writing code is fun, but sometimes I like add a little more challenge and this would provide an opportunity.
The key issue really is 40% of the project really setting up a simple CMS system to publish articles. The other 60% of the project is completely unknown. It could be something like converting oracle data and displaying in a custom CMS view.
The one thing I did get to Sys Admin was to get a simple mission statement as to lock him down on the specifics of the project. So here is the presentation:
Mission Statement / Directive: To build a comprehensive Content Management System (CMS) using the Drupal framework to allow different stakeholders and pre approved groups the ability to create appropriate content (news, embeded video, images) and static pages for publication on the website. The public facing will only have read access and all content management (CRUD) will occur behind a protective firewall.
With that here is my presentation:
Laravel vs. Drupal
Problem: Develop a CMS for an unknown project description and make sure the CMS system is adaptable enough that it can implemented across a variety of project / websites that have not been defined.
Current situation: Currently we are attempting to implement Drupal 8, which was was released on Nov 2015. Drupal 8 is significantly different than Drupal 7 and does not have an end of life date. This is important to note that current web developers are not converting sites to Drupal 8 at an accelerated pace because they can continue to use Drupal 7. Hence the development on Drupal 8 and drupal modules has been slower and spotty. Implementing Drupal 7 would be an issue as we would be confronted with an upgrade to Drupal 8 in the future. Using Drupal 7 would only be an effort to kick the can down the road.
Proposed solution: After working with Drupal over the course of a few months, it appears the community is stuck in Drupal 7 and possibly abandoning the platform. Solutions to Drupal 8 issues appear to be sparse. In addition some key modules are in beta. Modules for group permissions, there are only two modules that support this feature. Which really makes this project dependent on the two modules. Permission to manage content is standard with WordPress.
After careful consideration and research. It is recommended we move over to the Laraval / PHP framework without altering our November or new October 1st deadline, maybe even decreasing it. Laraval is a robust framework that allows us to implement the most basic requirements of the “Drupal – RISE – Project” of creating a simple blog/article ability with basic Admin capabilities. The beauty of laravel allow to adapt and build features that we don’t know exist, for example connecting the water levels with mussel data should be able to develop without being bound to constraints that Drupal might place on creating new features. Although all constraints of a Drupal or Laravel can be overcome through programming, Laravel is just built in a way, that you can get up and running faster to implement new features.
-Up and coming community
-Laracast (well documented support and video learning)
-Well received / received in the community
-Eloquent ORM (immediate protection against Mysql attacks)
-Lumen (micro service / API)
-Far greater admin user interface than Drupal
-Follows traditional MVC framework
-Super easy documentation:
-Super easy and fast
-Implements a simple Model-View-Controller architecture
-Start from the beginning
-Started in 2012
-Calls it’s programmers, “Web Artisans”
-Work already exists, LDAP, admin
-The traditional and established “work horse”, built in 2001
-Empirical evidence appears that drupal is used for newspapers format.
-Open source community seems to be stuck between Drupal 7 and Drupal 8, minimal development
– https://www.drupal.org/project/dbfm (Module Derick needs is stuck on Drupal 7)
-Fading use as illustrated in charts below.
-Not traditional MVC environment (although moving towards it)
Drupal Users Group: https://www.reddit.com/r/drupal/ = 7,066 readers
Laravel Users Group: https://www.reddit.com/r/laravel/ = 11,028 readers
Epilogue: In the end, I wasn’t able to persuade the new Sys Admin to move over to Laravel, we are stuck with Drupal. Not sure if I really lost as much as I might not have hit the right selling points with the audience. That can be difficult, when the mission statement is very open and the end goals are not defined. I did have some competition as another developer presented the case for Drupal. Any frame work is going to be flawed, but the lack of support in the Drupal 8 community is a serious issue. On the bright side, I was able to gain exposure to Laravel as I got to play around with it for a week or so. Although my background is Codeigniter, Laravel is super fast to pick up super quick to learn.
Leave back here or on hackernews, be interesting to see the communities thoughts.