Custom PHP
In this article, I cover what custom PHP is and under what circumstances you may need someone to create custom PHP for you.
Custom PHP is from scratch programming using the PHP programming language. Custom PHP can be used to create almost any type of Internet application. Custom PHP programming includes the full stack of HTML, Cascading Style Sheets, JavaScript/AJAX, PHP, MySql, and Linux Hosting.PHP has been around since 1994. It is mature and is used in about 80% of the websites on the Internet. Several popular web applications have been built using PHP/MySql. The main PHP apps are WordPress, WooCommerce, Drupal, Joomla, and Magento. These web apps serve their own niche, each having both pros and cons.
There Are a Number of Reasons to Use Custom PHP.
Creating web applications calls for creating the application from scratch. It might take longer, however it can be well worth the extra time, effort, and cost.
In this article, I dive into some of the reasons why custom PHP is more attractive than using a framework or an existing web application such as WordPress. The opposite is also true. There are times to jump over making a custom application to take advantage of all the features and functionality built into WordPress, WooCommerce, Drupal, Joomla, Magento, or one of the PHP frameworks. Let get started.
Creating PHP Web Applications
Creating a custom web application from scratch using PHP can require up to 5 different skill sets.
- A Designer creates the website ’s look and feel using HTML and Cascading Style Sheets (CSS).
- The JavaScript Developer makes the website or web application interactive.
- A PHP Programmer adds functionality to the website.
- Database Administrators create the database(s), tables, and the data queries the PHP programmer uses to interact with the database.
- Web Hosting Server Administrator is the one who configures the web server to host the PHP application.
Depending on the size of the project and who is working on the project, the team could consist of 6 or more people especially if you add in the Internet marketing person or persons.
On the other end of the spectrum is the freelance PHP programmer who is a lone developer. Under this model, the developer would need the website template created by the website designer and hosting that is capable of running PHP and MySql. The lone developer would take care of the JavaScript programming, PHP programming, create the MySql database & tables, and create the data queries. It is worth noting that in some cases the programmer may be able to create the look and feel or the website design depending on the design needs.
Custom PHP vs Framework
Sometimes building from scratch is the way to go and other times using a framework is the way to go.
Pros and Cons of Using Custom PHP
PROS | CONS |
---|---|
Slimmer faster code since only what is needed is included. | Will take longer to create. |
More control over source code. | Will cost more because everything is being built from scratch. |
May need fewer server resources. | Private code does not have a community to identify any potential vulnerabilities |
Fully custom application. | |
Only one learning curve. (no need to learn a framework) | |
May create reusable code. | |
Upgrade cycle is much less frequent. | |
Code is private and therefore any vulnerabilities are much less likely to be identified by a third party. |
If the custom PHP application uses mod_rewrite with one entry point and if all external data is sanitized the application should be rock solid.
Pros and Cons of Using a Framework
PROS | CONS |
---|---|
The common modules and libraries have already been built. | A framework comes with a learning curve. |
Application file structure may already be configured. | Will have more code and features and code than you might not need. |
Potentially shorter time to project completion. | May run slower or require more server resources to run. |
More cost–effective. | Adds an upgrade cycle that will require more programming resources. |
Custom PHP vs WordPress
WordPress is a great PHP/MySql based web application that is extremely mature, feature–rich, and extendable. Right out of the box it is ready to be put to work. Initially, there is just a handful of configuration settings that need to be attended to.
WordPress is SEO friendly right out of the box.
WordPress is a great content management system (CMS) that is extended through the use of plugins. In the hands of an experienced plugin developer, WordPress can be extended into a full–blown web application. The sky is the limit.
Pros and Cons of Using WordPress
PROS | CONS |
---|---|
There is a lot of WordPress developers. | WordPress is written in PHP so there is the PHP learning curve and there is the plugin learning curve. Two learning curves. |
WordPress has a lot already builtin. | WordPress introduces another layer of technology to be managed. |
WordPress is easy to extend using plugins. | WordPress has an upgrade cycle. |
WordPress is very secure when configured correctly. | WordPress is open source so anyone can view the source code and exploit any vulnerability that is discovered. |
Using mod_rewrite allows for one entry point into the WordPress application, that being the main index.php file, which makes WordPress more secure. | The WordPress ecosystem is rather large and comes with a learning curve. |
Many eyes are looking at the WordPress code and can potentially identify any security flaws before those with evil intent. |
Custom PHP vs Drupal and Joomla
Pros and Cons of Using Drupal or Joomla
PROS | CONS |
---|---|
Drupal is a great starting point for a web application since it is extendable and it was created to be a web application. | Drupal has a steep learning curve. |
Drupal can be extended through the use of modules. | Will bring in code and features that may not be needed. |
It is a large PHP/MySql application. | Out of the box it needs a few things to be configured to be a basic CMS. If SEO is a goal there will be at least some work. |
Drupal is more of an enterprise–level solution. | |
It is my understanding it is difficult to find quality Drupal developers. | |
Joomla has just a few percent of market share. It is not widely used. Therefore I would not consider it. |
Given Drupal’s learning curve I would recommend creating your application using Custom PHP unless your application is a large enterprise application.
Custom PHP Upgrade Cycle
The more layers of technology you use the more upgrade cycles there will be. Upgrading any of the software you are using is a point of failure. As an example, I was part of a management team that oversaw a Magento shopping cart install. Magento is in a constant state of upgrade. The development team would upgrade the Magento software several times a year. During one of these upgrades, someone overlooked a third–party module that needed to be upgraded as well. Having an old module became problematic in short order. As expected we started to have problems with the Magento install.
At first, it was unclear what was wrong. In the end, it took 6 people more than a few hours to resolve the issue. It was all hands on deck. This included the data center owner. As you can see the upgrade cycle can become problematic.
The upgrade cycle:
Technology | Upgrade Cycle |
---|---|
Operating System | Multiple times a year. |
Framework | Multiple times a year. |
PHP Web Application | Could be once or twice a year to once every few years. |
PHP | Stable for an extended amount of time (OS managed). |
MySql | Stable for an extended amount of time (OS managed). |
Creating Custom PHP Applications That Rival Desktop Apps or Mobile Applications
A decent PHP developer that has reasonable JavaScript/AJAX skills can make a web application that rivals those you use on a desktop computer or a mobile device. There is an advantage to creating a custom PHP web application compared to desktop and mobile applications.
We carry our mobile devices everywhere. Mobile devices can easily run mobile apps or a browser–based application. All that is needed to run a custom PHP application is the Internet address (IP address or domain name) and a modern browser.
Creating desktop and mobile applications can require an application for the desktop – Windows, Apple, and potentially Linux, and two more applications, one for the iPhone and one for the Android phone.
When creating a custom web application it only needs to be created once. This one application can be utilized on any device that has a modern web browser. A custom web application is write once, run everywhere.
Cost of Custom PHP vs Other Solutions
It will more than likely cost more to create a custom PHP application. In some cases creating a custom application is the only way to go.
If WordPress meets your needs, you should use WordPress. The same goes for PHP frameworks and the other applications mentioned. Your needs should be fully analyzed before you select what solution you should go with.
Reusable Code
There is one thing we have not talked about and that is reusable code. Reusable code can be valuable if you have several projects that can use some or a lot of the same code. In the case of a developer that has created a framework that supports a niche, the development time and costs can be reduced. Code licensing can be less expensive than building from scratch.
Conclusion
When creating a website or web application you have many options. Sometimes which path to take is obvious. Other times it is not.
There are a number of reasons to use custom PHP and there are many reasons to take another path. Depending on your needs you may choose custom PHP or you might choose a PHP framework or one of the major PHP based applications like WordPress.
A custom PHP application can be run on any device that has a modern browser. This is probably the most compelling reason for choosing custom PHP.
My name is Keith Smith. This is my website. It was handcrafted by me as an example of my skills. It is not as beautiful as what a website designer might have been able to create, however it is clean, simple, and functional. I am not a designer, I am a programmer.
If you have a project you would like to talk to me about, please call me at 480-748-9893 or complete my Project Request Form.
I look forward to hearing from you soon.