I'm Dreaming of a Wild PHP ❄️
Tags: php, webdev
Published: 2021-12-06 07:47:12

>**Just the Gist**  
>PHP is used for the Web, mostly. Anything from personal websites to large-scale applications are written in PHP. It's also been used for Machine Learning, and in development and deployment tools.

## How PHP is used in the Wild
PHP is the language of the web. That is where it was first to be used, and its primarily where it is used today. From personal websites to enterprise applications, PHP is most places. There are also uses for PHP in other areas, such as the command line, and in the cloud. Would you believe there's a machine learning library for PHP? It sounds unbelievable, but there is. Today we take a look at some of the real world applications of PHP.

### Personal Home Page
Just PHP by itself can get you very far. It's a simple language, and it's easy to learn. A website owner can get a website up with a simple contact form. All that would be needed is a hosting service where the owner can put their PHP-file, and hook into an email service. Next, the owner may want to add some kind of authentication to their website, either they continue to use "vanilla" PHP or they can get a Content Management System (CMS).

> **A list of a few PHP CMS:** 
> * [WordPress](https://wordpress.org/)
> * [Drupal](https://drupal.org/)
> * [Bolt](https://boltcms.io/)
> * [Joomla](https://www.joomla.org/)
> * [Moodle](https://moodle.org/)
> * [Grav](https://getgrav.org/)
> * [SilverStripe](https://getgrav.org/)  
> ☝ And these are all open source!

### News sites and Blogs
On 2nd of December we had a look at why PHP had become so popular. We saw that one of the reasons was WordPress. [Notable users](https://wordpress.com/notable-users/) are New York Times, CNN and Forbes. Some use it for their profiles' blogs, others for their news sites.

### As micro-services
There are endless possibilities for enterprises to build and combine whatever services they may need in a micro-service architecture. Laravel and Symfony can provide the structure for one of the services. Both are examples of PHP frameworks that can be used to build entire applications, or monoliths, but may as easily be used for a single purpose. Symfony started out with this component mindset from scratch, and Laravel has this potential as well. As long as they can provide an API, be it RESTful or GraphQL, it doesn't matter if the calling code is built in Java och C#. 

### Machine Learning
One prominent Machine Learning project is [RubixML](https://rubixml.com/). It's got tools for supervised and unsupervised learning, and it's used in a variety of domains. It's open source and free to use. Some use-cases for RubixML are: Image classification, text sentiment analysis, and image segmentation. If you are planning on doing Google's crash course in Machine Learning, perhaps an [Iris Flower Classifier](https://github.com/RubixML/Iris) would be a good example to take a look at.

### And so much more
We have not looked at the specific development tools that exists in PHP, such as unit and integration tests, static analysis tools, deployment tools, and so on. Let's just say, PHP has a great fauna of tools, and many projects are making use of them. We have seen personal sites and companies making use of PHP. 

## What about you?
What uses do you have for PHP? Did I miss any big use cases? Is PHP better suited for monolith systems, or is it better for micro-services? Comment below and let us know what you think ✍

## Further Reading 
* Crash Course in Machine Learning: https://developers.google.com/machine-learning/crash-course 
* A list of frameworks for PHP: https://en.wikipedia.org/wiki/Category:PHP_frameworks
* A list of PHP Content Management Systems: https://en.wikipedia.org/wiki/List_of_content_management_systems#PHP
* Monolith vs microservices: https://devops.com/microservices-vs-monoliths-which-is-right-for-your-enterprise/