diff --git a/CODE-OF-CONDUCT.md b/CODE-OF-CONDUCT.md new file mode 100644 index 0000000..fb82d68 --- /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 [INSERT EMAIL ADDRESS]. 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/CONTRIBUTING.md b/CONTRIBUTING.md index de65d60..dc4198e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,14 +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: +a) Be widely recommended regardless of personal opinion +b) Well known or discussed within the PHP community +c) Be unique in its approach or function +d) 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 5.5+, Composer-installable, PSR compliant, united tested and well documented 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. +* Enter a meaningful pull request description. * Please make an individual commit for each suggestion in a pull request. -* Put a link to each library in your pull request ticket, so they're easier to look at. +* 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/README.md b/README.md index 5e8a07f..44bf0c5 100644 --- a/README.md +++ b/README.md @@ -2,79 +2,81 @@ A curated list of amazingly awesome PHP libraries, resources and shiny things. ## Contributing -Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONTRIBUTING.md) for details. +Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONTRIBUTING.md) and [CODE-OF-CONDUCT](https://github.com/ziadoz/awesome-php/blob/master/CODE-OF-CONDUCT.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) - - [Components](#components) - - [Micro Frameworks](#micro-frameworks) - - [Micro Framework Extras](#micro-framework-extras) + - [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) - - [Debugging](#debugging) - - [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) - - [REST and API](#rest-and-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) + - [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) + - [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) - - [Integrated Development Environment](#integrated-development-environment) - - [Web Applications](#web-applications) + - [PHP Installation](#php-installation) + - [Development Environment](#development-environment) + - [Virtual Machines](#virtual-machines) + - [Integrated Development Environment](#integrated-development-environment) + - [Web Applications](#web-applications) + - [Infrastructure](#infrastructure) - [Resources](#resources) - - [PHP Websites](#php-websites) - - [Other Websites](#other-websites) - - [PHP Books](#php-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 Reading](#php-reading) + - [PHP Internals Reading](#php-internals-reading) - [Contributing](#contributing) ## Dependency Management @@ -83,6 +85,7 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [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. * [Pickle](https://github.com/FriendsOfPHP/pickle) - A PHP extension installer. +* [Melody](http://melody.sensiolabs.org/) - A tool to build one file Composer scripts. ## Dependency Management Extras *Extras related to dependency management.* @@ -98,14 +101,14 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT ## 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 5](http://laravel.com/) - Another PHP framework. +* [Symfony 2](http://symfony.com/) - A framework comprised of individual components (SF2). +* [Zend Framework 2](http://framework.zend.com) - Another framework comprised of individual components (ZF2). +* [Laravel 5](http://laravel.com/) - Another PHP framework (L5). * [Aura PHP](http://auraphp.com/) - A framework of independent components. * [Yii2](https://github.com/yiisoft/yii2/) - Another PHP framework. * [Nette](http://nette.org) - Another framework comprised of individual components. * [PPI Framework 2](http://www.ppi.io) - An interoperability framework. -* [CakePHP](http://cakephp.org/) - A rapid application development framework. +* [CakePHP](http://cakephp.org/) - A rapid application development framework (CP). * [Phalcon](http://phalconphp.com/en/) - A framework implemented as a C extension. ## Framework Extras @@ -113,13 +116,15 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [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. +* [CakePHP CRUD](https://github.com/friendsofcake/crud) - A Rapid Application Development (RAD) plugin for CakePHP. ## Components -*Standalone component from web development frameworks and development groups.* +*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. +* [Symfony2 Components](http://symfony.com/doc/master/components/index.html) - The components that make Symfony 2. +* [Zend Framework 2 Components](https://packages.zendframework.com/) - The components that make Zend Framework. * [Aura Components](http://auraphp.github.com/) - A package of PHP 5.4 components. +* [CakePHP Plugins](http://plugins.cakephp.org/) - A directory of CakePHP plugins. * [Hoa Project](http://hoa-project.net/En/) - Another package of PHP components. * [League of Extraordinary Packages](https://thephpleague.com/) - A PHP package development group. @@ -129,6 +134,8 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [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. +* [Lumen](http://lumen.laravel.com) - A micro-framework by Laravel. +* [Proton](https://github.com/alexbilbie/Proton) - A StackPHP compatible micro framework ## Micro Framework Extras *Extras related to micro frameworks and routers.* @@ -184,8 +191,8 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT *Libraries for parsing URLs.* * [Purl](https://github.com/jwage/purl) - A URL manipulation library. +* [Uri](https://github.com/thephpleague/uri) - Another URL manipulation library. * [PHP Domain Parser](https://github.com/jeremykendall/php-domain-parser) - A domain suffix parser library. -* [Url](https://github.com/thephpleague/url) - A simple URL manipulation library. ## Email *Libraries for sending and parsing email.* @@ -196,6 +203,7 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [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). * [CssToInlineStyles](https://github.com/tijsverkoyen/CssToInlineStyles) - A library to inline CSS in email templates. +* [Email Validator](https://github.com/nojacko/email-validator) - A small email address validation library. ## Files *Libraries for file manipulation and MIME type detection.* @@ -222,8 +230,9 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [Pimple](http://pimple.sensiolabs.org/) - A tiny dependency injection container. * [Auryn](https://github.com/rdlowrey/Auryn) - Another dependency injection container. * [Container](https://github.com/thephpleague/container) - Another flexible dependency injection container. -* [PHP DI](http://mnapoli.github.com/PHP-DI/) - A dependency injection implementation using annotations. +* [PHP-DI](http://php-di.org/) - A dependency injection container that supports autowiring. * [Acclimate](https://github.com/jeremeamia/acclimate) - A common interface to dependency injection containers and service locators. +* [Symfony DI](https://github.com/symfony/DependencyInjection) - A dependency injection container component (SF2). ## Imagery *Libraries for manipulating images.* @@ -236,6 +245,7 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [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. * [Glide](https://github.com/thephpleague/glide) - An on-demand image manipulation library. +* [Image Optimizer](https://github.com/psliwa/image-optimizer) - A library for optimizing images. ## Testing *Libraries for testing codebases and generating test data.* @@ -266,9 +276,10 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT *Libraries and applications for continuous integration.* * [Travis CI](https://travis-ci.org/) - A continuous integration platform. +* [SemaphoreCI](https://semaphoreapp.com/) - A continuous integration platform for open source and private projects. * [PHPCI](http://www.phptesting.org/) - An open source continuous integration platform for PHP. * [Sismo](http://sismo.sensiolabs.org/) - A continuous testing server library. -* [Jenkins](http://jenkins-ci.org/) A continous integration platform with [PHP support](http://jenkins-php.org/index.html). +* [Jenkins](http://jenkins-ci.org/) - 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. ## Documentation @@ -303,6 +314,7 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [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. * [Zxcvbn PHP](https://github.com/bjeavons/zxcvbn-php) - A realistic PHP password strength estimate library based on Zxcvbn JS. +* [GenPhrase](https://github.com/timoh6/GenPhrase) - A library for generating secure random passphrases. ## Code Analysis *Libraries and tools for analysing, parsing and manipulating codebases.* @@ -324,11 +336,27 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [Mondrian](https://github.com/Trismegiste/Mondrian) - A code analysis tool using Graph Theory. * [Scrutinizer](https://scrutinizer-ci.com/) - A web tool to scrutinise PHP code. * [PHPLOC](https://github.com/sebastianbergmann/phploc) - A tool for quickly measuring the size of a PHP project. -* [xHprof](https://github.com/phacility/xhprof) - Another profiling tool for PHP. * [PHPCheckstyle](https://github.com/jbrooksuk/phpcheckstyle) - A tool to help adhere to certain coding conventions. +* [PhpDependencyAnalysis](https://github.com/mamuz/PhpDependencyAnalysis) - A tool to create customisable dependency graphs. +* [Code Climate](http://codeclimate.com) - An automated code review. -## Debugging -*Libraries and tools for debugging code.* +## Architectural +*Libraries related to design patterns, programming approaches and ways to organize code.* + +* [PHP Option](https://github.com/schmittjoh/php-option) - An option type library. +* [Ruler](https://github.com/bobthecow/Ruler) - A simple stateless production rules engine. +* [Finite](http://yohan.giarel.li/Finite) - A simple PHP finite state machine. +* [Compose](https://github.com/igorw/compose) - A function composition library. +* [Monad PHP](https://github.com/ircmaxell/monad-php) - A simple Monad library. +* [Patchwork](http://antecedent.github.io/patchwork/) - A library for redefining userland functions. +* [Galapagos](https://github.com/endel/galapagos) - Evolutionary language transformation. +* [Design Patterns PHP](https://github.com/domnikl/DesignPatternsPHP) - A repository of software patterns implemented in PHP. +* [Functional PHP](https://github.com/lstrojny/functional-php) - A functional programming library. +* [Lib Accessor](https://github.com/phine/lib-accessor) - A library for simplifying accessors. +* [Iter](https://github.com/nikic/iter) - A library that provides iteration primitives using generators. + +## Debugging and Profiling +*Libraries and tools for debugging and profiling code.* * [xDebug](https://github.com/xdebug/xdebug) - A debug and profile tool for PHP. * [PHP Debug Bar](http://phpdebugbar.com/) - A debugging toolbar. @@ -337,6 +365,9 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [PHPDBG](http://phpdbg.com/) - An interactive PHP debugger. * [Tracy](https://github.com/nette/tracy) - A simple error detection, logging and time measuring library. * [Z-Ray](http://www.zend.com/en/products/server/z-ray) - A debug and profile tool for Zend Server. +* [XHProf](https://github.com/phacility/xhprof) - A profiling tool originally developed by Facebook. +* [Blackfire.io](http://blackfire.io) - A low-overhead code profiler. +* [Kint](https://github.com/raveren/kint) - A debugging and profiling tool. ## Build Tools *Project build and automation tools.* @@ -390,9 +421,11 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [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. +* [Elephant.io](https://github.com/Wisembly/Elephant.io) - Yet another web socket library. * [Hoa EventSource](https://github.com/hoaproject/Eventsource) - An event source library. * [Evenement](https://github.com/igorw/evenement) - An event dispatcher library. * [Event](https://github.com/thephpleague/event) - An event library with a focus on domain events. +* [Cake Event](https://github.com/cakephp/event) - An event dispatcher library (CP). * [Broadway](https://github.com/qandidate-labs/broadway) - An event source and CQRS library. ## Logging @@ -400,11 +433,12 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [Monolog](https://github.com/Seldaek/monolog) - A comprehensive logger. * [KLogger](https://github.com/katzgrau/KLogger) - An easy-to-use PSR-3 compliant logging class. +* [Analog](https://github.com/jbroadway/analog) - A closure-based micro logging package. ## 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. +* [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. @@ -417,13 +451,14 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [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. +* [PHPPdf](https://github.com/psliwa/PHPPdf) - A library for generating PDFs and images from XML. ## Office *Libraries for working with office suite documents.* * [PHPWord](https://github.com/PHPOffice/PHPWord) - A library for working with Microsoft Word documents. * [PHPExcel](https://github.com/PHPOffice/PHPExcel) - A library for working with Microsoft Excel documents. -* [PHPPowerPoint](https://github.com/PHPOffice/PHPPowerPoint) - A library for working with Microsoft Word documents. +* [PHPPowerPoint](https://github.com/PHPOffice/PHPPowerPoint) - A library for working with Microsoft PowerPoint Presentations. * [ExcelAnt](https://github.com/Wisembly/ExcelAnt) - A library for manipulating Microsoft Excel documents. ## Database @@ -432,12 +467,13 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [Doctrine](http://www.doctrine-project.org/) - A comprehensive DBAL and ORM. * [Doctrine Extensions](https://github.com/l3pp4rd/DoctrineExtensions) - A collection of Doctrine behavioural extensions. * [Propel](http://www.propelorm.org/) - A fast ORM, migration library and query builder. -* [Eloquent](https://github.com/illuminate/database) - The Laravel 4 ORM. +* [Eloquent](https://github.com/illuminate/database) - A simple ORM (L5). * [Baum](https://github.com/etrepat/baum) - A nested set implementation for Eloquent. * [Spot2](https://github.com/vlucas/spot2) - A MySQL datamapper ORM. * [RedBean](http://redbeanphp.com/) - A lightweight, configuration-less ORM. * [Pomm](https://github.com/chanmix51/Pomm) - An Object Model Manager for PostgreSQL. * [ProxyManager](https://github.com/Ocramius/ProxyManager) - A set of utilities to generate proxy objects for data mappers. +* [Cake ORM](https://github.com/cakephp/orm) - Object-Relational Mapper, implemented using the DataMapper pattern (CP). ## Migrations Libraries to help manage database schemas and migrations. @@ -471,7 +507,7 @@ Libraries to help manage database schemas and migrations. * [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.* +*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. @@ -490,8 +526,8 @@ Libraries to help manage database schemas and migrations. ## 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. +* [Sentinel](https://cartalyst.com/manual/sentinel/2.0) - A framework agnostic authentication & authorisation library. +* [Sentinel Social](https://cartalyst.com/manual/sentinel-social/2.0) - A library for social network authentication. * [Opauth](https://github.com/opauth/opauth) - A multi-provider authentication framework. * [OAuth2 Server](http://oauth2.thephpleague.com/) - An OAuth2 authentication server, resource server and client library. * [OAuth2 Server](http://bshaffer.github.io/oauth2-server-php-docs/) - Another OAuth2 server implementation. @@ -509,12 +545,12 @@ Libraries to help manage database schemas and migrations. * [Decoda](http://milesj.me/code/php/decoda) - A lightweight markup parser library. * [PHP Markdown](https://github.com/michelf/php-markdown) - A Markdown parser. -* [CommonMark PHP](https://github.com/thephpleague/commonmark) - A Markdown parser which supports the full [CommonMark spec](https://jgm.github.io/stmd/spec.html). -* [Dflydev Markdown](https://github.com/dflydev/dflydev-markdown) - Another Markdown parser. +* [CommonMark PHP](https://github.com/thephpleague/commonmark) - A Markdown parser which supports the full [CommonMark spec](http://spec.commonmark.org/). * [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. * [HTML5 PHP](https://github.com/Masterminds/html5-php) - An HTML5 parser and serializer library. +* [Emoji](https://github.com/heyupdate/Emoji) - A library that converts unicode characters and names into emoji images. ## Strings *Libraries for parsing and manipulating strings.* @@ -530,6 +566,8 @@ Libraries to help manage database schemas and migrations. * [Text](https://github.com/kzykhys/Text) - A text manipulation library. * [SQL Formatter](https://github.com/jdorn/sql-formatter/) - A library for formatting SQL statements. * [UA Parser](https://github.com/tobie/ua-parser/tree/master/php) - A library for parsing user agent strings. +* [Device Detector](https://github.com/piwik/device-detector) - Another library for parsing user agent strings. +* [Mobile-Detect](https://github.com/serbanghita/Mobile-Detect) - A lightweight PHP class for detecting mobile devices (including tablets). ## Numbers *Libraries for working with numbers.* @@ -545,15 +583,16 @@ Libraries to help manage database schemas and migrations. *Libraries for filtering and validating data.* * [Filterus](https://github.com/ircmaxell/filterus) - A simple PHP filtering library. -* [Respect Validate](https://github.com/Respect/Validation) - A simple validation library. +* [Respect Validation](https://github.com/Respect/Validation) - A simple validation library. * [Valitron](https://github.com/vlucas/valitron) - Another validation library. +* [Cake Validation](https://github.com/cakephp/validation) - Another validation library (CP). * [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. * [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). -## REST and API -*Libraries and web tools for developing REST-ful APIs.* +## API +*Libraries and web tools for developing APIs.* * [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. @@ -561,13 +600,17 @@ Libraries to help manage database schemas and migrations. * [Negotiation](https://github.com/willdurand/Negotiation) - A content negotiation library. * [Drest](https://github.com/leedavis81/drest) - A library for exposing Doctrine entities as REST resource endpoints. * [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 *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). +* [Doctrine Cache](https://github.com/doctrine/cache) - A caching library. +* [Zend Cache](https://github.com/zendframework/zend-cache) - Another caching library (ZF2). +* [Cake Cache](https://github.com/cakephp/cache) - A caching library (CP). * [Stash](https://github.com/tedivm/Stash) - Another library for caching. +* [CacheTool](https://github.com/gordalina/cachetool) - A tool to clear APC/opcode caches from the command line. ## Data Structure and Storage *Libraries that implement data structure or storage techniques.* @@ -575,11 +618,13 @@ Libraries to help manage database schemas and migrations. * [Ardent](https://github.com/morrisonlevi/Ardent) - A library of data structures. * [PHP Collections](https://github.com/schmittjoh/php-collection) - A simple collections library. * [Serializer](https://github.com/schmittjoh/serializer) - A library for serialising and de-serialising data. +* [Zend Serializer](https://github.com/zendframework/zend-serializer) - Another library for serialising and de-serialising data (ZF2). * [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. * [Totem](http://github.com/Wisembly/Totem) - A library to manage and create data changesets. * [PINQ](https://github.com/TimeToogo/Pinq) - A real Linq library for PHP. * [JsonMapper](https://github.com/netresearch/jsonmapper) - A library that maps nested JSON structures onto PHP classes. +* [Cake Collection](https://github.com/cakephp/collection) - A simple collections library (CP). ## Notifications *Libraries for working with notification software.* @@ -602,6 +647,7 @@ Libraries to help manage database schemas and migrations. *Libraries for Internationalization (I18n) and Localization (L10n).* * [Aura Intl](https://github.com/auraphp/Aura.Intl) +* [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.* @@ -632,18 +678,16 @@ Libraries to help manage database schemas and migrations. * [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. +* [Chief](https://github.com/adamnicholson/Chief) - A command bus 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. +* [Symfony VarDumper](http://symfony.com/doc/current/components/var_dumper/introduction.html) - A variable dumper component (SF2). * [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. @@ -655,25 +699,19 @@ Libraries to help manage database schemas and migrations. * [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. * [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. * [Alias](https://github.com/fuelphp/alias) - A class aliasing library. +* [Cake Utility](https://github.com/cakephp/utility) - Utility classes such as Inflector, String, Hash, Security and Xml (CP). # Software *Software for creating a development environment.* @@ -717,11 +755,17 @@ Libraries to help manage database schemas and migrations. ## Web Applications *Web-based applications and tools.* -* [3V4L](http://3v4l.org/) - An online PHP shell. +* [3V4L](http://3v4l.org/) - An online PHP & HHVM shell. * [DBV](http://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. +* [Composer as a Service](https://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. + +## Infrastructure +*Infrastructure for providing PHP applications and services.* + +* [appserver.io](http://appserver.io/) - A multithreaded application server for PHP, written in PHP. # Resources Various resources, such as books, websites and articles, for improving your PHP development skills and knowledge. @@ -771,8 +815,9 @@ Various resources, such as books, websites and articles, for improving your PHP * [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. * [Eloquent JavaScript](http://eloquentjavascript.net/) - A book about JavaScript programming by Marijn Haverbeke. -* [Vagrant Cookbook](https://leanpub.com/vagrantcookbook) A book about creating Vagrant environments by Erika Heidi. +* [Vagrant Cookbook](https://leanpub.com/vagrantcookbook) - A book about creating Vagrant environments by Erika Heidi. * [Pro Git](http://git-scm.com/book/en/v2) - A book about Git by Scott Chacon and Ben Straub. +* [Head First Design Patterns](http://www.headfirstlabs.com/books/hfdp/) - A book that expains software design patterns. ## PHP Videos *Fantastic PHP-related videos.* @@ -780,6 +825,7 @@ Various resources, such as books, websites and articles, for improving your PHP * [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. +* [PHP UK Conference](https://www.youtube.com/user/phpukconference/videos) - A collection of videos from the PHP UK Conference. ## PHP Reading *PHP-releated reading materials.* @@ -817,3 +863,8 @@ Various resources, such as books, websites and articles, for improving your PHP * [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 Magazines +*Fantastic PHP-related magazines.* + +* [php[architect]](http://www.phparch.com/magazine/) - A monthly magazine dedicated to PHP.