I’m not new to PHP and have used it quite often, but what I’ve not really used are frameworks. There are plenty of them out there all capable of different things, but all able to save a whole heap of time when it comes to developing something more than a simple script.
The one I’ve tended to favour is ‘Laravel‘. It’s pretty fully featured and fairly straight forward, but there is a lot to learn.
The Getting Started page for composer pretty much explains what it’s all about
Composer is not a package manager in the same sense as Yum or Apt are. Yes, it deals with “packages” or libraries, but it manages them on a per-project basis, installing them in a directory (e.g.
vendor) inside your project.
With composer it’s a piece of cake to keep your Laravel project up to date. It downloads and installs any dependencies for the framework, but also any you may have added into your project.
For example I wanted to make use of Guzzle for interfacing with the api of a cloud system. Installing it was a breeze. From within my project folder a simple:
$ composer require guzzlehttp/guzzle
Got it downloaded and autoloading so the class was immediately available.
What’s more is when the developer updates their code it gets updated along with all my other dependancies using:
$ composer update
So in short composer downloads packages from packagist and maintains them within your project.