When you’re planning a web development project, one of the first decisions you must make is which tools you’ll use to complete the task. Maybe you’re an experienced developer and want to create a custom application. Or maybe you’ll choose from one of the many frameworks, content management systems, and other tools available. Which solution is best for you is dependent upon the situation.
I’m a PHP developer, so the solutions I choose are PHP-based. If you plan to use a PHP-based solution, here are a few possible tools. (Note: This list is by no means comprehensive, so if you feel I’ve left something out, leave a comment and let me know!)
The Pros and Cons of a Framework
If you plan to develop a functionality-specific custom application or API, a framework is likely the best option. There are many PHP frameworks that can be used for MVC development (CakePHP, CodeIgnitor, Zend, Symfony, etc.). CakePHP and CodeIgnitor are popular as well. I’ve heard many developers complain about Zend and Symfony. But Laravel is a popular framework with a growing community, which is excellent for API development and also utilizes the MVC development methodology.
Laravel’s latest version (5.0) can be run on VMWare or VirtualBox using Homestead, a development environment that connects Laravel with MySQL, Postgres, Redis, Memecached, Node, and more and utilizes the HHVM (Hip Hop Virtual Machine…sort of, kind of compiled PHP) and uses a NGinx web server. Homestead ensures development is done in the same environment, which reduces bugs and compatibility problems if you’re developing on a team. It also means you don’t have to run the server on your local machine, which keeps your operating system happy.
Laravel’s custom functions and routing have caused it to become relatively popular. It’s also excellent for quick API development. The documentation is for Laravel is very good. Laracasts are a large series of instructional videos on how to use Laravel, and they are EXCELLENT. They’re well made, concise, and helpful so you can go from novice to dangerous within no time at all.
The biggest drawback? Laravel is not for beginners. You should have a good grasp of PHP or programming in order to use it. Earlier versions of Laravel can be pretty slow as well, and the incorporation of HHVM seems to have mitigated this problem in the newest version. Also, not everyone loves the blade templating Laravel uses.
The Pros and Cons of a Content Management System
WordPress is a content management system utilized by bloggers, small businesses, and news sites. It’s by far the most popular CMS on the internet with roughly 25% of websites using it. Besides being popular, it’s easy to create websites quickly once you learn how to use it. There are endless plugins developed by third parties to help accomplish anything from creating contact forms, pop-up ads, custom widget areas, API interaction, and more.
One of the most popular plugins is WooCommerce, which helps you quickly set up an e-commerce store on your WordPress site. Many WordPress plugins are completely free, but some premium plugins with extensive support are also available. And there are many developers who will build you a custom plugin for a fee if you’re not comfortable developing it yourself.
There’s also an excellent Codex that has all the resources you need to learn the ins and outs of the WordPress core framework. Stack Overflow and other forums are also filled with resources on how to develop within the WordPress framework, so if you have issues, it’s easy to find answers.
Besides plugins, there’s a huge supply of free and premium WordPress themes available. You don’t have to know HTML/CSS/JQuery or PHP in order to develop a WordPress site, which is great for small business owners and bloggers who don’t have the know-how or budget for web development.
Even if you are a seasoned developer, WordPress can save you time and money. If you’re working on a project that’s content heavy and has many contributors, like a news website, WordPress is probably the best solution for you. There are other content management systems similar to WordPress like Drupal, Joomla, and Expression Engine, but the popularity of WordPress and the availability of all plugins and themes mentioned above make WordPress the best solution in the opinion of this author.
As far as drawbacks go, many developers feel like the WordPress core is coded in a way which hinders your ability to make applications that scale. However, you’re not likely to choose WordPress if this is your concern. Additionally, due to the popularity of WordPress, it’s often targeted by hackers and spammers.
If plugins aren’t actively maintained by developers, and hackers find a vulnerability, it can cause issues and potentially loss of revenue for your business. A good web development agency will keep up-to-date with custom and third-party plugins to make sure this is not an issue.
At the end of the day, developers tend to stick with what they know. If you’re used to developing in WordPress or Drupal, you’ll likely stick with those products. However, sometimes, it makes more sense to explore other frameworks and learning something new never hurt anyone.