Drupal is a free, open-source content management system written in PHP that competes primarily with Joomla and Plone. The standard release of Drupal, known as Drupal core, contains basic features such as account and menu management, RSS feeds, page layout customization, and system administration.
N/A
Laravel PHP Framework
Score 8.6 out of 10
N/A
Laravel is a free, open source web application PHP framework.
Drupal requires less to no coding abilities to spin up sites. Even if someone is preparing to develop sites that require technical know how then Drupal provides role based systems to seperate developers from content writers. Drupal 8 and 9 now have a vast array of plugins. Now …
Although Drupal is not the most used, it has great performance and is more used in professional projects. It allows us to expand without starting from scratch.
Overall, I would give my rating of Drupal a 7/10 because there is an easy user experience for those without a website background but there is some technology work required to build more website capabilities that aren't as user-friendly. Drupal is specifically well suited to update content (like changing Relationship Manager cards when there is employee turnover), post announcements (putting up a holiday banner to let our customers know the dates we will be closed over Thanksgiving, Christmas, etc., and creating a sophisticated website hierarchy of pages (for our firm, several dropdowns depending on if you're looking for personal banking, business banking, investment banking, about us, etc.).
Laravel is ideally suited for fluent PHP developers who want a framework that can be used to both rapidly prototype web applications as well as support scalable, enterprise-level solutions. I think where it is less ideal is where the client has an expectation of using a certain CMS, or of having a certain experience on the admin side that would perhaps be better suited to a full CMS such as Drupal or WordPress. Additionally, for developers who don't want to write PHP code, Laravel may not be the best solution.
It has excellent security features and consistent updates.
It allows for extensive customization with the integrated themes and core code, especially when you first install it. This allows our dev team to get creative with marketing initiatives.
There is a large online community of Drupal users that consistently help answer any questions and issues
Security and new release notifications are a hassle as they happen too often
Allowing them to write PHP modules is a big advantage, but sometimes integrating them is a small challenge due to the version the developer is working on.
Significant learning curve. You cannot be an expert in a week. It takes many experimentations to properly understand the underlying concept. We ourselves learned it by using it on the job.
Too much to soak in. Laravel is in everything. Any part of backend development you wish to do, Laravel has a way to do that. It is great, but also overwhelming at the same time.
Vendor lock in. Once you are in Laravel, it would not be easy to switch to something else.
Laracasts (their online video tutorials) are paid :( I understand the logic behind it, but I secretly wish it would be free.
The eloquent ORM is not my recommendation. Let's say you want to write a join, and based on the result you wish to create two objects. If you use Laravel to do automatic joins for you, Laravel internally actually makes two calls to database and creates your two object rather than making one join call and figuring out the results. This makes your queries slow. For this reason, I use everything except eloquent from Laravel. I rather write my own native queries and control the creation of objects then rely on Laravel to do it. But I am sure with time Laravel will make fewer calls to DB.
The time and money invested into this platform were too great to discontinue it at this point. I'm sure it will be in use for a while. We have also spent time training many employees how to use it. All of these things add up to quite an investment in the product. Lastly, it basically fulfills what we need our intranet site to do.
As a team, we found Drupal to be highly customizable and flexible, allowing our development team to go to great lengths to develop desired functionalities. It can be used as a solution for all types of web projects. It comes with a robust admin interface that provides greater flexibility once the user gets acquainted with the system.
Drupal itself does not tend to have bugs that cause sporadic outages. When deployed on a well-configured LAMP stack, deployment and maintenance problems are minimal, and in general no exotic tuning or configuration is required. For highest uptime, putting a caching proxy like Varnish in front of Drupal (or a CDN that supports dynamic applications).
Drupal page loads can be slow, as a great many database calls may be required to generate a page. It is highly recommended to use caching systems, both built-in and external to lessen such database loads and improve performance. I haven't had any problems with behind-the-scenes integrations with external systems.
As noted earlier, the support of the community can be rather variable, with some modules attracting more attraction and action in their issue queues, but overall, the development community for Drupal is second to none. It probably the single greatest aspect of being involved in this open-source project.
I was part of the team that conducted the training. Our training was fine, but we could have been better informed on Drupal before we started providing it. If we did not have answers to tough questions, we had more technical staff we could consult with. We did provide hands-on practice time for the learners, which I would always recommend. That is where the best learning occurred.
The on-line training was not as ideal as the face-to-face training. It was done remotely and only allowed for the trainers to present information to the learners and demonstrate the platform online. There was not a good way to allow for the learners to practice, ask questions and have them answered all in the same session.
Plan ahead as much you can. You really need to know how to build what you want with the modules available to you, or that you might need to code yourself, in order to make the best use of Drupal. I recommend you analyze the most technically difficult workflows and other aspects of your implementation, and try building some test versions of those first. Get feedback from stakeholders early and often, because you can easily find yourself in a situation where your implementation does 90% of what you want, but, due to something you didn't plan for, foresee, or know about, there's no feasible way to get past the last 10%
Drupal can be more complex to learn, but it offers a much wider range of applications. Drupal’s front and backend can be customized from design to functionality to allow for a wide range of uses. If someone wants to create something more complex than a simple site or blog, Drupal can be an amazing asset to have at hand.
Supporting unit testing is bigger plus point in Laravel than any other framework. Developing with Laravel is much easier. Other frameworks have value in market, but Laravel has taken the lead in popularity among PHP developers in recent years. The large community supports you if you have problems. Using Laravel, integration became easy with third-party libraries, but it was costly too.
Drupal is well known to be scalable, although it requires solid knowledge of MySQL best practices, caching mechanisms, and other server-level best practices. I have never personally dealt with an especially large site, so I can speak well to the issues associated with Drupal scaling.
Laravel allows us to rapidly prototype and build complete, scalable applications internally, which saves us time and allows us to have internal tools that fit out precise needs. We use Symfony for a similar purpose, but Laravel is an even higher-level framework that we find saves us substantially more time when building many types of web applications.
Laravel solves many of the underlying concerns of building a large application (such as authentication, authorization, secure input handling) in the right ways. It saves us from handling those low-level concerns ourselves, potentially in a way that could take a lot of time or sets us up for issues in the future. It's tough to assign an ROI to this, but I'm sure it has prevented issues and saved time, which both have an impact on our financial situation.