Awesome PHP

Libraries that are PHP 5.3+, Composer-installable, PSR compliant, tested and documented are preferred.

Dependency Management

Libraries for dependency and package management.

Dependency Management Extras

Extras related to dependency management.

  • Satis – A static Composer repository generator.
  • Composition – A library to check your Composer environment at runtime.
  • Poser – A Composer class aliasing library.
  • Version – A parsing and comparison library for semantic versioning.
  • NameSpacer – A library to convert from underscores to namespaces.
  • Patch Installer – A library to install patches using Composer.
  • Composer Checker – A tool to validate Composer configurations.


Web development frameworks.

  • Symfony2 – A framework comprised of individual components.
  • Zend Framework 2 – Another framework comprised of individual components.
  • Laravel 4 – A simple PHP framework.
  • Aura PHP – A framework of independent components.
  • Phalcon – A framework implemented as a C extension.

Framework Extras

Extras related to web development frameworks.

  • Symfony CMF – A Content Management Framework to create custom CMS.
  • Knp RAD Bundle – A Rapid Application Development (RAD) bundle for Symfony 2.

Framework Components

Standalone component from web development frameworks.

Micro Frameworks

Micro frameworks and routers.

  • Silex – A micro framework built around Symfony2 components.
  • Slim – Another simple micro framework.
  • Bullet PHP – A micro framework for building REST APIs.
  • Fast Route – A fast routing library.
  • Pux – Another fast routing library.

Micro Framework Extras

Extras related to micro frameworks and routers.


Libraries and tools for templating and lexing.

  • Twig – A comprehensive templating language.
  • Twig Cache Extension – A template fragment cache library for Twig.
  • Mustache – A PHP implementation of the Mustache template language.
  • Phly Mustache – Another PHP implementation of the Mustache template language.
  • MtHaml – A PHP implementation of the HAML template language.
  • Plates – A native PHP templating library.
  • Lex – A lightweight template parser.

Static Site Generators

Tools for pre-processing content to generate web pages.

  • Sculpin – A tool that converts Markdown and Twig into static HTML.
  • Phrozn – Another tool that converts Textile, Markdown and Twig into HTML.


Libraries for working with HTTP and scraping websites.

  • Guzzle – A comprehensive HTTP client.
  • Buzz – Another HTTP client.
  • Requests – A simple HTTP library.
  • HTTPFul – A chainable HTTP client.
  • Goutte – A simple web scraper.
  • PHP VCR – A library for recording and replaying HTTP requests.


Libraries for parsing URLs.


Libraries for sending and parsing email.


Libraries for file manipulation and MIME type detection.

  • Gaufrette – A filesystem abstraction layer.
  • Flysystem – Another filesystem abstraction layer.
  • Canal – A library to determine internet media types.
  • Apache MIME Types – A library that parses Apache MIME types.
  • Ferret – A MIME detection library.
  • Hoa Mime – Another MIME detection library.
  • Lurker – A resource tracking library.
  • PHP File Locator – A library for locating files in large projects.
  • PHP FFmpeg – A wrapper for the FFmpeg video library.
  • CSV – A CSV data manipulation library.


Libraries for working with streams.

  • Streamer – A simple object-orientated stream wrapper library.

Dependency Injection

Libraries that implement the dependency injection design pattern.

  • Pimple – A tiny dependency injection container.
  • Auryn – Another dependency injection container.
  • Orno Di – Another flexible dependency injection container.
  • PHP DI – A dependency injection implementation using annotations.
  • Acclimate – A common interface to dependency injection containers and service locators.


Libraries for manipulating images.


Libraries for testing codebases and generating test data.

  • PHPUnit – A unit testing framework.
  • DBUnit – A database testing library for PHPUnit.
  • ParaTest – A parallel testing library for PHPUnit.
  • PHPSpec – A design by specification unit testing library.
  • Codeception – A full stack testing framework.
  • Atoum – A simple testing library.
  • Mockery – A mock object library for testing.
  • Phake – Another mock object library for testing.
  • Parody – Yet another mock object library for testing.
  • Faker – A fake data generator library.
  • Samsui – Another fake data generator library.
  • Alice – An expressive fixture generation library.
  • Behat – A behaviour driven development (BDD) testing framework.
  • Pho – Another behaviour driven development testing framework.
  • Mink – Web acceptance testing.
  • HTTP Mock – A library for mocking HTTP requests in unit tests.
  • VFS Stream – A virtual filesystem stream wrapper for testing.
  • VFS – Another virtual filesystem for testing.
  • Locust – A modern load test library written in Python.

Continuous Integration

Libraries and applications for continuous integration.

  • Travis CI – A continuous integration platform.
  • PHPCI – An open source continuous integration platform for PHP.
  • Sismo – A continuous testing server library.


Libraries for generating project documentation.

  • Sami – An API documentation generator.
  • APIGen – Another API documentation generator.
  • PHP Documentor 2 – A documentation generator.
  • phpDox – A documentation generator for PHP projects (that is not limited to API documentation).


Libraries for generating secure random numbers, encrypting data and scanning for vulnerabilities.

  • HTML Purifier – A standards compliant HTML filter.
  • RandomLib – A library for generating random numbers and strings.
  • True Random – A library that generates random numbers using
  • SecurityMultiTool – A PHP security library.
  • Password Compat – A compatibility library for the new PHP 5.5 password functions.
  • PHPAss – A portable password hashing framework.
  • PHP Password Lib – A library for generating and validating passwords.
  • Password Policy – A password policy library for PHP and JavaScript.
  • Password Validator – A library for validating and upgrading password hashes.
  • PHPSecLib – A pure PHP secure communications library.
  • TCrypto – A simple encrypted key-value storage library.
  • PHP IDS – A structured PHP security layer.
  • PHP SSH – An experimental object orientated SSH wrapper library.
  • IniScan – A tool that scans PHP INI files for security.
  • SensioLabs Security Check – A web tool to check your Composer dependencies for security advisories.
  • Zed – An integrated penetration testing tool for web applications.

Code Analysis

Libraries and tools for analysing, parsing and manipulation codebases.

  • PHP Parser – A PHP parser written in PHP.
  • PHPPHP – A PHP VM implementation in PHP.
  • PHPSandbox – A PHP sandbox environment.
  • Dissect – A set of tools for lexical and syntactical analysis.
  • PHP Mess Detector – A library that scans code for bugs, sub-optimal code, unused parameters and more.
  • PHP Code Sniffer – A library that detects PHP, CSS and JS coding standard violations.
  • PHPCPD – A library that detects copied and pasted code.
  • PHP Analyser – A library for analysing PHP code to find bugs and errors.
  • PHP CS Fixer – A coding standard fixer library.
  • PHP Manipulator – A library for analysing and modifying PHP Source Code.
  • PHP Metrics – A static metric library.
  • PHP Refactoring Browser – A command line utility for refactoring PHP code.
  • UBench – A simple micro benchmark library.
  • Athletic – An annotation based benchmark framework.
  • Mondrian – A code analysis tool using Graph Theory.
  • PHP Debug Bar – A debugging toolbar.
  • PHP Console – A web debugging console.
  • Barbushin PHP Console – Another web debugging console using Google Chrome.
  • PHPDBG – An interactive PHP debugger.
  • Scrutinizer – A web tool to scrutinise PHP code.
  • PHPLOC – A tool for quickly measuring the size of a PHP project.
  • xDebug – A debug and profile tool for PHP.
  • xHprof – Another profiling tool for PHP.

Build Tools

Project build and automation tools.

  • Go – A simple PHP build tool.
  • Bob – A simple project automation tool.
  • Phake – A rake PHP clone library.
  • Box – A utility to build PHAR files.
  • Phing – A PHP project build system inspired by Apache Ant.

Task Runners

Libraries for automating and running tasks.

  • Task – A pure PHP task runner inspired by Grunt and Gulp.
  • Robo – A PHP Task runner with object-orientated configurations.
  • Bldr – A PHP Task runner built on Symfony components.


Tools for building navigation structures.

Asset Management

Tools for managing, compressing and minifying website assets.

  • Assetic – An asset manager pipeline library.
  • Pipe – Another asset manager pipeline library.
  • Munee – An asset optimiser library.
  • JShrink – A JavaScript minifier library.
  • Puli – A library for determining assets absolute paths.


Libraries for geocoding addresses and working with latitudes and longitudes.

  • GeoCoder – A geocoding library.
  • GeoTools – A library of geo-related tools.
  • PHPGeo – A simple geo library.
  • GeoJSON – A GeoJSON implementation.

Date and Time

Libraries for working with dates and times.

  • Carbon – A simple DateTime API extension.
  • ExpressiveDate – Another DateTime API extension.
  • CalendR – A calendar management library.


Libraries that are event-driven or implement non-blocking event loops.


Libraries for generating and working with log files.

  • Monolog – A comprehensive logger.
  • KLogger – An easy-to-use PSR-3 compliant logging class.


Libraries and applications for taking payments and building online e-commerce stores.

  • OmniPay – A framework agnostic multi-gateway payment processing library.
  • Payum – A payment abstraction library.
  • Sylius – An open source e-commerce solution.
  • Thelia – Another open source e-commerce solution.
  • Money – A PHP implementation of Fowler’s money pattern.
  • Sebastian Money – Another library for working with monetary values.
  • Swap – An exchange rates library.


Libraries and software for working with PDF files.

  • Snappy – A PDF and image generation library.
  • WKHTMLToPDF – A tool to convert HTML to PDF.

ORM and Datamapping

Libraries that implement object-relational mapping or datamapping techniques.

  • Doctrine – A comprehensive DBAL and ORM.
  • Doctrine Migrations – A migration library for Doctrine.
  • Doctrine Extensions – A collection of Doctrine behavioural extensions.
  • Propel – A fast ORM.
  • Eloquent – The Laravel 4 ORM.
  • Baum – A nested set implementation for Eloquent.
  • Spot – A MySQL datamapper ORM.
  • RedBean – A lightweight, configuration-less ORM.
  • PHP ActiveRecord – A PHP Active Record implementation.
  • Paris and Idiorm – A minimalist database library.
  • Pomm – An Object Model Manager for PostgreSQL.
  • Migrations – A migration management library.
  • PHPMig – Another migration management library.
  • Phinx – Another database migration library.
  • ProxyManager – A set of utilities to generate proxy objects for data mappers.


Libraries for working with “NoSQL” backends.

  • MongoQB – A MongoDB query builder library.
  • Monga – A MongoDB abstraction library.
  • Predis – A feature complete Redis library.


Libraries for working with event and task queues.

  • Pheanstalk – A Beanstalkd client library.
  • PHP AMQP – A pure PHP AMQP library.
  • Thumper – A RabbitMQ pattern library.
  • Bernard – A multibackend abstraction library.


Libraries and software for indexing and performing search queries on data.

Command Line

Libraries for building command line utilities.

  • Boris – A tiny PHP REPL.
  • PsySH – Another PHP REPL.
  • Pecan – An event-driven, non-blocking shell.
  • GetOpt – A command line opt parser.
  • OptParse – Another command line opt parser.
  • Commando – Another simple command line opt parser.
  • GetOptionKit – Another command line opt parser.
  • Cron Expression – A library to calculate cron run dates.
  • ShellWrap – A simple command line wrapper library.
  • Hoa Console – Another command line library.
  • Shunt – A library for running commands in parallel on multiple remote machines.


Libraries for implementing authentications schemes.

  • Sentry – A framework agnostic authentication & authorisation library.
  • Sentry Social – A library for social network authentication.
  • Opauth – A multi-provider authentication framework.
  • OAuth2 – An OAuth2 authentication server, resource server and client library.
  • OAuth2 Server – Another OAuth2 server implementation.
  • PHP oAuthLib – Another OAuth library.
  • TwitterOAuth – A Twitter OAuth library.
  • TwitterSDK – A fully tested Twitter SDK.
  • Hawk – A Hawk HTTP authentication library.
  • HybridAuth – An open source social sign on library.


Libraries for working with markup.

Text and Numbers

Libraries for parsing and manipulating text and numbers.

  • ANSI to HTML5 – An ANSI to HTML5 converter library.
  • Patchwork UTF-8 – A portable library for working with UTF-8 strings.
  • Hoa String – Another UTF-8 string library.
  • Stringy – A string manipulation library with multibyte support.
  • Numbers PHP – A library for working with numbers.
  • Math – A library for working with large numbers.
  • Color Jizz – A library for manipulating and converting colours.
  • UUID – A library for generating UUIDs.
  • Slugify – A library to convert strings to slugs.
  • Urlify – A PHP port of Django’s URLify.js.
  • Text – A text manipulation library.
  • PHP Units of Measure – A library for converting between units of measure.
  • PHP Conversion – Another library for converting between units of measure.
  • SQL Formatter – A library for formatting SQL statements.
  • ByteUnits – A library to parse, format and convert byte units in binary and metric systems.
  • UA Parser – A library for parsing user agent strings.
  • LibPhoneNumber for PHP – A PHP implementation of Google’s phone number handling library.

Filtering and Validation

Libraries for filtering and validating data.

  • Filterus – A simple PHP filtering library.
  • Respect Validate – A simple validation library.
  • Valitron – Another validation library.
  • Upload – A library for handling file uploads and validation.
  • DMS Filter – An annotation filtering library.
  • MetaYaml – A schema validation library that supports YAML, JSON and XML.
  • ISO-codes – A library for validating various ISO and ZIP codes (IBAN, SWIFT/BIC, BBAN, VAT, SSN, UKNIN).


Libraries and web tools for developing REST-ful APIs.

  • Apigility – An API builder built with Zend Framework 2.
  • Hateoas – A HATEOAS REST web service library.
  • HAL – A Hypertext Application Language (HAL) builder library.
  • Negotiation – A content negotiation library.


Libraries for caching data.

Data Structure and Storage

Libraries that implement data structure or storage techniques.

  • Ardent – A library of data structures.
  • PHP Collections – A simple collections library.
  • Serializer – A library for serialising and de-serialising data.
  • PHP Object Storage – A library for object storage.
  • Fractal – A library for converting complex data structures to JSON output.


Libraries for working with notification software.

  • Nod – A notification library (e.g., Growl).
  • Notificato – A library for handling push notifications.
  • Notification Pusher – A standalone library for device push notifications.
  • Notificator – A lightweight notification library.


  • Pomander – A deployment tool for PHP applications.
  • Rocketeer – A fast and easy deployer for the PHP world.
  • Envoy – A tool to run SSH tasks with PHP.

Third Party APIs

Libraries for accessing third party APIs.


Libraries to help build PHP extensions.

  • PHP CPP – A C++ library for developing PHP extensions.


Useful libraries or tools that don’t fit in the categories above.

  • Spork – A process forking library.
  • JSON Lint – A JSON lint utility.
  • JSONPCallbackValidator – A library for validating JSONP callbacks.
  • Pagerfanta – A pagination library.
  • Ruler – A simple stateless production rules engine.
  • LiteCQRS – A CQRS (Command Query Responsibility Separation) library.
  • Sslurp – A library that makes dealing with SSL suck less.
  • PHP Option An option type library.
  • Metrics – A simple metrics API library.
  • Sabre VObject – A library for parsing VCard and iCalendar objects.
  • Annotations – An annotations library (part of Doctrine).
  • Whoops – A pretty error handling library.
  • Finite – A simple PHP finite state machine.
  • LadyBug – A dumper library.
  • Plum – A deployer library.
  • Procrastinator – A library for running time consuming tasks.
  • Compose – A function composition library.
  • SuperClosure – A library that allows Closures to be serialized.
  • Jumper – A remote service executor library.
  • Underscore – A PHP port of the Underscore JS library.
  • PHP PassBook – A PHP library for iOS PassBook.
  • PHP Expression – A PHP expression language.
  • RMT – A library for versioning and releasing software.
  • Wise – A configuration manager.
  • Opengraph – An opengraph library.
  • Essence – A library for extracting web media.
  • Embera – An Oembed consumer library.
  • Graphviz – A Graphviz library.
  • Monad PHP – A simple Monad library.
  • Flux – A regular expression building library.
  • Patchwork – A library for redefining userland functions.
  • Galapagos – Evolutionary language transformation.
  • Design Patterns PHP – A repository of software patterns implemented in PHP.
  • PHPCR – A PHP port of the Java Content Repository (JCR).
  • Functional PHP – A functional programming library.
  • ClassPreloader – A library for optimising autoloading.
  • Lib Country – A library for country and subdivision data.
  • Lib Accessor – A library for simplifying accessors.
  • PHPStack – A TCP/IP stack proof of concept written in PHP.
  • Nmap – A PHP wrapper around Nmap.
  • Code Mover – A library for moving code.
  • Iter – A library that provides iteration primitives using generators.
  • Lambda PHP – A Lambda calculus interpreter in PHP.
  • Country List – A list of all countries with names and ISO 3166-1 codes.
  • PHP-GPIO – A library for playing with the Raspberry PI’s GPIO pins.


Software for creating a development environment.

PHP Installation

Tools to help install and manage PHP on your computer.

  • HomeBrew – A package manager for OSX.
  • HomeBrew PHP – A PHP tap for HomeBrew.
  • PHP OSX – A PHP installer for OSX.
  • PHP Brew – A PHP version manager and installer.
  • PHP Env – Another PHP version manager.
  • PHP Switch – Another version manager.
  • PHP Build – Another PHP version installer.
  • VirtPHP – A tool for creating and managing isolated PHP environments.

Development Environment

Software and tools for creating a sandboxed development environment.

  • Vagrant – A portable development environment utility.
  • Ansible – A radically simple orchestration framework.
  • Puppet – A server automation framework and application.
  • PuPHPet – A web tool for building PHP development virtual machines.
  • Protobox – Another web tool for building PHP development virtual machines.
  • Phansible – A web tool for building PHP development virtual machines with Ansible.

Virtual Machines

Alternative PHP virtual machines.

  • HipHop PHP – A Virtual Machine, Runtime and JIT for PHP by Facebook.
  • HippyVM – Another PHP virtual machine.
  • Hack – A programming language for HHVM that interoperates seamlessly with PHP.

Web Applications

Web-based applications and tools.

  • 3V4L – An online PHP shell.
  • DBV – A database version control application.
  • PHP Queue – An application for managing queueing backends.
  • Composer as a Service – A tool for downloading Composer packages as a zip file.
  • MailCatcher – A web tool for capturing and viewing emails.


Various resources, such as books, websites and articles, for improving your PHP development skills and knowledge.

PHP Websites

Useful PHP-related websites.

  • PHP The Right Way – A PHP best practice quick reference guide.
  • PHP Best Practices – A PHP best practice guide.
  • PHP Weekly – A weekly PHP newsletter.
  • PHP Security – A guide to PHP security.
  • PHP FIG – The PHP Framework Interoperability Group.
  • PHP UG – A website to help people locate their nearest PHP user group (UG).
  • Seven PHP – A website that interviews members of the PHP community.
  • Nomad PHP – A online PHP learning resource.

Other Websites

Useful websites related to web development.

PHP Books

Fantastic PHP-related books.

Other Books

Books related to general computing and web development.

PHP Videos

Fantastic PHP-related videos.

PHP Reading

PHP-releated reading materials.

PHP Internals Reading

Reading materials related to the PHP internals or performance.


Best Laravel Packages

Best Laravel Packages to speed up development

Presentation and transformation layer for complex data output such as RESTful APIs.

Self-validating smart models for Laravel Framework 4’s Eloquent ORM.

Unit testing & Full Stack Testing great for TDD.

PHP library that generates fake data for your project.

Light-weight hierarchical and instrumentation based profiler.

Laravel IDE Helper, generates correct PHPDocs for all Facade classes.

Sylius e-commerce solution


Sylius is e-commerce solution for PHP, based on the Symfony2 framework.



Sylius is completely open source (MIT license) and free, maintained by diverse and creative community of developers and companies.

If you use a different framework than Symfony, you are welcome to use Sylius components, which will make it much easier to implement a webshop with any PHP application and project. They provide you with default models, services and logic for all aspects of e-commerce, completely separated and ready to use.

composer create-project -s dev sylius/sylius

Changes For Laravel 4.2.*

$php artisan changes

-> View and Pagination ‘Environment’ classes renamed to ‘Factory’.
-> Configurable encryption for queue messages.
-> Make FrameGuard middleware opt-in.
-> Convert View ‘$errors’ shared variable into ViewErrorBag. Allows multiple bags per view. Should be backwards compatible.
-> Calling ‘create’ on a HasOne or HasMany relation will now use ‘fill’ method so mutators are executed on related model.
-> Use rawurldecode when decoding parameters in Route::parameters.
-> When date_format validation rule is used, before and after validation dates must match given format.
-> Added ability to register global Eloquent scopes using traits and addGlobalScope.
-> Soft deleting converted to use new global scope facilities.
-> Added ability to extend Eloquent Builder using ‘macro’ method.
-> Soft deleting models now use SoftDeletingTrait instead of softDelete property.
-> The queue:listen command will now write the names of the jobs it processes to the console.
-> Added Mailgun API transport for Mail::send. Depends on new ‘services’ configuration file.
-> Added Mandrill API transport for Mail::send. Depends on new ‘services’ configuration file.
-> Added ‘log’ mail transport for Mail::send. Writes raw MIME string to log files.
-> Added simplePaginate method to query and Eloquent builder.
-> Destructive migration operations now require confirmation or –force when being run in production.
-> Added Cache::pull method for retrieving a value and then deleting it.
-> Added Session::pull method for retrieving a value and then deleting it.
-> Added rel attribute to basic pagination links.
-> The ‘page’ query variable is now ignored when calling the paginator ‘appends’ method.
-> Empty arrays that are ‘required’ validate as false when empty.
-> Added –daemon option to the queue:work command.
-> Added convenient traits for authentication and password reminding.
-> Added ‘reject’ method to Collection.
-> Added ‘updateOrCreate’ method to Eloquent model.
-> Added ‘keyBy’ method to Collection.
-> Added ‘contains’ method to base Collection.
-> Allow ‘where’ route constraints to be passed in array definition of Route.
-> Properly support Route ‘where’ constraints on a Route group.
-> When ‘increment’ or ‘decrement’ is called on a single Model instance, the local attribute value is updated as well.
-> Automatically retry queries on database connections that have ‘gone away’.

work of Laravel framework

  • Laravel has a lot of core components
  • When any request hits the Laravel framework, it bootstraps and loads its Application class
  • Laravel’s Application class extends the container class, so the container class is also loaded
  • Framework loads and executes the register method of all the service providers that are in the providers array at app/config/app.php
  • Each service provider by the Laravel packages has a registered method that binds each of the package classes with the IoC container
  • Once each package is bound with the IoC container, you can use packages such as Auth, Cache, and Log in your application

PHP: Simple example of Dependency Injection

Dependency Injection is a software-design pattern which is used to remove hard
dependencies from code, and it allows us to change that dependency without
affecting the actual implementation.

class Car
    function __construct()
    $this->_database = DB::getInstance();
    // OR infamous Global $DB way
    Global $db;
    $this->_database = $db;

Here, database is our hard dependency. We have bound the Car class with a
database object. Assume that you want to use the Car class in one of your other
projects and it uses a different database such as MongoDB or MSSQL. So how can we remove this
dependency? Here is the answer:

class Car
  private $_database;
  function __construct($dbconnection)
  $this->_database = $dbconnection;

So if you have observed carefully, we are now injecting our database dependency
via constructor. That’s what we call Dependency Injection.