Saving and retrieving data to and from a database, identifying users across multiple pages, performing calculations and applying conditional logic to what is displayed on the screen are just a few examples of the the kinds of functionality features that developers are now capable of achieving. This dynamic web experience became possible primarily due to a system called ‘PHP’.
PHP allowed developers to write code that could deliver actual functionality and make the web more of a tool for companies to start offering services. PHP has always been free too, meaning that more of the budget for a given project can go into actual creativity, innovation and delivery, rather than paying for expensive licenses.
Today, there are many possible systems, coding languages, platforms and approaches that allow us to deliver more functionality and dynamism than ever before. This allows us to answer the modern demands and expectations of web based projects and applications. A part of achieving this has been the appearance of many frameworks, and PHP is a platform where new frameworks are appearing all of the time.
So much of development and code is about repetition of various patterns. Some of these patterns are quite long winded! Luckily though we have the facility of bundling up often repeated tasks and functionality by using libraries of code that have already been developed for that purpose. By 2020, we have so many of these at our disposal that trying to pick and choose between all of the approaches, libraries of code, can be a minefield.
The solution lies in ready made ‘frameworks’ – essentially collections of really great ready made code, often combined with an overall set of rules and approaches about how you can use them together consistently.
The individual parts of a framework usually cover all of the typical functionality that we might need to get a project done, not just to the degree that it works, but by using the framework we ensure that we are following best practice and modern standards.
Many years ago, building a layer of security for a project was a time consuming task. This required developers to write countless layers covering usernames, passwords, password resets, identities and much more. Additionally, all of this need to be kept up to date at all times, which is a huge undertaking for even a large team of developers!
Most frameworks now have an approach already built-in (or sometimes multiple, optional approaches so that you can adjust to suit your projects more specific or bespoke requirements) for managing users, logging in, authorisation, permissions, and all other aspects around this. This means that once again, as developers, we can focus on building really great solutions for our clients instead of writing code that has been written (probably literally!) a million times before. We prefer instead to be implementing and using code that has been developed and importantly, tested, by people and organisations with much more knowledge and experience even than ourselves. A framework gives us this 100 times over.
Indeed, some frameworks have contributors and successful commercial sponsors who are part of some of the largest technical organisations in the world. Developers from places such as Google and Facebook often contribute to ‘open source’ projects outside if their own roles, where they are permitted to do so of course. It is very much a case of ‘standing on the shoulders of giants’ with this.
Within the PHP ecosystem specifically, there are two frameworks that really stand out and that have emerged in recent years to help us deliver better and more secure solutions, as well as spend less time on the fundamentals. These two frameworks are called ‘Symfony’ and ‘Laravel’. We will be writing more about the differences & similarities between Symfony and Laravel PHP Frameworks in another feature
We only discuss ‘backend’ PHP frameworks here i.e. Frameworks that are responsible solely for helping us to deliver great functionality ‘behind the scenes’. There are now many competing front end frameworks too, some covering one or two very specific areas such as visual look and feel, some going much further.
Essentially, PHP frameworks are now everywhere, and it makes sense to be using them. Which ones to use though is a great topic, and there are different strengths and weaknesses, pros, and cons. There’s no absolute right or wrong answer but we have found through practice that there are definitely benefits to use certain frameworks, often in combination.
As an aside, you may also be familiar with ‘WordPress’. Originally a ‘blogging’ platform, now regarded as more of a general purpose Content Management System (CMS), WordPress is likely the most popular website solution on the planet. The best thing about it, is that it sites on top of PHP too. WordPress can also be considered a framework in some ways, especially due to its plugin and theme architecture and thriving ecosystem. Trying to write from scratch on a blank canvas everything that WordPress does, let alone the functionality that the top 10 or so plugins offer, would take years for even a large team to build from scratch.
Something that our team will be working on in the future is blending our excellent WordPress skills and experience with our ability to use cutting edge ‘front-end ‘and ‘backend’ frameworks so that we can leverage the best aspects of several leading frameworks, together, to fulfil even the most challenging and bespoke of briefs.