diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..935a064 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,9 @@ +language: ruby +rvm: + - 2.2 +before_script: + - gem install awesome_bot +script: + - awesome_bot README.md --white-list igor.io,symfony,toranproxy.com,vagrantup.com,3v4l.org,voicesoftheelephpant.com +notifications: + email: false diff --git a/.varci.yml b/.varci.yml new file mode 100644 index 0000000..c05a4f9 --- /dev/null +++ b/.varci.yml @@ -0,0 +1,65 @@ +ruleset: + + body_link: + name: "Pull requests that add links should also include them in the body" + events: [ pull_request ] + when: + - action = "opened" + - files = ["README.md"] + - deletions = 0 + - not (body_links.added contains diff_links.added) + comment: | + This pull request adds the following suggestion: + + {{ diff.added.0 }} + + broken_link: + name: "Pull request diff contains broken links" + events: [ pull_request ] + when: + - action = "opened" + - count(diff_links.broken) > 0 + comment: > + @{{ user.login }}, at least one of the links in the pull request diff was + reported as broken: + + - {{ diff_links.broken.0 }} + + missing_link: + name: "Suggestions should include a link" + events: [ pull_request ] + when: + - action = "opened" + - files = ["README.md"] + - deletions = 0 + - additions = 1 + - count(grep("/^\* /", diff.added)) = 1 + - count(diff_links.added) != 1 + comment: > + @{{ user.login }}, it looks like you have added a new suggestion to the + `README.md` file but haven't linked to the project. Please update the + `README.md` to also link to the project, thanks! + + multiple_additions: + name: "Pull request should only suggest one addition at a time" + events: [ pull_request ] + comment: | + @{{ user.login }}, it looks like you are trying to add multiple suggestions in a single pull request. + + If so, please split these into multiple pull requests so each item's inclusion in the list can be discussed separately. + when: + - action = "opened" + - files = ["README.md"] + - deletions = 0 + - count(grep("/^\* /", diff.added)) > 1 + + needs_explanation: + name: 'Pull request bodies should have a detailed explanation' + events: [ pull_request ] + label: 'needs: explanation' + when: + - action = "opened" + - length(body) < 25 + message: > + @{{ user.login }}, please update the pull request body with a description + of what you are adding or changing (of at least 25 characters). diff --git a/CODE-OF-CONDUCT.md b/CODE-OF-CONDUCT.md new file mode 100644 index 0000000..a7e2d2e --- /dev/null +++ b/CODE-OF-CONDUCT.md @@ -0,0 +1,50 @@ +# Contributor Code of Conduct + +As contributors and maintainers of this project, and in the interest of +fostering an open and welcoming community, we pledge to respect all people who +contribute through reporting issues, posting feature requests, updating +documentation, submitting pull requests or patches, and other activities. + +We are committed to making participation in this project a harassment-free +experience for everyone, regardless of level of experience, gender, gender +identity and expression, sexual orientation, disability, personal appearance, +body size, race, ethnicity, age, religion, or nationality. + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery +* Personal attacks +* Trolling or insulting/derogatory comments +* Public or private harassment +* Publishing other's private information, such as physical or electronic + addresses, without explicit permission +* Other unethical or unprofessional conduct + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +By adopting this Code of Conduct, project maintainers commit themselves to +fairly and consistently applying these principles to every aspect of managing +this project. Project maintainers who do not follow or enforce the Code of +Conduct may be permanently removed from the project team. + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting a project maintainer at awesome-php@josediazgonzalez.com. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. Maintainers are +obligated to maintain confidentiality with regard to the reporter of an +incident. + + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 1.3.0, available at +[http://contributor-covenant.org/version/1/3/0/][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/3/0/ diff --git a/COLLABORATING.md b/COLLABORATING.md new file mode 100644 index 0000000..4bcd124 --- /dev/null +++ b/COLLABORATING.md @@ -0,0 +1,26 @@ +# Collaboration Guidelines +As a collaborator you are representing the Awesome PHP project to the community. Please adhere to the following guidelines to give everyone the best experience possible: + +## Etiquette +Please adhere to the [CODE-OF-CONDUCT](https://github.com/ziadoz/awesome-php/blob/master/CODE-OF-CONDUCT.md) when reviewing suggestions and participating in discussions on the project's Github account. + +Always be polite and thank people, even if you don’t accept their suggestions. + +You are welcome to suggest projects that you are personally involved with, or those of friends, family or colleagues, but you are not allowed to review or merge them yourself, nor should you request that others do so for you. They must be reviewed by a neutral collaborator in their own time. + +If you provide feedback on a suggested project please be friendly and constructive. + +## Reviewing +Please work through the following checklist when reviewing a project: + +- Tag pull requests with the most relevant label(s). +- Validate URLs work correctly and don't point to anything malicious. +- Ensure suggestions adhere to [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONTRIBUTING.md). + +## Enhancements +If you have an idea on how to improve the project, please open a ticket for discussion using the `Enhancement` label. Please don’t make any broad or sweeping changes without consulting other collaborators first and reaching a consensus. + +## Join +If you want to help out please send an email to my Github username [at] gmail [dot] com with the subject “Awesome PHP Collaborator and a link to your Github account and I’ll get back to you as soon as I can (I'm notoriously slow, sorry). + +Thank you for taking the time to help out with Awesome PHP, your help is appreciated! \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6a26898..a9884a0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,13 +1,24 @@ # Contribution Guidelines -Please ensure your pull request adheres to the following guidelines: +Unfortunately, not every library, tool or framework can be considered for inclusion. The aim of Awesome PHP is to be a concise list of noteworthy and interesting software written in modern PHP. Therefore, suggested software should: +1. Be widely recommended regardless of personal opinion +2. Well known or discussed within the PHP community +3. Be unique in its approach or function +4. Fill a niche gap in the market + +Self-promotion is frowned upon, so please consider seriously whether your project meets the criteria before opening a pull request, otherwise it may be closed without being reviewed. + +Also, please ensure your pull request adheres to the following guidelines: + +* Software that is PHP 7.0+, Composer-installable, PSR compliant, semantically versioned, unit tested, actively maintained and well documented in English is preferred. * Please search previous suggestions before making a new one, as yours may be a duplicate. -* Libraries that are PHP 5.3+, Composer-installable, PSR compliant, tested and documented are preferred. -* Please make an individual commit for each suggestion in a pull request. +* Enter a meaningful pull request description. +* Please make an individual commit for each suggestion in a separate pull request. +* Put a link to each library in your pull request ticket so it's easier to review. * Use the following format for libraries: \[LIBRARY\]\(LINK\) - DESCRIPTION. * Prefix duplicate library names with their vendor or namespace followed by a space: Foo\Bar would be Foo Bar. -* New categories, or improvements to the existing categorisation are welcome. -* Keep descriptions short and simple. +* New categories, or improvements to the existing categorisation, are always welcome. +* Please keep descriptions short, simple and unbiased. No buzzwords or marketing jargon. * End all descriptions with a full stop/period. * Check your spelling and grammar. * Make sure your text editor is set to remove trailing whitespace. diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..a68bcd3 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,14 @@ + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyright (C) 2004 Sam Hocevar + + Everyone is permitted to copy and distribute verbatim or modified + copies of this license document, and changing it is allowed as long + as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. + diff --git a/README.md b/README.md index a8100e5..e2d2954 100644 --- a/README.md +++ b/README.md @@ -1,725 +1,932 @@ -# Awesome PHP +# Awesome PHP [![Build Status](https://api.travis-ci.org/ziadoz/awesome-php.svg?branch=master)](https://travis-ci.org/ziadoz/awesome-php) + A curated list of amazingly awesome PHP libraries, resources and shiny things. +## Contributing and Collaborating +Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONTRIBUTING.md), [CODE-OF-CONDUCT](https://github.com/ziadoz/awesome-php/blob/master/CODE-OF-CONDUCT.md) and [COLLABORATING](https://github.com/ziadoz/awesome-php/blob/master/COLLABORATING.md) for details. + +## Table of Contents - [Awesome PHP](#awesome-php) - - [Dependency Management](#dependency-management) - - [Dependency Management Extras](#dependency-management-extras) - - [Frameworks](#frameworks) - - [Framework Extras](#framework-extras) - - [Framework Components](#framework-components) - - [Micro Frameworks](#micro-frameworks) - - [Micro Framework Extras](#micro-framework-extras) - - [Templating](#templating) - - [Static Site Generators](#static-site-generators) - - [HTTP](#http) - - [URL](#url) - - [Email](#email) - - [Files](#files) - - [Streams](#streams) - - [Dependency Injection](#dependency-injection) - - [Imagery](#imagery) - - [Testing](#testing) - - [Continuous Integration](#continuous-integration) - - [Documentation](#documentation) - - [Security](#security) - - [Code Analysis](#code-analysis) - - [Build Tools](#build-tools) - - [Task Runners](#task-runners) - - [Navigation](#navigation) - - [Asset Management](#asset-management) - - [Geolocation](#geolocation) - - [Date and Time](#date-and-time) - - [Event](#event) - - [Logging](#logging) - - [E-commerce](#e-commerce) - - [PDF](#pdf) - - [ORM and Datamapping](#orm-and-datamapping) - - [NoSQL](#nosql) - - [Queue](#queue) - - [Search](#search) - - [Command Line](#command-line) - - [Authentication](#authentication) - - [Markup](#markup) - - [Text and Numbers](#text-and-numbers) - - [Filtering and Validation](#filtering-and-validation) - - [REST and API](#rest-and-api) - - [Caching](#caching) - - [Data Structure and Storage](#data-structure-and-storage) - - [Notifications](#notifications) - - [Deployment](#deployment) - - [Third Party APIs](#third-party-apis) - - [Extensions](#extensions) - - [Miscellaneous](#miscellaneous) + - [Composer Repositories](#composer-repositories) + - [Dependency Management](#dependency-management) + - [Dependency Management Extras](#dependency-management-extras) + - [Frameworks](#frameworks) + - [Framework Extras](#framework-extras) + - [Components](#components) + - [Micro Frameworks](#micro-frameworks) + - [Micro Framework Extras](#micro-framework-extras) + - [Routers](#routers) + - [Templating](#templating) + - [Static Site Generators](#static-site-generators) + - [HTTP](#http) + - [Middlewares](#middlewares) + - [URL](#url) + - [Email](#email) + - [Files](#files) + - [Streams](#streams) + - [Dependency Injection](#dependency-injection) + - [Imagery](#imagery) + - [Testing](#testing) + - [Continuous Integration](#continuous-integration) + - [Documentation](#documentation) + - [Security](#security) + - [Passwords](#passwords) + - [Code Analysis](#code-analysis) + - [Code Quality](#code-quality) + - [Static Analysis](#static-analysis) + - [Architectural](#architectural) + - [Debugging and Profiling](#debugging-and-profiling) + - [Build Tools](#build-tools) + - [Task Runners](#task-runners) + - [Navigation](#navigation) + - [Asset Management](#asset-management) + - [Geolocation](#geolocation) + - [Date and Time](#date-and-time) + - [Event](#event) + - [Logging](#logging) + - [E-commerce](#e-commerce) + - [PDF](#pdf) + - [Office](#office) + - [Database](#database) + - [Migrations](#migrations) + - [NoSQL](#nosql) + - [Queue](#queue) + - [Search](#search) + - [Command Line](#command-line) + - [Authentication and Authorization](#authentication-and-authorization) + - [Markup](#markup) + - [Strings](#strings) + - [Numbers](#numbers) + - [Filtering and Validation](#filtering-and-validation) + - [API](#api) + - [Caching](#caching) + - [Data Structure and Storage](#data-structure-and-storage) + - [Notifications](#notifications) + - [Deployment](#deployment) + - [Internationalisation and Localisation](#internationalisation-and-localisation) + - [Third Party APIs](#third-party-apis) + - [Extensions](#extensions) + - [Miscellaneous](#miscellaneous) - [Software](#software) - - [PHP Installation](#php-installation) - - [Development Environment](#development-environment) - - [Virtual Machines](#virtual-machines) - - [Web Applications](#web-applications) + - [PHP Installation](#php-installation) + - [Development Environment](#development-environment) + - [Virtual Machines](#virtual-machines) + - [Text Editors and IDEs](#text-editors-and-ides) + - [Web Applications](#web-applications) + - [Infrastructure](#infrastructure) - [Resources](#resources) - - [PHP Websites](#php-websites) - - [Other Websites](#other-websites) - - [PHP Books](#php-books) - - [Other Books](#other-books) - - [PHP Videos](#php-videos) - - [PHP Reading](#php-reading) - - [PHP Internals Reading](#php-internals-reading) + - [PHP Websites](#php-websites) + - [Other Websites](#other-websites) + - [PHP Books](#php-books) + - [PHP Videos](#php-videos) + - [PHP Podcasts](#php-podcasts) + - [PHP Reading](#php-reading) + - [PHP Internals Reading](#php-internals-reading) - [Contributing](#contributing) -## Dependency Management +### Composer Repositories +*Composer Repositories.* + +* [Firegento](http://packages.firegento.com/) - Magento Module Composer Repository. +* [Packagist](https://packagist.org/) - The PHP Package Repository. +* [Private Packagist](https://packagist.com/) - Composer package archive as a service for PHP. +* [WordPress Packagist](https://wpackagist.org/) - Manage your plugins with Composer. +* [Zend Framework Packages](https://packages.zendframework.com/) - Zend Framework Composer Repository. + +### Dependency Management *Libraries for dependency and package management.* -* [Composer](http://getcomposer.org/)/[Packagist](http://packagist.org/) - A package and dependency manager. * [Composer Installers](https://github.com/composer/installers) - A multi framework Composer library installer. +* [Composer](https://getcomposer.org/) - A package and dependency manager. +* [Melody](http://melody.sensiolabs.org/) - A tool to build one file Composer scripts. * [Pickle](https://github.com/FriendsOfPHP/pickle) - A PHP extension installer. -## Dependency Management Extras +### Dependency Management Extras *Extras related to dependency management.* +* [Composed](https://github.com/joshdifabio/composed) - A library to parse your project's Composer environment at runtime. +* [Composer Merge Plugin](https://github.com/wikimedia/composer-merge-plugin) - A composer plugin to merge several composer.json files. +* [Prestissimo](https://github.com/hirak/prestissimo) - A composer plugin which enables parallel install process. * [Satis](https://github.com/composer/satis) - A static Composer repository generator. -* [Composition](https://github.com/bamarni/composition) - A library to check your Composer environment at runtime. -* [Poser](https://github.com/FrenkyNet/Poser) - A Composer class aliasing library. -* [Version](https://github.com/herrera-io/php-version) - A parsing and comparison library for semantic versioning. -* [NameSpacer](https://github.com/ralphschindler/Namespacer) - A library to convert from underscores to namespaces. -* [Patch Installer](https://github.com/goatherd/patch-installer) - A library to install patches using Composer. -* [Composer Checker](https://github.com/silpion/composer-checker) - A tool to validate Composer configurations. +* [tooly](https://github.com/tommy-muehle/tooly-composer-script) - A library to manage PHAR files in project using Composer. +* [Toran Proxy](https://toranproxy.com) - A static Composer repository and proxy. -## Frameworks +### Frameworks *Web development frameworks.* -* [Symfony2](http://symfony.com/) - A framework comprised of individual components. -* [Zend Framework 2](http://framework.zend.com) - Another framework comprised of individual components. -* [Laravel 4](http://laravel.com/) - A simple PHP framework. -* [Aura PHP](http://auraphp.com/) - A framework of independent components. -* [Phalcon](http://phalconphp.com/en/) - A framework implemented as a C extension. +* [Aura Framework](http://auraphp.com/framework/) - A framework built from independent components. +* [CakePHP](https://cakephp.org/) - A rapid application development framework (CP). +* [Laravel 5](https://laravel.com/) - Another PHP framework (L5). +* [Nette](https://nette.org) - Another framework comprised of individual components. +* [Phalcon](https://phalconphp.com/en/) - A framework implemented as a C extension. +* [PPI Framework 2](https://github.com/ppi) - An interoperability framework. +* [Symfony](https://symfony.com/) - A framework comprised of individual components (SF). +* [Yii2](https://github.com/yiisoft/yii2/) - Another PHP framework. +* [Zend Framework 2](https://framework.zend.com) - Another framework comprised of individual components (ZF2). +* [Ice](https://www.iceframework.org/) - Another simple and fast PHP framework delivered as C-extension. -## Framework Extras +### Framework Extras *Extras related to web development frameworks.* +* [CakePHP CRUD](https://github.com/friendsofcake/crud) - A Rapid Application Development (RAD) plugin for CakePHP. +* [Knp RAD Components](http://rad.knplabs.com/) - A set of Rapid Application Development (RAD) components for Symfony. * [Symfony CMF](https://github.com/symfony-cmf/symfony-cmf) - A Content Management Framework to create custom CMS. -* [Knp RAD Bundle](http://rad.knplabs.com/) - A Rapid Application Development (RAD) bundle for Symfony 2. -## Framework Components -*Standalone component from web development frameworks.* +### Components +*Standalone components from web development frameworks and development groups.* -* [Symfony2 Components](http://symfony.com/doc/master/components/index.html) - The components that make Symfony2. -* [Zend Framework 2 Components](https://packages.zendframework.com/) - The components that make ZF2. -* [Aura Components](http://auraphp.github.com/) - A package of PHP 5.4 components. -* [Hoa Project](http://hoa-project.net/En/) - Another package of PHP components. +* [Aura](http://auraphp.com/) - Independent components, fully decoupled from each other and from any framework. +* [CakePHP Plugins](https://plugins.cakephp.org/) - A directory of CakePHP plugins. +* [Hoa Project](https://hoa-project.net/En/) - Another package of PHP components. +* [League of Extraordinary Packages](https://thephpleague.com/) - A PHP package development group. +* [Symfony Components](http://symfony.com/doc/master/components/index.html) - The components that make Symfony. +* [Zend Framework 2 Components](https://docs.zendframework.com/) - The components that make Zend Framework. -## Micro Frameworks +### Micro Frameworks *Micro frameworks and routers.* -* [Silex](http://silex.sensiolabs.org/) - A micro framework built around Symfony2 components. -* [Slim](http://www.slimframework.com/) - Another simple micro framework. * [Bullet PHP](http://bulletphp.com/) - A micro framework for building REST APIs. -* [Fast Route](https://github.com/nikic/FastRoute) - A fast routing library. -* [Pux](https://github.com/c9s/Pux) - Another fast routing library. +* [Lumen](https://lumen.laravel.com) - A micro-framework by Laravel. +* [Radar](https://github.com/radarphp/Radar.Adr) - An Action-Domain-Responder implementation for PHP. +* [Slim](https://www.slimframework.com/) - Another simple micro framework. -## Micro Framework Extras +### Micro Framework Extras *Extras related to micro frameworks and routers.* -* [Silex Skeleton](https://github.com/fabpot/Silex-Skeleton) - A project skeleton for Silex. +* [Silex Skeleton](https://github.com/silexphp/Silex-Skeleton) - A project skeleton for Silex. * [Silex Web Profiler](https://github.com/silexphp/Silex-WebProfiler) - A web debug toolbar for Silex. -* [Stack](https://github.com/stackphp) - A library of stackable middleware for Silex/Symfony. -* [Slim Skeleton](https://github.com/codeguy/Slim-Skeleton) - A skeleton for Slim. -* [Slim View](https://github.com/codeguy/Slim-Views) - A collection of custom views for Slim. -* [Slim Middleware](https://github.com/codeguy/Slim-Middleware) - A collection of custom middleware for Slim. +* [Slim Skeleton](https://github.com/slimphp/Slim-Skeleton) - A skeleton for Slim. +* [Slim Twig View](https://github.com/slimphp/Slim-Views) - Integrate Twig into Slim. +* [Slim PHP View](https://github.com/slimphp/PHP-View) - A simple PHP renderer for Slim. -## Templating +### Routers +*Libraries for handling application routing.* + +* [Aura.Router](https://github.com/auraphp/Aura.Router) - A full-featured routing library. +* [Fast Route](https://github.com/nikic/FastRoute) - A fast routing library. +* [Klein](https://github.com/klein/klein.php) - A flexible router. +* [Pux](https://github.com/c9s/Pux) - Another fast routing library. +* [Route](https://github.com/thephpleague/route) - A routing library built on top of Fast Route. + +### Templating *Libraries and tools for templating and lexing.* -* [Twig](http://twig.sensiolabs.org/) - A comprehensive templating language. -* [Twig Cache Extension](https://github.com/asm89/twig-cache-extension) - A template fragment cache library for Twig. -* [Mustache](https://github.com/bobthecow/mustache.php) - A PHP implementation of the Mustache template language. -* [Phly Mustache](https://github.com/weierophinney/phly_mustache) - Another PHP implementation of the Mustache template language. +* [Aura.View](https://github.com/auraphp/Aura.View) - Provides TemplateView and TwoStepView using PHP as the tempting language, with support for partials, sections, and helpers. +* [Foil](https://github.com/FoilPHP/Foil) - Another native PHP templating library. * [MtHaml](https://github.com/arnaud-lb/MtHaml) - A PHP implementation of the HAML template language. +* [Mustache](https://github.com/bobthecow/mustache.php) - A PHP implementation of the Mustache template language. +* [PHPTAL](http://phptal.org/) - A PHP implementation of the [TAL](https://en.wikipedia.org/wiki/Template_Attribute_Language) templating language. * [Plates](http://platesphp.com/) - A native PHP templating library. -* [Lex](https://github.com/pyrocms/lex) - A lightweight template parser. +* [Smarty](https://www.smarty.net/) - A template engine to complement PHP. +* [Twig](https://twig.symfony.com/) - A comprehensive templating language. +* [Tale Jade](https://github.com/Talesoft/tale-jade) - A PHP implementation of the Jade template language. -## Static Site Generators +### Static Site Generators *Tools for pre-processing content to generate web pages.* -* [Sculpin](http://sculpin.io) - A tool that converts Markdown and Twig into static HTML. -* [Phrozn](http://phrozn.info) - Another tool that converts Textile, Markdown and Twig into HTML. +* [Couscous](http://couscous.io) - Couscous turns Markdown documentation into beautiful websites. It's GitHub Pages on steroids. +* [Sculpin](https://sculpin.io) - A tool that converts Markdown and Twig into static HTML. +* [Spress](http://spress.yosymfony.com) - An extensible tool that converts Markdown and Twig into HTML. -## HTTP -*Libraries for working with HTTP and scraping websites.* +### HTTP +*Libraries for working with HTTP.* -* [Guzzle](http://guzzlephp.org/) - A comprehensive HTTP client. * [Buzz](https://github.com/kriswallsmith/Buzz) - Another HTTP client. -* [Requests](https://github.com/rmccue/Requests) - A simple HTTP library. +* [Guzzle]( https://github.com/guzzle/guzzle) - A comprehensive HTTP client. * [HTTPFul](https://github.com/nategood/httpful) - A chainable HTTP client. -* [Goutte](https://github.com/fabpot/Goutte) - A simple web scraper. +* [HTTPlug](http://httplug.io) - An HTTP client abstraction without binding to a specific implementation. * [PHP VCR](http://php-vcr.github.io/) - A library for recording and replaying HTTP requests. +* [Requests](https://github.com/rmccue/Requests) - A simple HTTP library. +* [Retrofit](https://github.com/tebru/retrofit-php) - A library to ease creation of REST API clients. +* [zend-diactoros](https://github.com/zendframework/zend-diactoros) - PSR-7 HTTP Message implementation. -## URL +### Scraping +*Libraries for scraping websites.* + +* [Embed](https://github.com/oscarotero/Embed) - An information extractor from any web service or page. +* [Goutte](https://github.com/FriendsOfPHP/Goutte) - A simple web scraper. +* [PHP Spider](https://github.com/mvdbos/php-spider) - A configurable and extensible PHP web spider. + +### Middlewares +*Libraries for building application using middlewares.* + +* [Expressive](https://zendframework.github.io/zend-expressive/) - PSR-7 Middleware framework from Zend. +* [PSR7-Middlewares](https://github.com/oscarotero/psr7-middlewares) - Inspiring collection of handy middlewares. +* [Relay](https://github.com/relayphp/Relay.Relay) - A PHP 5.5 PSR-7 middleware dispatcher. +* [Stack](https://github.com/stackphp) - A library of stackable middleware for Silex/Symfony. +* [zend-stratigility](https://github.com/zendframework/zend-stratigility) - Middleware for PHP built on top of PSR-7. + +### URL *Libraries for parsing URLs.* -* [Purl](https://github.com/jwage/purl) - A URL manipulation library. * [PHP Domain Parser](https://github.com/jeremykendall/php-domain-parser) - A domain suffix parser library. +* [Purl](https://github.com/jwage/purl) - A URL manipulation library. +* [sabre/uri](https://github.com/sabre-io/uri) - A functional URI manipulation library. +* [Uri](https://github.com/thephpleague/uri) - Another URL manipulation library. -## Email +### Email *Libraries for sending and parsing email.* -* [SwiftMailer](http://swiftmailer.org/) - A mailer solution. -* [PHPMailer](https://github.com/PHPMailer/PHPMailer) - Another mailer solution. -* [Fetch](https://github.com/tedivm/Fetch) - An IMAP library. +* [CssToInlineStyles](https://github.com/tijsverkoyen/CssToInlineStyles) - A library to inline CSS in email templates. * [Email Reply Parser](https://github.com/willdurand/EmailReplyParser) - An email reply parser library. -* [Stampie](https://github.com/henrikbjorn/Stampie) - A library for email services such as [SendGrid](http://sendgrid.com), [PostMark](http://postmarkapp.com), [MailGun](http://www.mailgun.com) and [Mandrill](http://www.mandrill.com). +* [Email Validator](https://github.com/nojacko/email-validator) - A small email address validation library. +* [Fetch](https://github.com/tedious/Fetch) - An IMAP library. +* [Mautic](https://github.com/mautic/mautic) - Email marketing automation +* [PHPMailer](https://github.com/PHPMailer/PHPMailer) - Another mailer solution. +* [Stampie](https://github.com/Stampie/Stampie) - A library for email services such as [SendGrid](https://sendgrid.com/), [PostMark](https://postmarkapp.com), [MailGun](https://www.mailgun.com/) and [Mandrill](http://www.mandrill.com). +* [SwiftMailer](https://swiftmailer.symfony.com) - A mailer solution. -## Files +### Files *Libraries for file manipulation and MIME type detection.* +* [CSV](https://github.com/thephpleague/csv) - A CSV data manipulation library. +* [Flysystem](https://github.com/thephpleague/Flysystem) - Another filesystem abstraction layer. * [Gaufrette](https://github.com/KnpLabs/Gaufrette) - A filesystem abstraction layer. -* [Flysystem](https://github.com/FrenkyNet/Flysystem) - Another filesystem abstraction layer. -* [Canal](https://github.com/dflydev/dflydev-canal) - A library to determine internet media types. -* [Apache MIME Types](https://github.com/dflydev/dflydev-apache-mime-types) - A library that parses Apache MIME types. -* [Ferret](https://github.com/versionable/Ferret) - A MIME detection library. * [Hoa Mime](https://github.com/hoaproject/Mime) - Another MIME detection library. -* [Lurker](https://github.com/henrikbjorn/Lurker) - A resource tracking library. -* [PHP File Locator](https://github.com/herrera-io/php-file-locator) - A library for locating files in large projects. -* [PHP FFmpeg](https://github.com/alchemy-fr/PHP-FFmpeg/) - A wrapper for the [FFmpeg](http://www.ffmpeg.org/) video library. -* [CSV](https://github.com/nyamsprod/Bakame.csv) - A CSV data manipulation library. +* [PHP FFmpeg](https://github.com/PHP-FFmpeg/PHP-FFmpeg/) - A wrapper for the [FFmpeg](http://www.ffmpeg.org/) video library. +* [UnifiedArchive](https://github.com/wapmorgan/UnifiedArchive) - A unified reader and writer of compressed archives. -## Streams +### Streams *Libraries for working with streams.* * [Streamer](https://github.com/fzaninotto/Streamer) - A simple object-orientated stream wrapper library. -## Dependency Injection +### Dependency Injection *Libraries that implement the dependency injection design pattern.* -* [Pimple](http://pimple.sensiolabs.org/) - A tiny dependency injection container. -* [Auryn](https://github.com/rdlowrey/Auryn) - Another dependency injection container. -* [Orno Di](https://github.com/orno/di) - Another flexible dependency injection container. -* [PHP DI](http://mnapoli.github.com/PHP-DI/) - A dependency injection implementation using annotations. -* [Acclimate](https://github.com/jeremeamia/acclimate) - A common interface to dependency injection containers and service locators. +* [Aura.Di](https://github.com/auraphp/Aura.Di) - A serializable dependency injection container with constructor and setter injection, interface and trait awareness, configuration inheritance, and much more. +* [Acclimate](https://github.com/AcclimateContainer/acclimate-container) - A common interface to dependency injection containers and service locators. +* [Auryn](https://github.com/rdlowrey/Auryn) - A recursive dependency injector. +* [Container](https://github.com/thephpleague/container) - Another flexible dependency injection container. +* [Disco](https://github.com/bitExpert/disco) - A PSR-11 compatible, annotation-based dependency injection container. +* [PHP-DI](http://php-di.org/) - A dependency injection container that supports autowiring. +* [Pimple](https://pimple.symfony.com/) - A tiny dependency injection container. +* [Symfony DI](https://github.com/symfony/dependency-injection) - A dependency injection container component (SF). -## Imagery +### Imagery *Libraries for manipulating images.* -* [Imagine](http://imagine.readthedocs.org/en/latest/index.html) - An image manipulation library. -* [PHP Image Workshop](https://github.com/Sybio/ImageWorkshop) - Another image manipulation library. +* [Color Extractor](https://github.com/thephpleague/color-extractor) - A library for extracting colours from images. +* [Glide](https://github.com/thephpleague/glide) - An on-demand image manipulation library. +* [Image Hash](https://github.com/jenssegers/imagehash) - A library for generating perceptual image hashes. +* [Image Optimizer](https://github.com/psliwa/image-optimizer) - A library for optimizing images. +* [Imagine](http://imagine.readthedocs.io/en/latest/index.html) - An image manipulation library. * [Intervention Image](https://github.com/Intervention/image) - Another image manipulation library. -* [GIF Frame Extractor](https://github.com/Sybio/GifFrameExtractor) - A library to extract GIF animation frame information. -* [GIF Creator](https://github.com/Sybio/GifCreator) - A library to create GIF animations from multiple images. -* [Image With Text](https://github.com/nmcteam/image-with-text) - A library for embedding text into images. -* [Color Extractor](https://github.com/php-loep/color-extractor) - A library for extracting colours from images. +* [PHP Image Workshop](https://github.com/Sybio/ImageWorkshop) - Another image manipulation library. -## Testing +### Testing *Libraries for testing codebases and generating test data.* -* [PHPUnit](https://github.com/sebastianbergmann/phpunit) - A unit testing framework. -* [DBUnit](https://github.com/sebastianbergmann/dbunit) - A database testing library for PHPUnit. -* [ParaTest](https://github.com/brianium/paratest) - A parallel testing library for PHPUnit. -* [PHPSpec](https://github.com/phpspec/phpspec) - A design by specification unit testing library. -* [Codeception](https://github.com/Codeception/Codeception) - A full stack testing framework. -* [Atoum](https://github.com/atoum/atoum) - A simple testing library. -* [Mockery](https://github.com/padraic/mockery) - A mock object library for testing. -* [Phake](https://github.com/mlively/Phake) - Another mock object library for testing. -* [Parody](https://github.com/dotink/Parody) - Yet another mock object library for testing. -* [Faker](https://github.com/fzaninotto/Faker) - A fake data generator library. -* [Samsui](https://github.com/mauris/samsui) - Another fake data generator library. * [Alice](https://github.com/nelmio/alice) - An expressive fixture generation library. -* [Behat](http://behat.org/) - A behaviour driven development (BDD) testing framework. -* [Pho](https://github.com/danielstjules/pho) - Another behaviour driven development testing framework. -* [Mink](http://mink.behat.org/) - Web acceptance testing. +* [AspectMock](https://github.com/Codeception/AspectMock) - A mocking framework for PHPUnit/Codeception. +* [Atoum](https://github.com/atoum/atoum) - A simple testing library. +* [Behat](http://docs.behat.org/en/v2.5/) - A behaviour driven development (BDD) testing framework. +* [Codeception](https://github.com/Codeception/Codeception) - A full stack testing framework. +* [DBUnit](https://github.com/sebastianbergmann/dbunit) - A database testing library for PHPUnit. +* [Faker](https://github.com/fzaninotto/Faker) - A fake data generator library. * [HTTP Mock](https://github.com/InterNations/http-mock) - A library for mocking HTTP requests in unit tests. +* [Kahlan](https://github.com/kahlan/kahlan) - Full stack Unit/BDD testing framework with built-in stub, mock and code-coverage support. +* [Mink](http://mink.behat.org/en/latest/) - Web acceptance testing. +* [Mockery](https://github.com/mockery/mockery) - A mock object library for testing. +* [ParaTest](https://github.com/paratestphp/paratest) - A parallel testing library for PHPUnit. +* [Peridot](https://github.com/peridot-php/peridot) - An event driven test framework. +* [Phake](https://github.com/mlively/Phake) - Another mock object library for testing. +* [Pho](https://github.com/danielstjules/pho) - Another behaviour driven development testing framework. +* [PHP-Mock](https://github.com/php-mock/php-mock) - A mock library for built-in PHP functions (e.g. time()). +* [PHPSpec](https://github.com/phpspec/phpspec) - A design by specification unit testing library. +* [PHPT](https://qa.php.net/write-test.php) - A test tool used by PHP itself. +* [PHPUnit](https://github.com/sebastianbergmann/phpunit) - A unit testing framework. +* [Prophecy](https://github.com/phpspec/prophecy) - A highly opinionated mocking framework. * [VFS Stream](https://github.com/mikey179/vfsStream) - A virtual filesystem stream wrapper for testing. -* [VFS](https://github.com/adlawson/vfs.php) - Another virtual filesystem for testing. -* [Locust](http://locust.io/) - A modern load test library written in Python. -## Continuous Integration +### Continuous Integration *Libraries and applications for continuous integration.* +* [CircleCI](https://circleci.com) - A continuous integration platform. +* [GitlabCi](https://about.gitlab.com/gitlab-ci/) - Let GitLab CI test, build, deploy your code. TravisCi like. +* [Jenkins](https://jenkins.io/index.html) - A continous integration platform with [PHP support](http://jenkins-php.org/index.html). +* [JoliCi](https://github.com/jolicode/JoliCi) - A continuous integration client written in PHP and powered by Docker. +* [PHPCI](https://www.phptesting.org/) - An open source continuous integration platform for PHP. +* [SemaphoreCI](https://semaphoreci.com/) - A continuous integration platform for open source and private projects. +* [Shippable](https://www.shippable.com/) - A Docker based continious integration platform for open source and private projects. * [Travis CI](https://travis-ci.org/) - A continuous integration platform. -* [PHPCI](http://www.phptesting.org/) - An open source continuous integration platform for PHP. -* [Sismo](http://sismo.sensiolabs.org/) - A continuous testing server library. +* [Wercker](http://www.wercker.com/) - A continuous integration platform. -## Documentation +### Documentation *Libraries for generating project documentation.* -* [Sami](https://github.com/fabpot/Sami) - An API documentation generator. * [APIGen](https://github.com/apigen/apigen) - Another API documentation generator. +* [daux.io](https://github.com/justinwalsh/daux.io) - A documentation generator which uses Markdown files. * [PHP Documentor 2](https://github.com/phpDocumentor/phpDocumentor2) - A documentation generator. * [phpDox](http://phpdox.de/) - A documentation generator for PHP projects (that is not limited to API documentation). +* [Sami](https://github.com/FriendsOfPHP/Sami) - An API documentation generator. -## Security +### Security *Libraries for generating secure random numbers, encrypting data and scanning for vulnerabilities.* +* [Halite](https://paragonie.com/project/halite) - A simple library for encryption using [libsodium](https://github.com/jedisct1/libsodium). * [HTML Purifier](https://github.com/ezyang/htmlpurifier) - A standards compliant HTML filter. -* [RandomLib](https://github.com/ircmaxell/RandomLib) - A library for generating random numbers and strings. -* [True Random](https://github.com/pixeloution/true-random) - A library that generates random numbers using [www.random.org](http://www.random.org/). -* [SecurityMultiTool](https://github.com/padraic/SecurityMultiTool) - A PHP security library. -* [Password Compat](https://github.com/ircmaxell/password_compat) - A compatibility library for the new PHP 5.5 password functions. -* [PHPAss](http://www.openwall.com/phpass/) - A portable password hashing framework. -* [PHP Password Lib](https://github.com/ircmaxell/PHP-PasswordLib) - A library for generating and validating passwords. -* [Password Policy](https://github.com/ircmaxell/password-policy) - A password policy library for PHP and JavaScript. -* [Password Validator](https://github.com/jeremykendall/password-validator) - A library for validating and upgrading password hashes. -* [PHPSecLib](http://phpseclib.sourceforge.net/) - A pure PHP secure communications library. -* [TCrypto](https://github.com/timoh6/TCrypto) - A simple encrypted key-value storage library. -* [PHP IDS](https://github.com/PHPIDS/PHPIDS) - A structured PHP security layer. -* [PHP SSH](https://github.com/Herzult/php-ssh) - An experimental object orientated SSH wrapper library. * [IniScan](https://github.com/psecio/iniscan) - A tool that scans PHP INI files for security. +* [Optimus](https://github.com/jenssegers/optimus) - Id obfuscation based on Knuth's multiplicative hashing method. +* [PHP Encryption](https://github.com/defuse/php-encryption) - Secure PHP Encryption Library. +* [PHP SSH](https://github.com/Herzult/php-ssh) - An experimental object orientated SSH wrapper library. +* [PHPSecLib](http://phpseclib.sourceforge.net/) - A pure PHP secure communications library. +* [random_compat](https://github.com/paragonie/random_compat) - PHP 5.x support for `random_bytes()` and `random_int()` +* [RandomLib](https://github.com/ircmaxell/RandomLib) - A library for generating random numbers and strings. * [SensioLabs Security Check](https://security.sensiolabs.org/) - A web tool to check your Composer dependencies for security advisories. +* [TCrypto](https://github.com/timoh6/TCrypto) - A simple encrypted key-value storage library. +* [VAddy](https://vaddy.net/) - A continuous security testing platform for web applications. * [Zed](https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project) - An integrated penetration testing tool for web applications. -## Code Analysis -*Libraries and tools for analysing, parsing and manipulation codebases.* +### Passwords +*Libraries and tools for working with and storing passwords.* +* [GenPhrase](https://github.com/timoh6/GenPhrase) - A library for generating secure random passphrases. +* [Password Compat](https://github.com/ircmaxell/password_compat) - A compatibility library for the new PHP 5.5 password functions. +* [Password Policy](https://github.com/ircmaxell/password-policy) - A password policy library for PHP and JavaScript. +* [Password Validator](https://github.com/jeremykendall/password-validator) - A library for validating and upgrading password hashes. +* [Password-Generator](https://github.com/hackzilla/password-generator) - PHP library to generate random passwords. +* [PHP Password Lib](https://github.com/ircmaxell/PHP-PasswordLib) - A library for generating and validating passwords. +* [phpass](http://www.openwall.com/phpass/) - A portable password hashing framework. +* [Zxcvbn PHP](https://github.com/bjeavons/zxcvbn-php) - A realistic PHP password strength estimate library based on Zxcvbn JS. + +### Code Analysis +*Libraries and tools for analysing, parsing and manipulating codebases.* + +* [Better Reflection](https://github.com/Roave/BetterReflection) - AST-based reflection library that allows analysis and manipulation of code +* [Code Climate](https://codeclimate.com) - An automated code review. * [PHP Parser](https://github.com/nikic/PHP-Parser) - A PHP parser written in PHP. -* [PHPPHP](https://github.com/ircmaxell/PHPPHP) - A PHP VM implementation in PHP. -* [PHPSandbox](https://github.com/fieryprophet/php-sandbox) - A PHP sandbox environment. -* [Dissect](https://github.com/jakubledl/dissect) - A set of tools for lexical and syntactical analysis. -* [PHP Mess Detector](http://phpmd.org/) - A library that scans code for bugs, sub-optimal code, unused parameters and more. -* [PHP Code Sniffer](https://github.com/squizlabs/PHP_CodeSniffer) - A library that detects PHP, CSS and JS coding standard violations. -* [PHPCPD](https://github.com/sebastianbergmann/phpcpd) - A library that detects copied and pasted code. -* [PHP Analyser](https://github.com/scrutinizer-ci/php-analyzer) - A library for analysing PHP code to find bugs and errors. -* [PHP CS Fixer](https://github.com/fabpot/PHP-CS-Fixer) - A coding standard fixer library. -* [PHP Manipulator](https://github.com/schmittjoh/php-manipulator) - A library for analysing and modifying PHP Source Code. -* [PHP Metrics](https://github.com/Halleck45/PhpMetrics) - A static metric library. -* [PHP Refactoring Browser](https://github.com/QafooLabs/php-refactoring-browser) - A command line utility for refactoring PHP code. -* [UBench](https://github.com/devster/ubench) - A simple micro benchmark library. -* [Athletic](https://github.com/polyfractal/athletic) - An annotation based benchmark framework. -* [Mondrian](https://github.com/Trismegiste/Mondrian) - A code analysis tool using Graph Theory. -* [PHP Debug Bar](http://phpdebugbar.com/) - A debugging toolbar. -* [PHP Console](https://github.com/Seldaek/php-console) - A web debugging console. -* [Barbushin PHP Console](https://github.com/barbushin/php-console) - Another web debugging console using Google Chrome. -* [PHPDBG](http://phpdbg.com/) - An interactive PHP debugger. -* [Scrutinizer](https://scrutinizer-ci.com/) - A web tool to scrutinise PHP code. +* [PHP Semantic Versioning Checker](https://github.com/tomzx/php-semver-checker) - A command line utility that compares two source sets and determines the appropriate semantic versioning to apply. * [PHPLOC](https://github.com/sebastianbergmann/phploc) - A tool for quickly measuring the size of a PHP project. -* [xDebug](https://github.com/xdebug/xdebug) - A debug and profile tool for PHP. -* [xHprof](https://github.com/phacility/xhprof) - Another profiling tool for PHP. +* [PHPQA](https://github.com/EdgedesignCZ/phpqa) - A tool for running QA tools (phploc, phpcpd, phpcs, pdepend, phpmd, phpmetrics). +* [Qafoo Quality Analyzer](https://github.com/Qafoo/QualityAnalyzer) - A tool to visualize metrics and source code. +* [Scrutinizer](https://scrutinizer-ci.com/) - A web tool to [scrutinise PHP code](https://github.com/scrutinizer-ci/php-analyzer). +* [UBench](https://github.com/devster/ubench) - A simple micro benchmark library. -## Build Tools +### Code Quality +*Libraries for managing code quality, formatting and linting.* + +* [PHP CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) - A library that detects PHP, CSS and JS coding standard violations. +* [PHP CS Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer) - A coding standards fixer library. +* [PHP Mess Detector](https://phpmd.org/) - A library that scans code for bugs, sub-optimal code, unused parameters and more. +* [PHPCheckstyle](https://github.com/PHPCheckstyle/phpcheckstyle) - A tool to help adhere to certain coding conventions. +* [PHPCPD](https://github.com/sebastianbergmann/phpcpd) - A library that detects copied and pasted code. + +### Static Analysis +*Libraries for performing static analysis of PHP code.* + +* [Exakat](https://github.com/exakat/exakat) - A static analysis engine for PHP. +* [Mondrian](https://github.com/Trismegiste/Mondrian) - A code analysis tool using Graph Theory. +* [phan](https://github.com/phan/phan) - A static analyzer based on PHP 7+ and the php-ast extension. +* [PHPCompatibility](https://github.com/wimg/PHPCompatibility) - A PHP compatibility checker for PHP CodeSniffer. +* [PhpDependencyAnalysis](https://github.com/mamuz/PhpDependencyAnalysis) - A tool to create customisable dependency graphs. +* [PHP Metrics](https://github.com/phpmetrics/PhpMetrics) - A static metric library. +* [PHP Migration](https://github.com/monque/PHP-Migration) - A static analyzer for PHP version migration. +* [PHPStan](https://github.com/phpstan/phpstan) - A PHP Static Analysis Tool. +* [Pslam](https://github.com/vimeo/psalm) - A static analysis tool for finding errors in PHP applications. + +### Architectural +*Libraries related to design patterns, programming approaches and ways to organize code.* + +* [Design Patterns PHP](https://github.com/domnikl/DesignPatternsPHP) - A repository of software patterns implemented in PHP. +* [Finite](http://yohan.giarel.li/Finite/) - A simple PHP finite state machine. +* [Functional PHP](https://github.com/lstrojny/functional-php) - A functional programming library. +* [Iter](https://github.com/nikic/iter) - A library that provides iteration primitives using generators. +* [Patchwork](http://patchwork2.org/) - A library for redefining userland functions. +* [Pipeline](https://github.com/thephpleague/pipeline) - A pipeline pattern implementation. +* [RulerZ](https://github.com/K-Phoen/rulerz) - A powerful rule engine and implementation of the Specification pattern. + +### Debugging and Profiling +*Libraries and tools for debugging and profiling code.* + +* [APM](http://pecl.php.net/package/APM) - Monitoring extension collecting errors and statistics into SQLite/MySQL/StatsD. +* [Barbushin PHP Console](https://github.com/barbushin/php-console) - Another web debugging console using Google Chrome. +* [Blackfire.io](https://blackfire.io) - A low-overhead code profiler. +* [Kint](https://github.com/kint-php/kint) - A debugging and profiling tool. +* [PHP Console](https://github.com/Seldaek/php-console) - A web debugging console. +* [PHP Debug Bar](http://phpdebugbar.com/) - A debugging toolbar. +* [PHPBench](https://github.com/phpbench/phpbench) - A benchmarking Framework. +* [Tideways.io](https://tideways.io/) - Monitoring and profiling tool +* [Tracy](https://github.com/nette/tracy) - A simple error detection, logging and time measuring library. +* [xDebug](https://github.com/xdebug/xdebug) - A debug and profile tool for PHP. +* [XHProf](https://github.com/phacility/xhprof) - A profiling tool originally developed by Facebook. +* [Z-Ray](http://www.zend.com/en/products/server/z-ray) - A debug and profile tool for Zend Server. + +### Build Tools *Project build and automation tools.* -* [Go](https://github.com/herrera-io/php-go) - A simple PHP build tool. -* [Bob](https://github.com/CHH/bob) - A simple project automation tool. -* [Phake](https://github.com/jaz303/phake) - A rake PHP clone library. -* [Box](https://github.com/kherge/Box) - A utility to build PHAR files. -* [Phing](http://www.phing.info/) - A PHP project build system inspired by Apache Ant. +* [Box](https://github.com/box-project/box2) - A utility to build PHAR files. +* [Construct](https://github.com/jonathantorres/construct) - A PHP project/micro-package generator. +* [Phing](https://www.phing.info/) - A PHP project build system inspired by Apache Ant. -## Task Runners +### Task Runners *Libraries for automating and running tasks.* -* [Task](http://taskphp.github.io/) - A pure PHP task runner inspired by Grunt and Gulp. -* [Robo](https://github.com/Codegyre/Robo) - A PHP Task runner with object-orientated configurations. -* [Bldr](http://bldr.io/) - A PHP Task runner built on Symfony components. -## Navigation +* [Bldr](http://bldr.io/) - A PHP Task runner built on Symfony components. +* [Jobby](https://github.com/jobbyphp/jobby) - A PHP cron job manager without modifying crontab. +* [Robo](https://github.com/consolidation/Robo) - A PHP Task runner with object-orientated configurations. +* [Task](http://taskphp.github.io/) - A pure PHP task runner inspired by Grunt and Gulp. + +### Navigation *Tools for building navigation structures.* * [KnpMenu](https://github.com/KnpLabs/KnpMenu) - A menu library. -* [Cartographer](https://github.com/tackk/cartographer) - A sitemap generation library. -## Asset Management +### Asset Management *Tools for managing, compressing and minifying website assets.* -* [Assetic](https://github.com/kriswallsmith/assetic) - An asset manager pipeline library. -* [Pipe](https://github.com/CHH/pipe) - Another asset manager pipeline library. +* [JShrink](https://github.com/tedious/JShrink) - A JavaScript minifier library. * [Munee](https://github.com/meenie/munee) - An asset optimiser library. -* [JShrink](https://github.com/tedivm/JShrink) - A JavaScript minifier library. -* [Puli](https://github.com/webmozart/puli) - A library for determining assets absolute paths. +* [Puli](https://github.com/puli/repository) - A library for determining assets absolute paths. +* [BowerPHP](https://github.com/Bee-Lab/bowerphp) - A PHP implementation of Bower. A package manager for the web -## Geolocation +### Geolocation *Libraries for geocoding addresses and working with latitudes and longitudes.* * [GeoCoder](http://geocoder-php.org/) - A geocoding library. -* [GeoTools](https://github.com/php-loep/Geotools) - A library of geo-related tools. -* [PHPGeo](https://github.com/mjaschen/phpgeo) - A simple geo library. * [GeoJSON](https://github.com/jmikola/geojson) - A GeoJSON implementation. +* [GeoTools](https://github.com/thephpleague/geotools) - A library of geo-related tools. +* [PHPGeo](https://github.com/mjaschen/phpgeo) - A simple geo library. -## Date and Time +### Date and Time *Libraries for working with dates and times.* +* [CalendR](http://yohan.giarel.li/CalendR/) - A calendar management library. * [Carbon](https://github.com/briannesbitt/Carbon) - A simple DateTime API extension. -* [ExpressiveDate](https://github.com/jasonlewis/expressive-date) - Another DateTime API extension. -* [CalendR](http://yohan.giarel.li/CalendR) - A calendar management library. +* [Chronos](https://github.com/cakephp/chronos) - A DateTime API extension supporting both mutable and immutable date/time. +* [Moment.php](https://github.com/fightbulc/moment.php) - Moment.js inspired PHP DateTime handler with i18n support. +* [Yasumi](https://github.com/azuyalabs/yasumi) - An library to help you calculate the dates and names of holidays. -## Event +### Event *Libraries that are event-driven or implement non-blocking event loops.* -* [React](https://github.com/reactphp/react) - An event driven non-blocking I/O library. -* [Rx.PHP](https://github.com/asm89/Rx.PHP) - A reactive extension library. -* [Ratchet](https://github.com/cboden/Ratchet) - A web socket library. -* [Hoa WebSocket](https://github.com/hoaproject/Websocket) - Another web socket library. -* [Hoa EventSource](https://github.com/hoaproject/Eventsource) - An event source library. +* [Amp](https://github.com/amphp/amp) - An event driven non-blocking I/O library. +* [Broadway](https://github.com/broadway/broadway) - An event source and CQRS library. +* [Cake Event](https://github.com/cakephp/event) - An event dispatcher library (CP). +* [Elephant.io](https://github.com/Wisembly/Elephant.io) - Yet another web socket library. * [Evenement](https://github.com/igorw/evenement) - An event dispatcher library. -* [FuelPHP Event](https://github.com/fuelphp/event) - Another event dispatcher library. +* [Event](https://github.com/thephpleague/event) - An event library with a focus on domain events. +* [Hoa EventSource](https://github.com/hoaproject/Eventsource) - An event source library. +* [Hoa WebSocket](https://github.com/hoaproject/Websocket) - Another web socket library. +* [Prooph Event Store](https://github.com/prooph/event-store) - An event source component to persist event messages +* [Ratchet](https://github.com/ratchetphp/Ratchet) - A web socket library. +* [React](https://github.com/reactphp/react) - An event driven non-blocking I/O library. +* [RxPHP](https://github.com/ReactiveX/RxPHP) - A reactive extension library. +* [Workerman](https://github.com/walkor/Workerman) - An event driven non-blocking I/O library. -## Logging +### Logging *Libraries for generating and working with log files.* * [Monolog](https://github.com/Seldaek/monolog) - A comprehensive logger. -* [KLogger](https://github.com/katzgrau/KLogger) - An easy-to-use PSR-3 compliant logging class. -## E-commerce +### E-commerce *Libraries and applications for taking payments and building online e-commerce stores.* -* [OmniPay](https://github.com/adrianmacneil/omnipay) - A framework agnostic multi-gateway payment processing library. +* [Money](https://github.com/moneyphp/money) - A PHP implementation of Fowler's money pattern. +* [OmniPay](https://github.com/thephpleague/omnipay) - A framework agnostic multi-gateway payment processing library. * [Payum](https://github.com/payum/payum) - A payment abstraction library. -* [Sylius](http://www.sylius.org/) - An open source e-commerce solution. -* [Thelia](http://thelia.net/v2/) - Another open source e-commerce solution. -* [Money](https://github.com/mathiasverraes/money) - A PHP implementation of Fowler's money pattern. -* [Sebastian Money](https://github.com/sebastianbergmann/money) - Another library for working with monetary values. +* [Shopware](https://github.com/shopware/shopware) - Highly customizable e-commerce software * [Swap](https://github.com/florianv/swap) - An exchange rates library. +* [Sylius](https://sylius.com/) - An open source e-commerce solution. -## PDF +### PDF *Libraries and software for working with PDF files.* +* [Dompdf](https://github.com/dompdf/dompdf) - A HTML to PDF converter. +* [PHPPdf](https://github.com/psliwa/PHPPdf) - A library for generating PDFs and images from XML. * [Snappy](https://github.com/KnpLabs/snappy) - A PDF and image generation library. -* [WKHTMLToPDF](https://github.com/antialize/wkhtmltopdf) - A tool to convert HTML to PDF. +* [WKHTMLToPDF](https://github.com/wkhtmltopdf/wkhtmltopdf) - A tool to convert HTML to PDF. -## ORM and Datamapping -*Libraries that implement object-relational mapping or datamapping techniques.* +### Office +*Libraries for working with office suite documents.* -* [Doctrine](http://www.doctrine-project.org/) - A comprehensive DBAL and ORM. -* [Doctrine Migrations](http://docs.doctrine-project.org/projects/doctrine-migrations/en/latest/toc.html) - A migration library for Doctrine. -* [Doctrine Extensions](https://github.com/l3pp4rd/DoctrineExtensions) - A collection of Doctrine behavioural extensions. -* [Propel](http://www.propelorm.org/) - A fast ORM. -* [Eloquent](https://github.com/illuminate/database) - The Laravel 4 ORM. +* [PHPPowerPoint](https://github.com/PHPOffice/PHPPresentation) - A library for working with Microsoft PowerPoint Presentations. +* [PHPWord](https://github.com/PHPOffice/PHPWord) - A library for working with Microsoft Word documents. +* [PHPSpreadsheet](https://github.com/PHPOffice/PhpSpreadsheet) - A pure PHP library for reading and writing spreadsheet files (successor of PHPExcel) + +### Database +*Libraries for interacting with databases using object-relational mapping (ORM) or datamapping techniques.* + +* [Atlas.Orm](https://github.com/atlasphp/Atlas.Orm) - A data mapper implementation for your persistence model in PHP. +* [Aura.Sql](https://github.com/auraphp/Aura.Sql) - Provides an extension to the native PDO along with a profiler and connection locator. +* [Aura.SqlQuery](https://github.com/auraphp/Aura.SqlQuery) - Independent query builders for MySQL, PostgreSQL, SQLite, and Microsoft SQL Server. * [Baum](https://github.com/etrepat/baum) - A nested set implementation for Eloquent. -* [Spot](https://github.com/vlucas/Spot) - A MySQL datamapper ORM. -* [RedBean](http://redbeanphp.com/) - A lightweight, configuration-less ORM. -* [PHP ActiveRecord](https://github.com/kla/php-activerecord) - A PHP Active Record implementation. -* [Paris and Idiorm](http://j4mie.github.io/idiormandparis/) - A minimalist database library. +* [Cake ORM](https://github.com/cakephp/orm) - Object-Relational Mapper, implemented using the DataMapper pattern (CP). +* [Doctrine Extensions](https://github.com/Atlantic18/DoctrineExtensions) - A collection of Doctrine behavioural extensions. +* [Doctrine](http://www.doctrine-project.org/) - A comprehensive DBAL and ORM. +* [Eloquent](https://github.com/illuminate/database) - A simple ORM (L5). +* [LazyRecord](https://github.com/corneltek/LazyRecord) - A fast ORM designed for simplicity, extendability and performance. * [Pomm](https://github.com/chanmix51/Pomm) - An Object Model Manager for PostgreSQL. -* [Migrations](https://github.com/icomefromthenet/Migrations) - A migration management library. -* [PHPMig](https://github.com/davedevelopment/phpmig) - Another migration management library. -* [Phinx](https://github.com/robmorgan/phinx) - Another database migration library. +* [Propel](http://propelorm.org/) - A fast ORM, migration library and query builder. * [ProxyManager](https://github.com/Ocramius/ProxyManager) - A set of utilities to generate proxy objects for data mappers. +* [RedBean](https://redbeanphp.com/index.php) - A lightweight, configuration-less ORM. +* [Spot2](https://github.com/spotorm/spot2) - A MySQL datamapper ORM. -## NoSQL +### Migrations +Libraries to help manage database schemas and migrations. + +* [Doctrine Migrations](http://docs.doctrine-project.org/projects/doctrine-migrations/en/latest/toc.html) - A migration library for Doctrine. +* [Migrations](https://github.com/icomefromthenet/Migrations) - A migration management library. +* [Phinx](https://github.com/cakephp/phinx) - Another database migration library. +* [PHPMig](https://github.com/davedevelopment/phpmig) - Another migration management library. +* [Ruckusing](https://github.com/ruckus/ruckusing-migrations) - Database migrations for PHP ala ActiveRecord Migrations with support for MySQL, Postgres, SQLite. + +### NoSQL *Libraries for working with "NoSQL" backends.* -* [MongoQB](https://github.com/alexbilbie/MongoQB) - A MongoDB query builder library. -* [Monga](https://github.com/thephpleague/monga) - A MongoDB abstraction library. +* [PHPMongo](https://github.com/sokil/php-mongo) - A MongoDB ORM. * [Predis](https://github.com/nrk/predis) - A feature complete Redis library. -## Queue +### Queue *Libraries for working with event and task queues.* -* [Pheanstalk](https://github.com/pda/pheanstalk) - A Beanstalkd client library. -* [PHP AMQP](https://github.com/videlalvaro/php-amqplib) - A pure PHP AMQP library. -* [Thumper](https://github.com/videlalvaro/Thumper) - A RabbitMQ pattern library. * [Bernard](https://github.com/bernardphp/bernard) - A multibackend abstraction library. +* [BunnyPHP](https://github.com/jakubkulhan/bunny) - A performant pure-PHP AMQP (RabbitMQ) sync and also async (ReactPHP) library. +* [Pheanstalk](https://github.com/pda/pheanstalk) - A Beanstalkd client library. +* [PHP AMQP](https://github.com/php-amqplib/php-amqplib) - A pure PHP AMQP library. +* [Tarantool Queue](https://github.com/tarantool-php/queue) - PHP bindings for Tarantool Queue. +* [Thumper](https://github.com/php-amqplib/Thumper) - A RabbitMQ pattern library. -## Search +### Search *Libraries and software for indexing and performing search queries on data.* -* [ElasticSearch PHP](https://github.com/elasticsearch/elasticsearch-php) - The official client library for [ElasticSearch](http://www.elasticsearch.org/). * [Elastica](https://github.com/ruflin/Elastica) - A client library for ElasticSearch. +* [ElasticSearch PHP](https://github.com/elastic/elasticsearch-php) - The official client library for [ElasticSearch](https://www.elastic.co/). * [Solarium](http://www.solarium-project.org/) - A client library for [Solr](http://lucene.apache.org/solr/). +* [Sphinx Search](https://github.com/ripaclub/sphinxsearch) - Sphinx Search library provides SphinxQL indexing and searching features +* [SphinxQL query builder](http://foolcode.github.io/SphinxQL-Query-Builder/) - A query library for the [Sphinx](http://sphinxsearch.com/) search engine. -## Command Line -*Libraries for building command line utilities.* +### Command Line +*Libraries related to the command line.* -* [Boris](https://github.com/d11wtq/boris) - A tiny PHP REPL. -* [PsySH](https://github.com/bobthecow/psysh) - Another PHP REPL. -* [Pecan](https://github.com/mcrumm/pecan) - An event-driven, non-blocking shell. -* [GetOpt](https://github.com/ulrichsg/getopt-php) - A command line opt parser. -* [OptParse](https://github.com/CHH/optparse) - Another command line opt parser. +* [Aura.Cli](https://github.com/auraphp/Aura.Cli) - Provides the equivalent of request ( Context ) and response ( Stdio ) objects for the command line interface, including Getopt support, and an independent Help object for describing commands. +* [Boris](https://github.com/borisrepl/boris) - A tiny PHP REPL. +* [Cilex](https://github.com/Cilex/Cilex) - A micro framework for building command line tools. +* [CLI Menu](https://github.com/php-school/cli-menu) - A library for building CLI menus. +* [CLIFramework](https://github.com/c9s/CLIFramework) - A command-line framework supports zsh/bash completion generation, subcommands and option constraints. It also powers phpbrew. +* [CLImate](https://github.com/thephpleague/climate) - A library for outputting colours and special formatting. * [Commando](https://github.com/nategood/commando) - Another simple command line opt parser. -* [GetOptionKit](https://github.com/c9s/php-GetOptionKit) - Another command line opt parser. * [Cron Expression](https://github.com/mtdowling/cron-expression) - A library to calculate cron run dates. -* [ShellWrap](https://github.com/MrRio/shellwrap) - A simple command line wrapper library. +* [GetOpt](https://github.com/getopt-php/getopt-php) - A command line opt parser. +* [GetOptionKit](https://github.com/c9s/GetOptionKit) - Another command line opt parser. * [Hoa Console](https://github.com/hoaproject/Console) - Another command line library. -* [Shunt](https://github.com/php-loep/shunt) - A library for running commands in parallel on multiple remote machines. +* [PsySH](https://github.com/bobthecow/psysh) - Another PHP REPL. +* [ShellWrap](https://github.com/MrRio/shellwrap) - A simple command line wrapper library. -## Authentication -*Libraries for implementing authentications schemes.* +### Authentication and Authorization +*Libraries for implementing user authentication and authorization.* -* [Sentry](https://github.com/cartalyst/sentry) - A framework agnostic authentication & authorisation library. -* [Sentry Social](http://docs.cartalyst.com/sentry-social-2/introduction) - A library for social network authentication. -* [OPAuth](https://github.com/opauth/opauth) - A multi-provider authentication framework. -* [OAuth2](https://github.com/php-loep/oauth2-server) - An OAuth2 authentication server, resource server and client library. +* [Aura.Auth](https://github.com/auraphp/Aura.Auth) - Provides authentication functionality and session tracking using various adapters. +* [SocialConnect Auth](https://github.com/socialConnect/auth) - An open source social sign (OAuth1\OAuth2\OpenID\OpenIDConnect). +* [Json Web Token](https://github.com/lcobucci/jwt) - Json Tokens to authenticate and transmit information. +* [OAuth 1.0 Client](https://github.com/thephpleague/oauth1-client) - An OAuth 1.0 client library. +* [OAuth 2.0 Client](https://github.com/thephpleague/oauth2-client) - An OAuth 2.0 client library. * [OAuth2 Server](http://bshaffer.github.io/oauth2-server-php-docs/) - Another OAuth2 server implementation. +* [OAuth2 Server](http://oauth2.thephpleague.com/) - An OAuth2 authentication server, resource server and client library. +* [Opauth](https://github.com/opauth/opauth) - A multi-provider authentication framework. * [PHP oAuthLib](https://github.com/Lusitanian/PHPoAuthLib) - Another OAuth library. -* [TwitterOAuth](https://github.com/ruudk/twitteroauth) - A Twitter OAuth library. -* [TwitterSDK](https://github.com/lyrixx/twitter-sdk) - A fully tested Twitter SDK. -* [Hawk](https://github.com/dflydev/dflydev-hawk) - A Hawk HTTP authentication library. -* [HybridAuth](https://github.com/hybridauth/hybridauth) - An open source social sign on library. +* [Sentinel Social](https://cartalyst.com/manual/sentinel-social/2.0) - A library for social network authentication. +* [Sentinel](https://cartalyst.com/manual/sentinel/2.0) - A framework agnostic authentication & authorisation library. +* [TwitterOAuth](https://github.com/abraham/twitteroauth) - A Twitter OAuth library. -## Markup +### Markup *Libraries for working with markup.* -* [Decoda](http://milesj.me/code/php/decoda) - A lightweight markup parser library. -* [PHP Markdown](https://github.com/michelf/php-markdown) - A Markdown parser. -* [Dflydev Markdown](https://github.com/dflydev/dflydev-markdown) - Another Markdown parser. -* [Parsedown](https://github.com/erusev/parsedown) - Another Markdown parser. -* [Ciconia](https://github.com/kzykhys/Ciconia) - Another Markdown parser that supports Github flavoured Markdown. * [Cebe Markdown](https://github.com/cebe/markdown) - An fast and extensible Markdown parser. +* [CommonMark PHP](https://github.com/thephpleague/commonmark) - A Markdown parser which supports the full [CommonMark spec](http://spec.commonmark.org/). +* [Decoda](https://github.com/milesj/decoda) - A lightweight markup parser library. +* [Emoji](https://github.com/heyupdate/Emoji) - A library that converts unicode characters and names into emoji images. +* [HTML to Markdown](https://github.com/thephpleague/html-to-markdown) - Converts HTML into Markdown. * [HTML5 PHP](https://github.com/Masterminds/html5-php) - An HTML5 parser and serializer library. +* [Parsedown](https://github.com/erusev/parsedown) - Another Markdown parser. +* [PHP Markdown](https://github.com/michelf/php-markdown) - A Markdown parser. -## Text and Numbers -*Libraries for parsing and manipulating text and numbers.* +### Strings +*Libraries for parsing and manipulating strings.* +* [Agent](https://github.com/jenssegers/agent) - A PHP desktop/mobile user agent parser, based on Mobiledetect. * [ANSI to HTML5](https://github.com/sensiolabs/ansi-to-html) - An ANSI to HTML5 converter library. -* [Patchwork UTF-8](https://github.com/nicolas-grekas/Patchwork-UTF8) - A portable library for working with UTF-8 strings. -* [Hoa String](https://github.com/hoaproject/String) - Another UTF-8 string library. -* [Stringy](https://github.com/danielstjules/Stringy) - A string manipulation library with multibyte support. -* [Numbers PHP](https://github.com/powder96/numbers.php) - A library for working with numbers. -* [Math](https://github.com/moontoast/math) - A library for working with large numbers. * [Color Jizz](https://github.com/mikeemoo/ColorJizz-PHP) - A library for manipulating and converting colours. -* [UUID](https://github.com/ramsey/uuid) - A library for generating UUIDs. +* [Device Detector](https://github.com/matomo-org/device-detector) - Another library for parsing user agent strings. +* [Hoa String](https://github.com/hoaproject/Ustring) - Another UTF-8 string library. +* [Jieba-PHP](https://github.com/fukuball/jieba-php) - A PHP port of Python's jieba. Chinese text segmentation for natural language processing. +* [Mobile-Detect](https://github.com/serbanghita/Mobile-Detect) - A lightweight PHP class for detecting mobile devices (including tablets). +* [Patchwork UTF-8](https://github.com/nicolas-grekas/Patchwork-UTF8) - A portable library for working with UTF-8 strings. * [Slugify](https://github.com/cocur/slugify) - A library to convert strings to slugs. -* [Urlify](https://github.com/jbroadway/urlify) - A PHP port of Django's URLify.js. -* [Text](https://github.com/kzykhys/Text) - A text manipulation library. -* [PHP Units of Measure](https://github.com/triplepoint/php-units-of-measure) - A library for converting between units of measure. -* [PHP Conversion](https://github.com/Crisu83/php-conversion) - Another library for converting between units of measure. * [SQL Formatter](https://github.com/jdorn/sql-formatter/) - A library for formatting SQL statements. -* [ByteUnits](https://github.com/gabrielelana/byte-units) - A library to parse, format and convert byte units in binary and metric systems. +* [Stringy](https://github.com/danielstjules/Stringy) - A string manipulation library with multibyte support. * [UA Parser](https://github.com/tobie/ua-parser/tree/master/php) - A library for parsing user agent strings. -* [LibPhoneNumber for PHP](https://github.com/giggsey/libphonenumber-for-php) - A PHP implementation of Google's phone number handling library. +* [URLify](https://github.com/jbroadway/urlify) - A PHP port of Django's URLify.js. +* [UUID](https://github.com/ramsey/uuid) - A library for generating UUIDs. -## Filtering and Validation +### Numbers +*Libraries for working with numbers.* + +* [ByteUnits](https://github.com/gabrielelana/byte-units) - A library to parse, format and convert byte units in binary and metric systems. +* [LibPhoneNumber for PHP](https://github.com/giggsey/libphonenumber-for-php) - A PHP implementation of Google's phone number handling library. +* [PHP Conversion](https://github.com/Crisu83/php-conversion) - Another library for converting between units of measure. +* [PHP Units of Measure](https://github.com/triplepoint/php-units-of-measure) - A library for converting between units of measure. + +### Filtering and Validation *Libraries for filtering and validating data.* +* [Aura.Filter](https://github.com/auraphp/Aura.Filter) - Provides tools to validate and sanitize objects and arrays. +* [Cake Validation](https://github.com/cakephp/validation) - Another validation library (CP). * [Filterus](https://github.com/ircmaxell/filterus) - A simple PHP filtering library. -* [Respect Validate](https://github.com/Respect/Validation) - A simple validation library. -* [Valitron](https://github.com/vlucas/valitron) - Another validation library. -* [Upload](https://github.com/codeguy/Upload) - A library for handling file uploads and validation. -* [DMS Filter](https://github.com/rdohms/DMS-Filter) - An annotation filtering library. +* [ISO-codes](https://github.com/ronanguilloux/IsoCodes) - A library for validating inputs according standards from ISO, International Finance, Public Administrations, GS1, Book Industry, Phone numbers & Zipcodes for many countries * [MetaYaml](https://github.com/romaricdrigon/MetaYaml) - A schema validation library that supports YAML, JSON and XML. -* [ISO-codes](https://github.com/ronanguilloux/IsoCodes) - A library for validating various ISO and ZIP codes (IBAN, SWIFT/BIC, BBAN, VAT, SSN, UKNIN). +* [Respect Validation](https://github.com/Respect/Validation) - A simple validation library. +* [Upload](https://github.com/brandonsavage/Upload) - A library for handling file uploads and validation. +* [Valitron](https://github.com/vlucas/valitron) - Another validation library. +* [Volan](https://github.com/serkin/Volan) - Another simplified validation library. -## REST and API -*Libraries and web tools for developing REST-ful APIs.* +### API +*Libraries and web tools for developing APIs.* +* [API Platform](https://api-platform.com ) - Expose in minutes an hypermedia REST API that embraces JSON-LD, Hydra format. * [Apigility](https://github.com/zfcampus/zf-apigility-skeleton) - An API builder built with Zend Framework 2. -* [Hateoas](https://github.com/willdurand/Hateoas) - A HATEOAS REST web service library. +* [Drest](https://github.com/leedavis81/drest) - A library for exposing Doctrine entities as REST resource endpoints. * [HAL](https://github.com/blongden/hal) - A Hypertext Application Language (HAL) builder library. +* [Hateoas](https://github.com/willdurand/Hateoas) - A HATEOAS REST web service library. * [Negotiation](https://github.com/willdurand/Negotiation) - A content negotiation library. +* [Restler](https://github.com/Luracast/Restler) - A lightweight framework to expose PHP methods as RESTful web API. +* [wsdl2phpgenerator](https://github.com/wsdl2phpgenerator/wsdl2phpgenerator) - A tool to generate PHP classes from SOAP WSDL files. -## Caching +### Caching *Libraries for caching data.* -* [Alternative PHP Cache (APC)](http://www.php.net/manual/en/book.apc.php) - Open opcode cache for PHP. -* [Cache](https://github.com/doctrine/cache) - A caching library (part of Doctrine). -* [Stash](https://github.com/tedivm/Stash) - Another library for caching. +* [Alternative PHP Cache (APC)](http://php.net/manual/en/book.apc.php) - Open opcode cache for PHP. +* [APIx Cache](https://github.com/apix/cache) - A thin PSR-6 cache wrapper to various caching backends emphasising cache tagging and indexing. +* [CacheTool](https://github.com/gordalina/cachetool) - A tool to clear APC/opcode caches from the command line. +* [Cake Cache](https://github.com/cakephp/cache) - A caching library (CP). +* [Doctrine Cache](https://github.com/doctrine/cache) - A caching library. +* [Metaphore](https://github.com/sobstel/metaphore) - Cache slam defense using a semaphore to prevent dogpile effect. +* [Stash](https://github.com/tedious/Stash) - Another library for caching. +* [Zend Cache](https://github.com/zendframework/zend-cache) - Another caching library (ZF2). -## Data Structure and Storage +### Data Structure and Storage *Libraries that implement data structure or storage techniques.* -* [Ardent](https://github.com/morrisonlevi/Ardent) - A library of data structures. -* [PHP Collections](https://github.com/schmittjoh/php-collection) - A simple collections library. +* [Cake Collection](https://github.com/cakephp/collection) - A simple collections library (CP). +* [Collections](https://github.com/italolelis/collections) - Collections Abstraction library for PHP. +* [Fractal](https://github.com/thephpleague/fractal) - A library for converting complex data structures to JSON output. +* [Ginq](https://github.com/akanehara/ginq) - Another PHP library based on .NET's LINQ. +* [JsonMapper](https://github.com/cweiske/jsonmapper) - A library that maps nested JSON structures onto PHP classes. +* [Knapsack](https://github.com/DusanKasan/Knapsack) - Collection library inspired by Clojure's sequences. +* [PINQ](https://github.com/TimeToogo/Pinq) - A PHP library based on .NET's LINQ (Language Integrated Query). +* [Porter](https://github.com/ScriptFUSION/Porter) - Data import abstraction framework. * [Serializer](https://github.com/schmittjoh/serializer) - A library for serialising and de-serialising data. -* [PHP Object Storage](https://github.com/herrera-io/php-object-storage) - A library for object storage. -* [Fractal](https://github.com/php-loep/fractal) - A library for converting complex data structures to JSON output. +* [YaLinqo](https://github.com/Athari/YaLinqo) - Yet Another LINQ to Objects for PHP. +* [Zend Serializer](https://github.com/zendframework/zend-serializer) - Another library for serialising and de-serialising data (ZF2). -## Notifications +### Notifications *Libraries for working with notification software.* -* [Nod](https://github.com/filp/nod) - A notification library (e.g., Growl). -* [Notificato](https://github.com/wrep/notificato) - A library for handling push notifications. +* [JoliNotif](https://github.com/jolicode/JoliNotif) - A cross-platform library for desktop notification (support for Growl, notify-send, toaster, etc) * [Notification Pusher](https://github.com/Ph3nol/NotificationPusher) - A standalone library for device push notifications. +* [Notificato](https://github.com/mac-cain13/notificato) - A library for handling push notifications. * [Notificator](https://github.com/namshi/notificator) - A lightweight notification library. +* [Php-pushwoosh](https://github.com/gomoob/php-pushwoosh) - A PHP Library to easily send push notifications with the Pushwoosh REST Web Services. -## Deployment +### Deployment +*Libraries for project deployment.* -* [Pomander](https://github.com/tamagokun/pomander) - A deployment tool for PHP applications. -* [Rocketeer](https://github.com/Anahkiasen/rocketeer) - A fast and easy deployer for the PHP world. +* [Deployer](https://github.com/deployphp/deployer) - A deployment tool. * [Envoy](https://github.com/laravel/envoy) - A tool to run SSH tasks with PHP. +* [Rocketeer](https://github.com/rocketeers/rocketeer) - A fast and easy deployer for the PHP world. -## Third Party APIs +### Internationalisation and Localisation +*Libraries for Internationalization (I18n) and Localization (L10n).* + +* [Aura.Intl](https://github.com/auraphp/Aura.Intl) - Provides internationalization (I18N) tools, specifically package-oriented per-locale message translation. +* [Cake I18n](https://github.com/cakephp/i18n) - Message translation and localization for dates and numbers (CP) + +### Third Party APIs *Libraries for accessing third party APIs.* * [Amazon Web Service SDK](https://github.com/aws/aws-sdk-php) - The official PHP AWS SDK library. -* [S3 Stream Wrapper](https://github.com/gwkunze/S3StreamWrapper) - A stream wrapper library for Amazon S3. -* [Stripe](https://github.com/stripe/stripe-php) - The official Stripe PHP library. -* [Campaign Monitor](http://campaignmonitor.github.com/createsend-php/) - The official Campaign Monitor PHP library. -* [Digital Ocean](https://github.com/toin0u/DigitalOcean) - A library to interface with the Digital Ocean API. -* [Github](https://github.com/dsyph3r/github-api3-php) - A library to interface with the Github API. -* [PHP Github API](https://github.com/KnpLabs/php-github-api) - Another library to interface with the Github API. -* [Twitter OAuth](https://github.com/widop/twitter-oauth) - A library to interface with Twitter's OAuth workflow. -* [Twitter REST](https://github.com/widop/twitter-rest) - A library to interact with Twitter's REST API. +* [Campaign Monitor](http://campaignmonitor.github.io/createsend-php/) - The official Campaign Monitor PHP library. * [Dropbox SDK](https://github.com/dropbox/dropbox-sdk-php) - The official PHP Dropbox SDK library. -* [Twilio](https://github.com/twilio/twilio-php) - The official Twilio PHP REST API. +* [Github](https://github.com/KnpLabs/php-github-api) - A library to interface with the Github API. * [Mailgun](https://github.com/mailgun/mailgun-php) The official Mailgun PHP API. +* [Stripe](https://github.com/stripe/stripe-php) - The official Stripe PHP library. +* [Twilio](https://github.com/twilio/twilio-php) - The official Twilio PHP REST API. -## Extensions +### Extensions *Libraries to help build PHP extensions.* * [PHP CPP](http://www.php-cpp.com/) - A C++ library for developing PHP extensions. +* [Zephir](https://github.com/phalcon/zephir) - A compiled language between PHP and C++ for developing PHP extensions. -## Miscellaneous +### Miscellaneous *Useful libraries or tools that don't fit in the categories above.* -* [Spork](https://github.com/kriswallsmith/spork) - A process forking library. +* [Annotations](https://github.com/doctrine/annotations) - An annotations library (part of Doctrine). +* [BotMan](https://github.com/botman/botman) - A framework agnostic PHP library to build cross-platform chat bots. +* [Cake Utility](https://github.com/cakephp/utility) - Utility classes such as Inflector, String, Hash, Security and Xml (CP). +* [Chief](https://github.com/adamnicholson/Chief) - A command bus library. +* [ClassPreloader](https://github.com/ClassPreloader/ClassPreloader) - A library for optimising autoloading. +* [Country List](https://github.com/umpirsky/country-list) - A list of all countries with names and ISO 3166-1 codes. +* [Embera](https://github.com/mpratt/Embera) - An Oembed consumer library. +* [Essence](https://github.com/essence/essence) - A library for extracting web media. +* [Graphviz](https://github.com/alexandresalome/graphviz) - A Graphviz library. +* [Hprose-PHP](https://github.com/hprose/hprose-php) - A very newbility RPC Library, support 25+ languages now. * [JSON Lint](https://github.com/Seldaek/jsonlint) - A JSON lint utility. * [JSONPCallbackValidator](https://github.com/willdurand/JsonpCallbackValidator) - A library for validating JSONP callbacks. -* [Pagerfanta](https://github.com/whiteoctober/Pagerfanta) - A pagination library. -* [Ruler](https://github.com/bobthecow/Ruler) - A simple stateless production rules engine. -* [LiteCQRS](https://github.com/beberlei/litecqrs-php) - A CQRS (Command Query Responsibility Separation) library. -* [Sslurp](https://github.com/EvanDotPro/Sslurp) - A library that makes dealing with SSL suck less. -* [PHP Option](https://github.com/schmittjoh/php-option) An option type library. * [Metrics](https://github.com/beberlei/metrics) - A simple metrics API library. -* [Sabre VObject](https://github.com/evert/sabre-vobject) - A library for parsing VCard and iCalendar objects. -* [Annotations](https://github.com/doctrine/annotations) - An annotations library (part of Doctrine). -* [Whoops](https://github.com/filp/whoops) - A pretty error handling library. -* [Finite](http://yohan.giarel.li/Finite) - A simple PHP finite state machine. -* [LadyBug](https://github.com/raulfraile/Ladybug) - A dumper library. -* [Plum](https://github.com/aerialls/Plum) - A deployer library. -* [Procrastinator](https://github.com/lstrojny/Procrastinator) - A library for running time consuming tasks. -* [Compose](https://github.com/igorw/compose) - A function composition library. -* [SuperClosure](https://github.com/jeremeamia/super_closure) - A library that allows Closures to be serialized. -* [Jumper](https://github.com/kakawait/Jumper) - A remote service executor library. -* [Underscore](http://anahkiasen.github.io/underscore-php/) - A PHP port of the Underscore JS library. +* [noCAPTCHA](https://github.com/ARCANEDEV/noCAPTCHA) - Helper for Google's noCAPTCHA (reCAPTCHA). +* [Nmap](https://github.com/willdurand/nmap) - A PHP wrapper around [Nmap](https://nmap.org/). +* [Pagerfanta](https://github.com/whiteoctober/Pagerfanta) - A pagination library. * [PHP PassBook](https://github.com/eymengunay/php-passbook) - A PHP library for iOS PassBook. -* [PHP Expression](https://github.com/Kitano/php-expression) - A PHP expression language. -* [RMT](https://github.com/liip/RMT) - A library for versioning and releasing software. -* [Wise](https://github.com/herrera-io/php-wise) - A configuration manager. -* [Opengraph](https://github.com/euskadi31/Opengraph) - An opengraph library. -* [Essence](https://github.com/felixgirault/essence) - A library for extracting web media. -* [Embera](https://github.com/mpratt/Embera) - An Oembed consumer library. -* [Graphviz](https://github.com/alexandresalome/graphviz) - A Graphviz library. -* [Monad PHP](https://github.com/ircmaxell/monad-php) - A simple Monad library. -* [Flux](https://github.com/selvinortiz/flux) - A regular expression building library. -* [Patchwork](http://antecedent.github.io/patchwork/) - A library for redefining userland functions. -* [Galapagos](https://github.com/igorw/galapagos) - Evolutionary language transformation. -* [Design Patterns PHP](https://github.com/domnikl/DesignPatternsPHP) - A repository of software patterns implemented in PHP. +* [PHP-ML](https://github.com/php-ai/php-ml) - A library for Machine Learning in PHP. * [PHPCR](https://github.com/phpcr/phpcr) - A PHP port of the Java Content Repository (JCR). -* [Functional PHP](https://github.com/lstrojny/functional-php) - A functional programming library. -* [ClassPreloader](https://github.com/mtdowling/ClassPreloader) - A library for optimising autoloading. -* [Lib Country](https://github.com/phine/lib-country) - A library for country and subdivision data. -* [Lib Accessor](https://github.com/phine/lib-accessor) - A library for simplifying accessors. * [PHPStack](http://dunkels.com/adam/phpstack/) - A TCP/IP stack proof of concept written in PHP. -* [Nmap](https://github.com/willdurand/nmap) - A PHP wrapper around [Nmap](http://nmap.org/). -* [Code Mover](https://github.com/dantleech/code-mover) - A library for moving code. -* [Iter](https://github.com/nikic/iter) - A library that provides iteration primitives using generators. -* [Lambda PHP](https://github.com/igorw/lambda-php) - A Lambda calculus interpreter in PHP. -* [Country List](https://github.com/umpirsky/country-list) - A list of all countries with names and ISO 3166-1 codes. -* [PHP-GPIO](https://github.com/ronanguilloux/php-gpio) - A library for playing with the Raspberry PI's GPIO pins. +* [print_o](https://github.com/koriym/print_o) - An object graph visualizer. +* [Procrastinator](https://github.com/lstrojny/Procrastinator) - A library for running time consuming tasks. +* [Prooph Service Bus](https://github.com/prooph/service-bus) - Lightweight message bus supporting CQRS and Micro Services +* [RMT](https://github.com/liip/RMT) - A library for versioning and releasing software. +* [sabre/vobject](https://github.com/sabre-io/vobject) - A library for parsing VCard and iCalendar objects. +* [Slimdump](https://github.com/webfactory/slimdump) - An easy dumper tool for MySQL. +* [Spork](https://github.com/kriswallsmith/spork) - A process forking library. +* [SuperClosure](https://github.com/jeremeamia/super_closure) - A library that allows Closures to be serialized. +* [Symfony VarDumper](http://symfony.com/doc/current/components/var_dumper.html) - A variable dumper component (SF). +* [Underscore](http://anahkiasen.github.io/underscore-php/) - A PHP port of the Underscore JS library. +* [Whoops](https://github.com/filp/whoops) - A pretty error handling library. # Software *Software for creating a development environment.* -## PHP Installation +### PHP Installation *Tools to help install and manage PHP on your computer.* -* [HomeBrew](http://mxcl.github.com/homebrew/) - A package manager for OSX. -* [HomeBrew PHP](https://github.com/josegonzalez/homebrew-php) - A PHP tap for HomeBrew. -* [PHP OSX](http://php-osx.liip.ch/) - A PHP installer for OSX. -* [PHP Brew](https://github.com/c9s/phpbrew) - A PHP version manager and installer. -* [PHP Env](https://github.com/CHH/phpenv) - Another PHP version manager. -* [PHP Switch](https://github.com/jubianchi/phpswitch) - Another version manager. -* [PHP Build](https://github.com/CHH/php-build) - Another PHP version installer. +* [HomeBrew PHP](https://github.com/Homebrew/homebrew-php) - A PHP tap for HomeBrew. +* [HomeBrew](https://brew.sh/) - A package manager for OSX. +* [PHP Brew](https://github.com/phpbrew/phpbrew) - A PHP version manager and installer. +* [PHP Build](https://github.com/php-build/php-build) - Another PHP version installer. +* [PHP OSX](https://php-osx.liip.ch/) - A PHP installer for OSX. * [VirtPHP](http://virtphp.org/) - A tool for creating and managing isolated PHP environments. -## Development Environment +### Development Environment *Software and tools for creating a sandboxed development environment.* -* [Vagrant](http://www.vagrantup.com/) - A portable development environment utility. -* [Ansible](http://www.ansibleworks.com/) - A radically simple orchestration framework. -* [Puppet](http://puppetlabs.com/) - A server automation framework and application. -* [PuPHPet](https://puphpet.com/) - A web tool for building PHP development virtual machines. -* [Protobox](http://getprotobox.com/) - Another web tool for building PHP development virtual machines. +* [Ansible](https://www.ansible.com/) - A radically simple orchestration framework. * [Phansible](http://phansible.com/) - A web tool for building PHP development virtual machines with Ansible. +* [Protobox](https://www.getprotobox.com/) - Another web tool for building PHP development virtual machines. +* [PuPHPet](https://puphpet.com/) - A web tool for building PHP development virtual machines. +* [Puppet](https://puppet.com/) - A server automation framework and application. +* [Vagrant](https://www.vagrantup.com/) - A portable development environment utility. +* [Docker](https://www.docker.com/) - A containerization platform. -## Virtual Machines +### Virtual Machines *Alternative PHP virtual machines.* -* [HipHop PHP](https://github.com/facebook/hiphop-php) - A Virtual Machine, Runtime and JIT for PHP by Facebook. -* [HippyVM](http://hippyvm.com/) - Another PHP virtual machine. -* [Hack](http://hacklang.org/) - A programming language for [HHVM](https://github.com/facebook/hiphop-php) that interoperates seamlessly with PHP. +* [Hack](http://hacklang.org/) - A programming language for HHVM that interoperates seamlessly with PHP. +* [HHVM](https://github.com/facebook/hhvm) - A Virtual Machine, Runtime and JIT for PHP by Facebook. -## Web Applications +### Text Editors and IDEs +*Text Editors and Integrated Development Environments (IDE) with support for PHP.* + +* [Atom](https://atom.io/) - A hackable text editor. +* [Atom IDE](https://ide.atom.io/) - An IDE extension for Atom. +* [Eclipse for PHP Developers](https://www.eclipse.org/downloads/) - A PHP IDE based on the Eclipse platform. +* [Netbeans](https://netbeans.org) - An IDE with support for PHP and HTML5. +* [PhpStorm](http://www.jetbrains.com/phpstorm/) - A commercial PHP IDE. +* [VS Code](https://code.visualstudio.com/) - An open source code editor. + +### Web Applications *Web-based applications and tools.* -* [3V4L](http://3v4l.org/) - An online PHP shell. -* [DBV](http://dbv.vizuina.com/) - A database version control application. +* [3V4L](https://3v4l.org/) - An online PHP & HHVM shell. +* [DBV](https://dbv.vizuina.com/) - A database version control application. * [PHP Queue](https://github.com/CoderKungfu/php-queue) - An application for managing queueing backends. -* [Composer as a Service](http://composer.borreli.com/) - A tool for downloading Composer packages as a zip file. * [MailCatcher](https://github.com/sj26/mailcatcher) - A web tool for capturing and viewing emails. +* [Cachet](https://github.com/cachethq/cachet) - The open source status page system. +* [phpRedisAdmin](https://github.com/ErikDubbelboer/phpRedisAdmin) - A simple web interface to manage [Redis](https://redis.io/) databases. +* [phpMyAdmin](https://github.com/phpmyadmin/phpmyadmin) - A web interface for MySQL/MariaDB. +* [Adminer](https://www.adminer.org/) - Database management in a single PHP file. +* [Grav](https://github.com/getgrav/grav) - A modern flat-file CMS. +* [Lychee](https://github.com/electerious/Lychee) - An easy to use and great looking photo-management-system. + +### Infrastructure +*Infrastructure for providing PHP applications and services.* + +* [appserver.io](https://appserver.io/) - A multithreaded application server for PHP, written in PHP. +* [php-pm](https://github.com/php-pm/php-pm) - A process manager, supercharger and load balancer for PHP applications. # Resources Various resources, such as books, websites and articles, for improving your PHP development skills and knowledge. -## PHP Websites +### PHP Websites *Useful PHP-related websites.* +* [Nomad PHP](https://nomadphp.com/) - A online PHP learning resource. +* [PHP Best Practices](https://phpbestpractices.org/) - A PHP best practice guide. +* [PHP FIG](https://www.php-fig.org/) - The PHP Framework Interoperability Group. +* [PHP Mentoring](https://php-mentoring.org/) - Peer to peer PHP mentorship organization. +* [PHP Package Development Standards](http://php-pds.com) - Package development standards for PHP. +* [PHP School](https://www.phpschool.io/) - Open Source Learning for PHP. +* [PHP Security](http://phpsecurity.readthedocs.io/en/latest/index.html) - A guide to PHP security. * [PHP The Right Way](http://www.phptherightway.com/) - A PHP best practice quick reference guide. -* [PHP Best Practices](http://phpbestpractices.org/) - A PHP best practice guide. -* [PHP Weekly](http://phpweekly.info/archive/) - A weekly PHP newsletter. -* [PHP Security](http://phpsecurity.readthedocs.org/en/latest/index.html) - A guide to PHP security. -* [PHP FIG](http://www.php-fig.org/) - The PHP Framework Interoperability Group. * [PHP UG](http://php.ug) - A website to help people locate their nearest PHP user group (UG). -* [Seven PHP](http://7php.com/) - A website that interviews members of the PHP community. -* [Nomad PHP](http://nomadphp.com/) - A online PHP learning resource. +* [PHP Versions](http://phpversions.info/) - Lists which versions of PHP are available on several popular web hosts. +* [PHP Weekly](http://www.phpweekly.com/archive.html) - A weekly PHP newsletter. +* [PHPTrends](https://phptrends.com/) - An overview of fastest growing PHP libraries. +* [Securing PHP](http://securingphp.com/) - A newsletter about PHP security and library recommendations. +* [Seven PHP](https://7php.com/) - A website that interviews members of the PHP community. +* [PHP Annotated Monthly](https://blog.jetbrains.com/phpstorm/category/php-annotated-monthly/) - A monthly digest of PHP news. -## Other Websites +### Other Websites *Useful websites related to web development.* -* [The Open Web Application Security Project (OWASP)](https://www.owasp.org/index.php/Main_Page) - An open software security community. -* [WebSec IO](http://websec.io/) - A web security community resource. -* [Web Advent](http://webadvent.org) - An advent calendar for web developers. -* [Semantic Versioning](http://semver.org/) - A website explaining semantic versioning. * [Atlassian Git Tutorials](https://www.atlassian.com/git) - A series of Git tutorials. * [Hg Init](http://hginit.com/) - A series of Mercurial tutorials. -* [Servers for Hackers](http://serversforhackers.com/) - A newsletter about server management. +* [Learning Linux](https://linuxjourney.com/) - A website for learning Linux. +* [Semantic Versioning](https://semver.org/) - A website explaining semantic versioning. +* [Servers for Hackers](https://serversforhackers.com/) - A newsletter about server management. +* [The Open Web Application Security Project (OWASP)](https://www.owasp.org/index.php/Main_Page) - An open software security community. +* [WebSec IO](https://websec.io/) - A web security community resource. -## PHP Books +### PHP Books *Fantastic PHP-related books.* -* [Scaling PHP Applications](http://www.scalingphpbook.com) - An ebook about scaling PHP applications by Steve Corona. -* [The Grumpy Programmer's Guide to Building Testable PHP Applications](https://leanpub.com/grumpy-testing) - A book about building testing PHP applications by Chris Hartjes. +* [Functional Programming in PHP](https://www.functionalphp.com/) - This book will show you how to leverage these new PHP5.3+ features by understanding functional programming principles * [Grumpy PHPUnit](https://leanpub.com/grumpy-phpunit) - A book about unit testing with PHPUnit by Chris Hartjes. -* [Mastering Object-Orientated PHP](http://www.brandonsavage.net) - A book about object-orientated PHP by Brandon Savage. -* [Signaling PHP](https://leanpub.com/signalingphp) - A book about catching PCNTL signals in CLI scripts by Cal Evans. +* [Mastering Object-Orientated PHP](https://www.brandonsavage.net/) - A book about object-orientated PHP by Brandon Savage. +* [Modern PHP New Features and Good Practices](http://shop.oreilly.com/product/0636920033868.do) - A book about new PHP features and best practices by Josh Lockhart. +* [Modernizing Legacy Applications in PHP](https://leanpub.com/mlaphp) - A book about modernizing legacy PHP applications by Paul M. Jones. +* [PHP 7 Upgrade Guide](https://leanpub.com/php7) - An ebook covering all of the features and changes in PHP 7 by Colin O'Dell. +* [PHP Pandas](https://daylerees.com/php-pandas/) - A book about learning to write PHP by Dayle Rees. +* [Scaling PHP Applications](http://www.scalingphpbook.com) - An ebook about scaling PHP applications by Steve Corona. * [Securing PHP: Core Concepts](https://leanpub.com/securingphp-coreconcepts) - A book about common security terms and practices for PHP by Chris Cornutt. -* [Modernising Legacy Applications in PHP](https://leanpub.com/mlaphp) - A book about modernising legacy PHP applications by Paul M. Jones. +* [Signaling PHP](https://leanpub.com/signalingphp) - A book about catching PCNTL signals in CLI scripts by Cal Evans. +* [The Grumpy Programmer's Guide to Building Testable PHP Applications](https://leanpub.com/grumpy-testing) - A book about building testing PHP applications by Chris Hartjes. +* [XML Parsing with PHP](https://www.phparch.com/books/xml-parsing-with-php/) - This book covers parsing and validating XML documents, leveraging XPath expressions, and working with namespaces as well as how to create and modify XML files programmatically. +* [Domain-Driven Design in PHP](https://leanpub.com/ddd-in-php) - Real examples written in PHP showcasing DDD Architectural Styles. -## Other Books +### Other Books *Books related to general computing and web development.* -* [The Linux Command Line](http://linuxcommand.org/tlcl.php) - A book about the Linux command line by William Shotts. -* [Understanding Computation](http://computationbook.com) - A book about computation theory by Tom Stuart. -* [The Tangled Web — Securing Web Applications](http://www.amazon.ca/The-Tangled-Web-Securing-Applications/dp/1593273886) - A book about securing web applications by Michal Zalewski. -* [Elasticsearch: The Definitive Guide](http://www.elasticsearch.org/guide/) - A guide to working with Elasticsearch by Clinton Gormley and Zachary Tong. +* [Elasticsearch: The Definitive Guide](https://www.elastic.co/guide/index.html) - A guide to working with Elasticsearch by Clinton Gormley and Zachary Tong. * [Eloquent JavaScript](http://eloquentjavascript.net/) - A book about JavaScript programming by Marijn Haverbeke. +* [Head First Design Patterns](http://www.headfirstlabs.com/books/hfdp/) - A book that expains software design patterns. +* [Pro Git](https://git-scm.com/book/en/v2) - A book about Git by Scott Chacon and Ben Straub. +* [The Linux Command Line](http://linuxcommand.org/tlcl.php) - A book about the Linux command line by William Shotts. +* [The Tangled Web — Securing Web Applications](https://www.amazon.com/Tangled-Web-Securing-Modern-Applications/dp/1593273886) - A book about securing web applications by Michal Zalewski. +* [Understanding Computation](http://computationbook.com) - A book about computation theory by Tom Stuart. +* [Vagrant Cookbook](https://leanpub.com/vagrantcookbook) - A book about creating Vagrant environments by Erika Heidi. -## PHP Videos +### PHP Videos *Fantastic PHP-related videos.* -* [Taking PHP Seriously](http://www.infoq.com/presentations/php-history) - A talk outlining PHP's strengths by Keith Adams of Facebook. -* [PHP Town Hall](http://phptownhall.com/) - A casual PHP podcast by Ben Edmunds and Phil Sturgeon. -* [Programming with Anthony](http://www.youtube.com/playlist?list=PLM-218uGSX3DQ3KsB5NJnuOqPqc5CW2kW) - A video series by Anthony Ferrara. +* [Nomad PHP Lightning Talks](https://www.youtube.com/c/nomadphp) - 10 to 15 minute Lightning Talks by PHP community members. +* [PHP UK Conference](https://www.youtube.com/user/phpukconference/videos) - A collection of videos from the PHP UK Conference. +* [Programming with Anthony](https://www.youtube.com/playlist?list=PLM-218uGSX3DQ3KsB5NJnuOqPqc5CW2kW) - A video series by Anthony Ferrara. +* [Taking PHP Seriously](https://www.infoq.com/presentations/php-history) - A talk outlining PHP's strengths by Keith Adams of Facebook. -## PHP Reading +### PHP Podcasts +*Podcasts with a focus on PHP topics.* + +* [PHP Town Hall](https://phptownhall.com/) - A casual PHP podcast by Ben Edmunds and Phil Sturgeon. +* [Voices of the ElePHPant](https://voicesoftheelephpant.com/) Interviews with the people that make the PHP community special. +* [PHP Roundtable](https://www.phproundtable.com/) - The PHP Roundtable is a casual gathering of developers discussing topics that PHP nerds care about. + +### PHP Reading *PHP-releated reading materials.* -* [Create Your Own PHP Framework](http://fabien.potencier.org/article/50/create-your-own-framework-on-top-of-the-symfony2-components-part-1) - A series of articles on how to make your own PHP framework by Fabien Potencier. -* [Seven Ways to Screw Up BCrypt](http://blog.ircmaxell.com/2012/12/seven-ways-to-screw-up-bcrypt.html) - An article about correct BCrypt implementation. -* [Preventing CSRF Attacks](http://blog.ircmaxell.com/2013/02/preventing-csrf-attacks.html) - An article on preventing CSRF attacks. -* [Don't Worry About BREACH](http://blog.ircmaxell.com/2013/08/dont-worry-about-breach.html) - An article about the BREACH hack and CSRF tokens. -* [On PHP 5.3, Lamda Functions and Closures](http://fabien.potencier.org/article/17/on-php-5-3-lambda-functions-and-closures) - An article about lambda functions and closures. -* [Use Env](http://seancoates.com/blogs/use-env) - An article about using the unix environment helper. -* [Composer Primer](http://daylerees.com/composer-primer) - A Composer primer. -* [Composer Versioning](https://igor.io/2013/01/07/composer-versioning.html) - An article about Composer versioning. +* [Composer Primer](https://daylerees.com/composer-primer/) - A Composer primer. * [Composer Stability Flags](https://igor.io/2013/02/07/composer-stability-flags.html) - An article about Composer stability flags. -* [Innocent Villagefolk or a Pillagin’ Pirate?](http://blog.astrumfutura.com/2012/04/php-innocent-villagefolk-or-a-pillagin-pirate/) - An article about PHP taking ideas from other language. -* [Predicting Random Numbers in PHP](http://blog.astrumfutura.com/2013/03/predicting-random-numbers-in-php-its-easier-than-you-think/) - An article about generating random numbers. -* [A 20 Point List for Preventing XSS in PHP](http://blog.astrumfutura.com/2013/04/20-point-list-for-preventing-cross-site-scripting-in-php/) - An article about preventing XSS. -* [PHP Sucks! But I Like It!](http://blog.ircmaxell.com/2012/04/php-sucks-but-i-like-it.html) - An article about the pros and cons of PHP. -* [PHP Is Much Better Than You Think](http://fabien.potencier.org/article/64/php-is-much-better-than-you-think) - An article about the PHP language and ecosystem. +* [Composer Versioning](https://igor.io/2013/01/07/composer-versioning.html) - An article about Composer versioning. +* [Create Your Own PHP Framework](http://fabien.potencier.org/create-your-own-framework-on-top-of-the-symfony2-components-part-1.html) - A series of articles on how to make your own PHP framework by Fabien Potencier. +* [Don't Worry About BREACH](https://blog.ircmaxell.com/2013/08/dont-worry-about-breach.html) - An article about the BREACH hack and CSRF tokens. +* [On PHP 5.3, Lambda Functions and Closures](http://fabien.potencier.org/on-php-5-3-lambda-functions-and-closures.html) - An article about lambda functions and closures. +* [PHP Is Much Better Than You Think](http://fabien.potencier.org/php-is-much-better-than-you-think.html) - An article about the PHP language and ecosystem. +* [PHP Package Checklist](http://phppackagechecklist.com/) - A checklist for successful PHP package development. +* [PHP Sucks! But I Like It!](https://blog.ircmaxell.com/2012/04/php-sucks-but-i-like-it.html) - An article about the pros and cons of PHP. +* [Preventing CSRF Attacks](https://blog.ircmaxell.com/2013/02/preventing-csrf-attacks.html) - An article on preventing CSRF attacks. +* [Seven Ways to Screw Up BCrypt](https://blog.ircmaxell.com/2012/12/seven-ways-to-screw-up-bcrypt.html) - An article about correct BCrypt implementation. +* [The 2018 Guide to Building Secure PHP Software](https://paragonie.com/blog/2017/12/2018-guide-building-secure-php-software) - A guide to building secure PHP software. +* [Use Env](https://seancoates.com/blogs/use-env/) - An article about using the unix environment helper. -## PHP Internals Reading +### PHP Internals Reading *Reading materials related to the PHP internals or performance.* -* [PHP RFCs](https://wiki.php.net/rfc) - The home of PHP RFCs (Request for Comments). -* [PHP Internals Book](http://www.phpinternalsbook.com) - An online book about PHP internals, written by three core developers. -* [Print vs Echo, Which One is Faster?](http://fabien.potencier.org/article/8/print-vs-echo-which-one-is-faster) - An article about print and echo performance. -* [The PHP Ternary Operator. Fast or Not?](http://fabien.potencier.org/article/48/the-php-ternary-operator-fast-or-not) - An article ternary performance. -* [Disproving the Single Quotes Myth](http://nikic.github.com/2012/01/09/Disproving-the-Single-Quotes-Performance-Myth.html) - An article about performance of single and double quoted strings. -* [You're Being Lied To](http://blog.golemon.com/2007/01/youre-being-lied-to.html) - An article about internal ZVALs. +* [Disproving the Single Quotes Myth](http://nikic.github.io/2012/01/09/Disproving-the-Single-Quotes-Performance-Myth.html) - An article about performance of single and double quoted strings. +* [How Big Are PHP Arrays (And Values) Really?](http://nikic.github.io/2011/12/12/How-big-are-PHP-arrays-really-Hint-BIG.html) - An article about array internals. +* [How Foreach Works](https://stackoverflow.com/questions/10057671/how-does-php-foreach-actually-work/14854568#14854568) - A detailed StackOverflow answer about foreach. * [How Long is a Piece of String](http://blog.golemon.com/2006/06/how-long-is-piece-of-string.html) - An article about string internals. -* [Understanding OpCodes](http://blog.golemon.com/2008/01/understanding-opcodes.html) - An article about opcodes. -* [How Foreach Works](http://stackoverflow.com/questions/10057671/how-foreach-actually-works/14854568#14854568) - A detailed StackOverflow answer about foreach. -* [When Does Foreach Copy?](http://nikic.github.com/2011/11/11/PHP-Internals-When-does-foreach-copy.html) - An article about the internals of foreach. -* [How Big Are PHP Arrays (And Values) Really?](http://nikic.github.com/2011/12/12/How-big-are-PHP-arrays-really-Hint-BIG.html) - An article about array internals. * [PHP Evaluation Order](https://gist.github.com/nikic/6699370) - An article about evaluation order in PHP. -* PHP Source Code for Developers: [1](http://blog.ircmaxell.com/2012/03/phps-source-code-for-php-developers.html) [2](http://nikic.github.com/2012/03/16/Understanding-PHPs-internal-function-definitions.html) [3](http://blog.ircmaxell.com/2012/03/phps-source-code-for-php-developers_21.html) [4](http://nikic.github.com/2012/03/28/Understanding-PHPs-internal-array-implementation.html) - A series about the PHP source code. -* Collecting Garbage: [1](http://www.php.net/manual/en/features.gc.refcounting-basics.php) [2](http://www.php.net/manual/en/features.gc.collecting-cycles.php) [3](http://www.php.net/manual/en/features.gc.performance-considerations.php) - A series about the PHP garbage collection internals. +* [PHP Internals Book](http://www.phpinternalsbook.com) - An online book about PHP internals, written by three core developers. +* [PHP RFCs](https://wiki.php.net/rfc) - The home of PHP RFCs (Request for Comments). +* [Print vs Echo, Which One is Faster?](http://fabien.potencier.org/print-vs-echo-which-one-is-faster.html) - An article about print and echo performance. +* [The PHP Ternary Operator. Fast or Not?](http://fabien.potencier.org/the-php-ternary-operator-fast-or-not.html) - An article ternary performance. +* [Understanding OpCodes](http://blog.golemon.com/2008/01/understanding-opcodes.html) - An article about opcodes. +* [When Does Foreach Copy?](http://nikic.github.io/2011/11/11/PHP-Internals-When-does-foreach-copy.html) - An article about the internals of foreach. +* [Why Objects (Usually) Use Less Memory Than Arrays](https://gist.github.com/nikic/5015323) - An article about object and array internals. +* [You're Being Lied To](http://blog.golemon.com/2007/01/youre-being-lied-to.html) - An article about internal ZVALs. +* Collecting Garbage: [1](http://php.net/manual/en/features.gc.refcounting-basics.php) [2](http://php.net/manual/en/features.gc.collecting-cycles.php) [3](http://php.net/manual/en/features.gc.performance-considerations.php) - A series about the PHP garbage collection internals. +* PHP Source Code for Developers: [1](https://blog.ircmaxell.com/2012/03/phps-source-code-for-php-developers.html) [2](http://nikic.github.io/2012/03/16/Understanding-PHPs-internal-function-definitions.html) [3](https://blog.ircmaxell.com/2012/03/phps-source-code-for-php-developers_21.html) [4](http://nikic.github.io/2012/03/28/Understanding-PHPs-internal-array-implementation.html) - A series about the PHP source code. -# Contributing -Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONTRIBUTING.md) for details. +### PHP Magazines +*Fantastic PHP-related magazines.* + +* [php[architect]](https://www.phparch.com/magazine/) - A monthly magazine dedicated to PHP.