PHP has been the leading web development (server-side) programming language for many years, and continues to dominate the market after solid twenty years. I’m trying to get some chart data for the market share, but it seems that at the time of writing this – the W3Techs website is currently unavailable.
For many, PHP is the language they learned first, to begin their journey in web development, to help them learn all of the tricks of the trade. It’s certainly one of those languages that everyone knows about, and while there are plenty of elite butthurts running around telling you their bad luck stories with PHP Framework , it’s still a very viable and useful development language.
Web Development Frameworks
You can see by the above links that this is not my only post for web application frameworks, and I’m determined to have a full archive of these within the next two months or so, by the time you’re reading this – it’s possible that I already do, so please use the search function to see what you can find.
Minimal Web Frameworks for PHP
I’m trying to come up with the best analogy for what a PHP framework is, and what it does. I think the best way to describe any framework is that – it’s a list of classes, which you can use to develop web applications. The one example that comes to mind instantly is Zend, you’ve most likely heard of this framework before.
Keep in mind, this post is not for large-scale frameworks like Zend, or CakePHP and others, it’s focused on minimal ones that are small in size, but provide great / useful functionality, especially to those who’re developing specific web apps.
It’s possible none of that made any sense to you as a beginner developer, if so – please check back to the Wikipedia page of web application frameworks, you’ll be introduced properly with the correct terms and analogies, though very technical.
Yet Another Framework (Yaf) is a well structured web development framework, written purely in C – which enables it to be rather fast, but it might come at the cost of not being very practical.
It’s well supported by the official PHP community, and has a seperate documentation page – Yaf Manual – available for beginners.
It’s obviously quite fast, for the amount of features it provides. I’ve also learned that it’s quite similar to Zend.
It’s self-acclaimed ‘smallest MVC framework you’ll ever use’, and while it’s MVC – it’s also sporting a nice GUI for managing and publishing content. It’s very easy to get up and running, and doesn’t require building any external builds, simply download; extract; good to go.
You can see a good discussion happening around this framework on this page, good if you want to learn more about the strings / loaders it uses.
The framework has changed quite a bit over the years and no longer ships with plugins or a GUI. It went through two complete rewrites and is now at version 3 (and has been stable for a while).
It really is tiny, the entire manual and source code documentation fits comfortably in the README. It’s pretty much a basic MVC structure with a few niceties like plugins, routing and error handling. Perhaps my favourite feature is the ability to create pages without touching configuration files (i.e. convention over configuration).
The above quote has been taken from the author.
Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs. Slim is easy to use for both beginners and professionals. Slim favors cleanliness over terseness and common cases over edge cases.
Its interface is simple, intuitive, and extensively documented — both online and in the code itself. Thank you for choosing the Slim Framework for your next project. I think you’re going to love it.
It’s unfortunate that there is no real tutorial available for the Slim Framework, as it’s wonderful for beginners to begin learning from. I have included – see above – a YouTube video and the slideshow accordingly, for a great little introduction on the Slim framework, and how it works / operates in real world. It’s currently the best there is.
Silex is the little brother to Symfony2 framework (a high performance framework), it’s built on top of it, and uses most of it’s components, so the syntax is going to be familiar if you’ve every worked with Symfony2. BUT, if you have not, Silex can be a great way to learn more about PHP, and development in general.
The above slideshow will give you a good feel of the framework, and the general experience of it. You can also try checking out this slideshow from Igor Wiedler, use it only as a way to educate yourself about the style of the framework, do all of the testing in real environment.
It’s an incredibly tiny, useful and easy to learn controller for RESTful applications and APIs. The amount of time it takes to learn this tiny framework is absurd, and you’ll love its functionality, completely RESTful. Head over to the documentation for real-life examples.
Designed for fast and efficient production of lightweight and scalable web applications. While it’s small, tiny and not very feature rich, it will take some determination to learn, and it’s also worth noting that it’s maintained by a Spanish guy, ola to my Español readers!
Phalcon is a web framework implemented as a C extension offering high performance and lower resource consumption. It has been developed with ‘everyone’ in mind, and so comes available to all three major operating systems, hassle free. Web application frameworks can be tricky, especially when changing versions – the version one was abondoned, and many people were left hanging, pondering what to do.
You can learn about the mentioned issue above in this Reddit post, there’s a ton of information on how this framework works, and how big sites it can hold.
Nanite is a small “framework” to easily handle GET and POST requests with just about any URL format you can think of. It serves a single purpose, and does it well. It’s one of the smallest ones on the list.
The name might suggest it’s a micro framework, and while it’s very tiny it does offer a fully functional PHP framework base, integrated with Object-relational mapping (ORM). On the other hand, MicroMVC is built with performance in mind. Easily one of the fastest frameworks ever made among the slue of small PHP frameworks. While most frameworks take 2-6MB of RAM to make a simple database request – MicroMVC can do it in less than .5MB while still using the full ORM.
Limonade is a PHP micro framework for rapid web development and prototyping. It’s inspired by frameworks like Sinatra or Camping in Ruby, or Orbit in Lua. It aims to be simple, lightweight and extremly flexible. The founder himself has said that it was built for flexibility, and simplicity. It’s a fully functional PHP framework that offers all of the expected features, while also staying extremely minimal and fast.
Hackwork is a layout-based framework, and most of the inspiration for building it was gained from Jekyll, a static website generator that I had mentioned in my static site generators post. You’re given a set of layouts to choose from, and that way you’re also building webpages.
Here’s a quick example code: –
< ?php $home = $_SERVER['DOCUMENT_ROOT']; // root folder $text = 'This will use the layout you define to display your text!'; // page text include_once 'layouts/layout-text.php'; // including the text layout ?>
Flight, just like ‘Respect\Rest’ was built to help you build RESTful web applications at ease. It’s minimal, easy to understand and very extensible. You’ll learn everything there is to know on the official GitHub repository.
Fitzgerald should be your first choice if you’re looking to build an authentication system in PHP, as that’s exactly what it was built for, gaining inspiration from the ever lovely Sinatra. It has been acclaimed as the PHP clone of Sinatra, I’ll let you be the judge of that.
It’s only 60KBish in size, mature within its code, and includes a straightforward curve of writing and building web applications that work. Comes equipped with an easy-to-understand toolkit for the best web development experience, a high-performance URL routing and cache engine, built-in code highlighting, and support for multilingual applications. It’s lightweight, easy-to-use, and fast. Most of all, it doesn’t get in your way.
Fat-Free supports all of the major database systems, and make their integration just as minimal as the framework itself. It doesn’t matter if you’re just starting out, or you’ve built with PHP for years – you’ll love the easy learning curve, and will be building web apps within days!
The philosophy behind the framework and its approach to software architecture is towards minimalism in structural components, avoiding application complexity and striking a balance between code elegance, application performance and programmer productivity.
It looks like Sinatra is quite inspiring to many, as Deano is another minimal web framework for PHP that has been inspired by the beauty of Ruby’s Sinatra. It’s not support by a templating engine, and rather allows you to integrate it within other templating engines, as to save time with development.
Bullet is a resource-oriented micro PHP framework built around HTTP URIs. Bullet takes a unique functional-style approach to URL routing by parsing each path part independently and one at a time using nested closures. The path part callbacks are nested to produce different responses and to follow and execute deeper paths as paths and parameters are matched.
You’ll also need to get Composer for package management, and PHP 5.4 is recommended.
The Aura project centers around a collection of independent packages. Each package is self-contained and has only the things it needs for its core purpose. None of the packages depends on any of the other; you can use each of the packages on its own. You can see those packages here.
It’s main goal is to provide good and tested libraries which could be used within any code base, and the beautiful part is that you’re able to use as much as you like, or as little as you like, it’s all tailored together so you’re always able to use only the resources you need.
It’s a minimal routing framework, supports: get, post, put, delete, ajax. It’s maintained by James Brooks.
Minimal PHP Frameworks
I have tried to include as many examples, keywords and explanations as possible – within their own merit. You can easily return to this list whenever you’ve got the need to develop something new, or you feel like trying something entirely different for a while.
The beauty of the matter is that we’re usually picking up new things to explore and learn about, whenever we try out something new, and frameworks are a great way to see the inner doings of any language. I hope you were able to relate to some of the frameworks, and I’ll appreciate any feedback for them.
As with any of my framework lists, I’ll appreciate suggestions and your own favorites in the list, I’m not sure how many of those you yourself like I’ve missed, but then again – I tried to focus on the most minimal ones.