In this guide, we try to identify the main problem behind recruiting elite developers (proficient in a given framework or language, like PHP for instance), then find the solution to it and deliver all of that in an easy-to-follow manner.
In short, we’ll learn how to find the best PHP developers without so much as breaking a drop of sweat.
Well, maybe a little.
Short history of PHP
The genius thinker behind PHP is called Rasmus Lerdorf. He conceived the language sometime around 1994 and immediately employed it to see who was looking at his online resume at the time.
Those were some of PHP’s first, non-released versions.
A year later, other programmers (the word “developer” wasn’t so popular back in 1995) started using the first commercially available versions of PHP under the name Personal Home Page Tools.
The language was still in its rudimentary stage. It had a parser engine that understood some specific macros and other basic utilities commonly found on home pages in the infancy of the internet. These utilities included a counter, guestbook, and other basic stuff.
Later that same year, the parser was rewritten and dubbed PHP/FI V.2. The FI (Form Interpreter) was included from another project that Rasmus was working on and it read HTML from other data formats.
Finally, he combined those two (PHP and FI) and added MySQL support on top of them to create what we know today as the modern PHP language.
Soon, PHP grew at an unprecedented pace, with more and more people contributing code and improving every aspect of it to this very day.
How popular is PHP?
According to a recent analysis, PHP (versions 3, 4, 5, 6 and 8) is used by 77.4% of all the websites with a known server-side programming language today.
In terms of market share, here’s how PHP currently fares:
Granted, PHP might not be the most advanced programming language in use nowadays. However, that doesn’t make it dead, unpopular, or dying.
In all honesty, the number of websites that use PHP is falling with each passing year. But, there are few interesting tidbits of information (or, rather, omitted pieces of info) that tell a different story.
Some of the scanning tools used by various analytics-based websites look at the X-Powered-By
HTTP header and stop there.
The issue with this approach is that some hosting providers omit these headers because of various security concerns. Therefore, the realistic number of websites that use PHP could, in theory, be higher.
In fact, when that number is sitting at more than 75% of ALL the websites in the world, it is kind of hypocritical to pronounce PHP as dead.
Plus, the numbers shouldn’t come off as a surprise either. WordPress, the most popular CMS by a large margin, uses PHP.
As a side note, both Joomla and Drupal use PHP as well.
And to the question of whether or not PHP is really dead, I’ll leave you with this quote from the wise sage and creator of C++, Bjarne Stroustrup:
"There are only two kinds of languages: the ones people complain about and the ones nobody uses."
Where to find quality PHP developers
Because of the popularity of PHP, it’s relatively easy to find PHP developers, to begin with. In fact, it’s also easier to find devs with experience when it comes to mature languages. Given that PHP is an old and proven language, finding high-quality, experienced devs should be nothing more than a walk in the park.
In theory. But the weak correlation between theory and practice paints a different picture.
The best place to find and hire PHP programmers is not a place at all: it’s word of mouth! However, most technical managers don’t have enough real-life connections to warrant a search themselves in order to sift through many PHP experts and hire the best fits for their projects.
Plus, it’s not really feasible to go around and ask people in real life whether or not they know any dedicated PHP developers to recommend and where to find them.
So, the second best approach is to search some of the most popular online job boards and make your hire from there. These boards include:
- Remote.co
- Virtual Locations
- Fiverr
- Working Nomads
- Europe Remotely
- Dribble
- Proxify
We at Proxify offer elite PHP web developers suitable for both short and long-term opportunities. There is a trial period of 1 week for which you don’t pay anything if you aren’t 100% satisfied with your developer and the overall service.
We can also match you with other PHP developers if you decide that your initial hire isn’t the right fit for your projects.
Keep in mind that all our developers are pre-vetted, so the chances of not finding the right fit are very, very slim!
How to interview PHP developers
When you interview freelance PHP developers, you should pay close attention to a couple of crucial things:
- Their general skill set (frontend, backend, fullstack)
- Their tech stack proficiency (one or multiple)
- Their ability to communicate, delegate, and problem-solve issues as they arise
- Their ability to look at php code and identify problems, as well as offer solutions to improve existing or add new code when applicable
Most importantly, they should have the willingness to learn, improve, and think outside the box.
Top 5 technical skills PHP developers should have
In software development, a good programmer solves problems in their head (abstractly) and then translates the results into the code.
Most development projects nowadays are structured quite the opposite: first you need to write the code, then you’re free to debug until kingdom come.
An elite PHP developer needs to be cognisant of this fact and use it to their advantage, meaning they should know the application development process inside and out in order to create an optimized solution with as few resources as possible.
Speaking of which, here are some of the most important attributes to make a PHP developer stand out from the rest of the crowd.
(1) They should know other programming languages: In today’s competitive job market, knowing a single development language just won’t cut it. Quality PHP devs should have a good understanding of JavaScript, CSS, HTML and other frontend languages to spot, address and solve any upcoming errors in the client side of the page. Apart from that, PHP developers should invest some time in learning to work with large databases as well (MySQL, PostgreSQL, Oracle). In conclusion, a well-rounded developer would always have the competitive edge over someone who specializes in a single language and nothing more.
(2) They should be familiar with PHP best practices: Best practices and design patterns are useful in all programming languages, PHP not excluded. If followed correctly, they can significantly speed up development time by offering reliable shortcuts to what would otherwise be complex issues. Code readability is also important, as other developers will now have better access (and clearer documentation) on what to do and how to proceed on top of the existing code patterns. The most popular design patterns in PHP-based applications include Strategy, Factory, Singleton, and others. The fact that PHP has been around for more than two decades lessens the burden developers face on a daily basis, as they now have ample resources to consult and avoid any potential issues before these issues have a chance to creep in into the code.
(3) They should know PHPUnit, PSR, and Composer: PHPUnit is a popular framework for automated testing of small chunks of code against what is expected at runtime. Unit testing is a crucial skill any PHP developer should be familiar with, including familiarity with the TDD approach (Test Driven Development). TDD means that tests are conducted before writing the code.
PSR (which stands for PHP Standard Recommendation) is a collection of specifications and best practices created to standardize how PHP code is written, executed, and tested across all PHP apps and compatible platforms. PSR currently has 13 accepted standards and more are being written as we speak. Each standard has its own unique purpose, but the main underlying goal behind PSR is to improve the interoperability between different PHP components and frameworks.
Finally, Composer represents a dependency manager that handles all of your classes, functions, and libraries, allowing you the freedom to install the most compatible version of each on a project-to-project basis. It also automatically checks for new versions of all required components and installs/updates them accordingly.
(4) They need to know how to problem-solve: Some would argue that problem-solving is a soft skill, but I tend to differ. Developers who know how to problem solve and not simply google for solutions (although, that’s a skill in and of itself) could, in theory, solve each issue on paper before it gets the chance to compile at runtime. Or, as Bjarne Stroustrup eloquently puts it: “My best tool for efficiency and performance is abstraction”.
(5) An elite PHP programmer should have excellent communication skills and great adaptability: In my honest opinion, friction is mostly prevalent in teams with bad or unreliable communication. A-grade PHP developers should be able to communicate their ideas with clients, coworkers, managers, and a plethora of other people to successfully complete a project. Don’t get me wrong, good communication doesn’t mean Max Gladstone's levels of eloquence (a contemporary fantasy author; seriously, look it up). Rather, it means the ability to explain complex concepts in a simple way, convey the underlying business goals and explain the overarching picture behind the development services their company offers.
They also need to be adaptable and have that proverbial spark in their eyes that separates good from excellent developers. After all, companies are more likely to hire PHP developers who are on top of their stuff as opposed to people who aren’t willing to adapt. In the business world, it’s as brutal as “adapt, or die.”
PHP interview questions and expected answers
Naturally, I was curious and had to probe the Proxify network of developers for some PHP wisdom to be dished out and properly served for everyone to read.
These were my questions:
- Is PHP losing its popularity? Why or why not?
- Generally speaking, what is the main difference between building web applications with PHP vs some of the other web development languages like JavaScript or Python, if any?
- Which PHP framework should developers learn first (i.e. Laravel, Symfony)?
Volodymyr Demydiuk was concise and straight to the point: “(PHP) has been losing popularity since the beginning. But, it's still out there for several reasons.”
According to him, these reasons include:
- PHP projects need further support and development
- Developers with experience continue to work on and improve it
- The community strives to make PHP and the surrounding tech to be up to date
As for the second question, here’s what Volodymyr had to say:
“There isn’t a huge difference. You can achieve business requirements with any programming language, just in some different capacity.”
Volodymyr Demydiuk
“Learn as many frameworks as you can”, he laughed, reacting to my inquiry about the popularity of different PHP frameworks. “Symfony is slower to develop but it's more “stricter” to standards. Laravel is a bit faster and easier to learn”, Volodymyr concluded.
Endrit Veseli, another developer from the Proxify network and a regular contributor to our articles, elaborated to great lengths about the applicability, popularity, and real world use-cases of PHP.
“The short answer is yes. PHP has lost some popularity and it's not as dominant on the web as it used to be. The long answer is that it's not just PHP on the web that is losing market. Every other language is losing some ground to Node.js. As soon as it was possible to run JavaScript on the server, it was inevitable that it would rule the web realm.”
Endrit Veseli
He added that nowadays, every JavaScript developer could potentially switch back and forth from backend to frontend utilizing the same language on both ends. “It's understandable why some companies would choose React.js, Vue.js, or Angular combined with Node.js in the backend instead of, say, Vue.js”, Endrit said. “It would require the companies to have specialized teams on both ends. It's easier to maintain if you use the same tools both for frontend and backend.”
Circling back to explain the dip in popularity, Endrit provided us with even more information.
“Returning to the “dominant” part. While PHP is not as dominant as it used to be, make no mistake about it; it is still the most dominant and used language on the web. According to most of the latest statistics, WordPress alone (which, surprise, is powered by PHP) powers around 43% of all the websites today.”
He added that this fact is still not taking into consideration other popular CMS like Joomla, Drupal or well-known, respected and widely used frameworks like Symfony, Laravel or CakePHP.
“So, yes: PHP is still going strong and if your website is running PHP, it'll be just fine”, he remarked.
Further, Endrit elaborated in great lengths on the main differences between building web applications with PHP compared to other languages or frameworks. Here’s what he had to say:
"The main difference I would say is the blocking, synchronous nature of PHP (most noticeable by developers coming from JavaScript, C# and .NET). While there are some libraries out there that can add some async capability to PHP, I'd recommend using something else if you really need that functionality in your project."
Endrit Veseli
Endrit continued that if you are a developer coming from frameworks like Python/Django or Flask, Ruby/Ruby on Rails or any other framework which utilizes SOLID/CQRS/MVC patterns, there isn't too much difference and any developer would feel right at home in using some of the most well-known PHP frameworks like Laravel, Symfony, CakePHP or Phalcon.
“If you are coming straight from say Python, Ruby or .Net, you'll be surprised at how easy it is to pick up working with PHP on the web. It's just as easy as renaming an .html file to .php and it'll work right away”, he concluded this part of the conversation.
In terms of how PHP works, he elaborated even further.
"Also, another thing that may catch off guard some of newcomers to PHP is how its scope works. In contrast with how JavaScript scope works, PHP’s outer scope variables are not immediately available inside classes or functions of the inner scope unless you use something like “user” or “globals” (this may change in the future as some attempts have been made)."
Endrit Veseli
In continuation, Endrit said that another thing that might surprise people coming from other languages is that you can often hear Object Oriented Programming in PHP but this is a bit misleading as PHP is NOT an Object Oriented Language (OOP) in the traditional sense of the word. Rather, it is an Object Oriented Capable language (OOC). “You can create objects in PHP, but, by default, it is a procedural language and in PHP nothing is considered an object”, he added.
Finally, Endrit got to answer my third and final question. Which PHP frameworks should developers learn first?
"If you are an experienced developer coming from some well-known frameworks like Django, Flask, .NET Core, Ruby on Rails, etc., you'll find familiarity with most of the PHP frameworks as they use the same philosophy (Laravel, Symfony, and Zend being the most prominent of them all)."
Endrit Veseli
"Which one to pick up learning first is a matter of where you are coming from. I'd say check all of them out, see which one is the closest to what you are accustomed to and start with that.”
For developers looking to learn PHP without much background of any other framework, he explicitly said none of them. Try to learn PHP in a procedural style first, understand how it works, understand its scope, get some knowledge of the most common programming design patterns (e.g SOLID/MVC/DI) and then dive into some more advanced stuff. Endrit’s personal recommendation is CodeIgniter.
"While it is on the older side (CodeIgniter) and not really suited or recommended to use in production for new applications today, in my opinion, it is still a great way and an easy framework to learn some of the most common programming concepts (e.g MVC pattern). After that it'll be easier learning more advanced frameworks like Zend or Symfony."
Endrit Veseli
Endrit was nearing the logical conclusion of our conversation. “To conclude, I'd say that the best way to learn how a wheel works is to make one yourself. So, if you are truly looking to master PHP, try to reinvent the wheel by creating your own framework. You'll learn much more of how things work behind the scenes than using some advanced, production ready frameworks which may confuse newcomers”, he ended.
Here are some technical questions you can ask your prospective PHP developer candidates to assess their knowledge and proficiency of the language:
- What is PEAR?
Expected answer: PEAR is an acronym for PHP Extension and Application Repository. It is a repository of code that can be downloaded and used in various PHP-based applications.
- Is PHP considered a case-sensitive language?
Expected answer: Yes, PHP is a case-sensitive language. This means that it can be sensitive to the case of letters and characters in certain situations. For example, if you have a variable named "name" and try to access it with the name spelled "NAME," it will not work.
- How many types of variables does PHP support?
Expected answer: PHP supports eight types of variables.
The following are the types of variables supported by PHP:
- Scalar
- Array
- String
- Boolean
- Null
- Undefined
- Resource
- Callable
- Explain the difference between “print” and “echo” in PHP
Expected answer: The difference between print and echo is that print will output the statement to the browser. In contrast, echo will output the statement to the browser and return the result to the calling program.
- How are PHP and HTML able to interact?
Expected answer: PHP code is embedded into HTML documents using special tags called pre-processors. The web server converts these pre-processors into valid HTML, which then sends them back to the browser as part of the page's response.
As a result, PHP scripts can produce dynamic web pages without requiring any special client software other than a standard web browser.
- What is the parser in PHP?
Expected answer: The parser is a PHP engine component that analyses your script's source code and generates a parse tree. Other components of the PHP engine then process the parse tree.
The parser has two main tasks:
- Convert the source code's textual representation into an abstract syntax tree (AST).
- Check for errors in your code (syntax errors).
- What are traits in PHP?
Expected answer: PHP traits are similar to interfaces in Java, but they are more powerful. They are not classes but a way to group functionality into a single place.
Traits allow you to factor out common functionality into a reusable class or interface. This is particularly useful if you want to extend another class but do not want to modify it directly. In other words, when you inherit from a trait, you get all the methods defined in the trait without needing to re-implement them.
- What is the difference between PHP and ASP.NET?
Expected answer: PHP is a powerful programming language that allows you to create dynamic websites easily. It is not a fully object-oriented programming language but offers object-oriented features (such as classes, methods and properties). PHP is known for its ease of use and flexibility in terms of its range of functions and the speed at which it runs.
ASP.NET is an entirely different beast, which relies on compilation rather than interpretation to run your code. It uses Microsoft's Common Language Runtime (CLR) for this purpose, which means that all programs written in any .NET language will be compiled into Common Intermediate Language (CIL) before being executed by the CLR.
- How does path traversal work in PHP?
Expected answer: Path traversal is a type of attack that allows an attacker to access files and directories outside the intended directories. It's a common issue with PHP applications, especially when using user-supplied data improperly.
- Explain the steps to create a new database with MySQL and PHP
Expected answer: The following are the steps to create a new database with MySQL and PHP:
Step 1: Connect to your database using the phpMyAdmin tool.
Step 2: Click on Databases.
Step 3: Click on Create new database button in the top toolbar.
Step 4: Enter the name of your database in the Database name text box and click the Go button to create it.
- Generally speaking, explain the steps needed to create API in PHP
Expected answer: There are several steps involved in the creation of an API in PHP.
First, you need to create a database for your application. To build this database, you can use a database management system like MySQL or PostgreSQL.
Next, you need to write the code that will be used as the basis of your API. This is usually written in PHP and interacts with a database to get information from it.
Then, you need to set up your server to accept requests from other programs (often called clients). This process is called reverse proxying or front-ending.
Finally, you can start writing clients for the API so that other applications can use its services.
Why should you hire a PHP developer?
There are many reasons why you should hire a dedicated PHP developer part-time, full-time, or to work on a per-project basis. Here are some of them:
Improved turnaround time: PHP developers can improve turnaround times for application project deliveries and improve resource spending efficiency as well. Hiring a full team of dedicated PHP developers ensures the best possible project quality within the shortest amount of time.
Exceptional skills: Their in-depth technical expertise allows PHP developers to perform crucial tasks, develop highly performant web applications and websites, and work behind the scenes to ensure a smooth product deployment and effortless execution of all necessary app/website functionalities.
Unparalleled versatility: The open-source nature of the language is a definitive fan-favorite among all PHP developers worldwide. In fact, PHP can be installed in mere minutes without spending as much as a dime. Given its platform-independency, it can quickly overtake all your previously-used frameworks and become the key development tool in everything your company does. PHP can run on Windows, UNIX, Linux, macOS, and it supports all major web servers and most popular browsers as well.
Freedom to work from anywhere: PHP devs (and all developers in general) don’t need an office to be productive; they can conduct their work (work remotely) from anywhere they feel like doing so! All they need is a relatively fast device (my personal recommendations are either a medium-tier Mac or a ThinkPad), internet connection, and an organic snack to keep those blood sugar levels in check. You can monitor their progress, share ideas, and look into the code yourself – all done remotely!
Vibrant community: Sometimes, a PHP developer can run into a relatively difficult problem to solve on their own. This is where the active PHP community comes in to save the day. A quality PHP developer will have access to (and develop friendships with) numerous communities that include a vast (and growing) number of expert PHP devs. Through them, you will receive a tenfold increase in the ability to problem-solve your PHP projects with ease.