diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 232b6f7..1ee2ea0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -3,14 +3,15 @@ Please ensure your pull request adheres to the following guidelines: * 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 pull request for each suggestion. +* 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. * Use the following format for libraries: \[LIBRARY\]\(LINK\) - DESCRIPTION. -* Prefix duplicate library names with their vendor or namespace followed by a space: Orno\DI would be Orno DI. +* 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 always welcome. * Keep descriptions short and simple. * End all descriptions with a full stop/period. * Check your spelling and grammar. -* New categories, or improvements to the existing categorisaton are welcome. +* Make sure your text editor is set to remove trailing whitespace. -I try to open a ticket for suggestions each month, so feel free to add anything interesting to it. - -Thank you for your suggestions! \ No newline at end of file +Thank you for your suggestions! 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 7fc06d2..2aafa77 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,23 @@ # Awesome PHP -A curated list of amazingly awesome PHP libraries, resources and shiny things. +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. + +## Table of Contents - [Awesome PHP](#awesome-php) - - [Package Management](#package-management) - - [Package Management Extras](#package-management-extras) + - [Dependency Management](#dependency-management) + - [Dependency Management Extras](#dependency-management-extras) - [Frameworks](#frameworks) - [Framework Extras](#framework-extras) - - [Framework Components](#framework-components) + - [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) @@ -19,10 +25,16 @@ A curated list of amazingly awesome PHP libraries, resources and shiny things. - [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) @@ -30,56 +42,73 @@ A curated list of amazingly awesome PHP libraries, resources and shiny things. - [Logging](#logging) - [E-commerce](#e-commerce) - [PDF](#pdf) - - [ORM and Datamapping](#orm-and-datamapping) + - [Office](#office) + - [Database](#database) + - [Migrations](#migrations) - [NoSQL](#nosql) - [Queue](#queue) - [Search](#search) - [Command Line](#command-line) - - [Authentication](#authentication) + - [Authentication and Authorization](#authentication-and-authorization) - [Markup](#markup) - - [Text and Numbers](#text-and-numbers) + - [Strings](#strings) + - [Numbers](#numbers) - [Filtering and Validation](#filtering-and-validation) - - [REST and API](#rest-and-api) + - [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) - - [Development Software](#development-software) - - [Web Tools](#web-tools) +- [Software](#software) + - [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) - - [Websites](#websites) - - [Books](#books) - - [Web Reading](#web-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) -## Package Management -*Libraries for package and dependency management.* +## 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. +* [Pickle](https://github.com/FriendsOfPHP/pickle) - A PHP extension installer. +* [Melody](http://melody.sensiolabs.org/) - A tool to build one file Composer scripts. -## Package Management Extras -*Extras related to package management.* +## Dependency Management Extras +*Extras related to dependency management.* * [Satis](https://github.com/composer/satis) - A static Composer repository generator. +* [Toran Proxy](https://toranproxy.com) - A static Composer repository and proxy. * [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. ## 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. -* [Lithium](http://li3.me/) - Another framework of components. +* [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. * [Phalcon](http://phalconphp.com/en/) - A framework implemented as a C extension. ## Framework Extras @@ -88,30 +117,40 @@ A curated list of amazingly awesome PHP libraries, resources and shiny things. * [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 component 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. +* [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. +* [Hoa Project](http://hoa-project.net/En/) - Another package of PHP components. +* [League of Extraordinary Packages](https://thephpleague.com/) - A PHP package development group. ## 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 mico framework for building REST APIs. +* [Bullet PHP](http://bulletphp.com/) - A micro framework for building REST APIs. +* [Lumen](http://lumen.laravel.com) - A micro-framework by Laravel. +* [Fast Route](https://github.com/nikic/FastRoute) - A fast routing library. * [Pux](https://github.com/c9s/Pux) - Another fast routing library. +* [Proton](https://github.com/alexbilbie/Proton) - A StackPHP compatible micro framework ## Micro Framework Extras *Extras related to micro frameworks and routers.* * [Silex Skeleton](https://github.com/fabpot/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. + +## Routers +*Libraries for handling application routing.* +* [Fast Route](https://github.com/nikic/FastRoute) - A fast routing library. +* [Route](https://github.com/thephpleague/route) - A routing library built on top of Fast Route. +* [Pux](https://github.com/c9s/Pux) - Another fast routing library. +* [Klein](https://github.com/chriso/klein.php) - A flexible router. ## Templating *Libraries and tools for templating and lexing.* @@ -121,6 +160,7 @@ A curated list of amazingly awesome PHP libraries, resources and shiny things. * [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. * [MtHaml](https://github.com/arnaud-lb/MtHaml) - A PHP implementation of the HAML template language. +* [PHPTAL](http://phptal.org/) - A PHP implementation of the [TAL](http://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. @@ -133,17 +173,26 @@ A curated list of amazingly awesome PHP libraries, resources and shiny things. ## HTTP *Libraries for working with HTTP and scraping websites.* -* [Guzzle](http://guzzlephp.org/) - A HTTP client. +* [Guzzle]( https://github.com/guzzle/guzzle) - A comprehensive HTTP client. * [Buzz](https://github.com/kriswallsmith/Buzz) - Another HTTP client. * [Requests](https://github.com/rmccue/Requests) - A simple HTTP library. +* [HTTPFul](https://github.com/nategood/httpful) - A chainable HTTP client. * [Goutte](https://github.com/fabpot/Goutte) - A simple web scraper. * [PHP VCR](http://php-vcr.github.io/) - A library for recording and replaying HTTP requests. +## Middlewares +*Libraries for building application using middlewares.* + +* [Stack](https://github.com/stackphp) - A library of stackable middleware for Silex/Symfony. +* [Slim Middleware](https://github.com/codeguy/Slim-Middleware) - A collection of custom middleware for Slim. +* [Conduit](https://github.com/phly/conduit) - A port of [Sencha Connect](https://github.com/senchalabs/connect) to PHP. + ## 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. +* [Url](https://github.com/thephpleague/url) - A simple URL manipulation library. ## Email *Libraries for sending and parsing email.* @@ -152,7 +201,9 @@ A curated list of amazingly awesome PHP libraries, resources and shiny things. * [PHPMailer](https://github.com/PHPMailer/PHPMailer) - Another mailer solution. * [Fetch](https://github.com/tedivm/Fetch) - An IMAP library. * [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) and [MailGun](http://www.mailgun.com). +* [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.* @@ -166,6 +217,7 @@ A curated list of amazingly awesome PHP libraries, resources and shiny things. * [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/thephpleague/csv) - A CSV data manipulation library. ## Streams *Libraries for working with streams.* @@ -177,9 +229,10 @@ A curated list of amazingly awesome PHP libraries, resources and shiny things. * [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. +* [Container](https://github.com/thephpleague/container) - Another flexible dependency injection container. +* [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.* @@ -191,6 +244,8 @@ A curated list of amazingly awesome PHP libraries, resources and shiny things. * [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. +* [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.* @@ -200,11 +255,11 @@ A curated list of amazingly awesome PHP libraries, resources and shiny things. * [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. +* [AspectMock](https://github.com/Codeception/AspectMock) - A mocking framework for PHPUnit/Codeception. * [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. -* [Sismo](http://sismo.sensiolabs.org/) - A continuous testing server library. +* [Prophecy](https://github.com/phpspec/prophecy) - A highly opinionated mocking framework. * [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. @@ -213,9 +268,19 @@ A curated list of amazingly awesome PHP libraries, resources and shiny things. * [Mink](http://mink.behat.org/) - Web acceptance testing. * [HTTP Mock](https://github.com/InterNations/http-mock) - A library for mocking HTTP requests in unit tests. * [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. +* [Peridot](https://github.com/peridot-php/peridot) - An event driven test framework. + +## Continuous Integration +*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). +* [JoliCi](https://github.com/jolicode/JoliCi) - A continuous integration client written in PHP and powered by Docker. ## Documentation *Libraries for generating project documentation.* @@ -223,29 +288,36 @@ A curated list of amazingly awesome PHP libraries, resources and shiny things. * [Sami](https://github.com/fabpot/Sami) - An API documentation generator. * [APIGen](https://github.com/apigen/apigen) - Another API documentation generator. * [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). ## Security *Libraries for generating secure random numbers, encrypting data and scanning for vulnerabilities.* * [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. +* [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. -* [SensioLabs Security Check](https://security.sensiolabs.org/) - A web tool to check your Composer dependecies for security advisories. +* [SensioLabs Security Check](https://security.sensiolabs.org/) - A web tool to check your Composer dependencies for security advisories. * [Zed](https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project) - An integrated penetration testing tool for web applications. +## Passwords +*Libraries and tools for working with and storing passwords.* + +* [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. +* [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 manipulation codebases.* +*Libraries and tools for analysing, parsing and manipulating codebases.* * [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. @@ -255,17 +327,47 @@ A curated list of amazingly awesome PHP libraries, resources and shiny things. * [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 CS Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer) - A coding standards 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. +* [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. +* [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. + +## 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. * [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. +* [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.* @@ -276,6 +378,18 @@ A curated list of amazingly awesome PHP libraries, resources and shiny things. * [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. +## 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 +*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 *Tools for managing, compressing and minifying website assets.* @@ -283,6 +397,7 @@ A curated list of amazingly awesome PHP libraries, resources and shiny things. * [Pipe](https://github.com/CHH/pipe) - Another asset manager pipeline 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. ## Geolocation *Libraries for geocoding addresses and working with latitudes and longitudes.* @@ -306,47 +421,65 @@ A curated list of amazingly awesome PHP libraries, resources and shiny things. * [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. -* [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. +* [Broadway](https://github.com/qandidate-labs/broadway) - An event source and CQRS library. ## 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. +* [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.com/) - An open source e-commerce solution. +* [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. +* [Swap](https://github.com/florianv/swap) - An exchange rates library. ## PDF *Libraries and software for working with PDF files.* * [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. -## ORM and Datamapping -*Libraries that implement object-relational mapping or datamapping techniques.* +## 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. +* [ExcelAnt](https://github.com/Wisembly/ExcelAnt) - A library for manipulating Microsoft Excel documents. + +## Database +*Libraries for interacting with databases using object-relational mapping (ORM) or datamapping techniques.* * [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. +* [Propel](http://www.propelorm.org/) - A fast ORM, migration library and query builder. +* [Eloquent](https://github.com/illuminate/database) - A simple ORM (L5). * [Baum](https://github.com/etrepat/baum) - A nested set implementation for Eloquent. -* [Spot](https://github.com/vlucas/Spot) - A MySQL datamapper ORM. +* [Spot2](https://github.com/vlucas/spot2) - 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. * [Pomm](https://github.com/chanmix51/Pomm) - An Object Model Manager for PostgreSQL. -* [Migrations](https://github.com/icomefromthenet/Migrations) - A migration management library. +* [ProxyManager](https://github.com/Ocramius/ProxyManager) - A set of utilities to generate proxy objects for data mappers. + +## Migrations +Libraries to help manage database schemas and migrations. + * [PHPMig](https://github.com/davedevelopment/phpmig) - Another migration management library. * [Phinx](https://github.com/robmorgan/phinx) - Another database migration library. +* [Migrations](https://github.com/icomefromthenet/Migrations) - A migration management library. +* [Doctrine Migrations](http://docs.doctrine-project.org/projects/doctrine-migrations/en/latest/toc.html) - A migration library for Doctrine. ## NoSQL *Libraries for working with "NoSQL" backends.* @@ -369,12 +502,14 @@ A curated list of amazingly awesome PHP libraries, resources and shiny things. * [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. * [Solarium](http://www.solarium-project.org/) - A client library for [Solr](http://lucene.apache.org/solr/). +* [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. +* [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. * [Commando](https://github.com/nategood/commando) - Another simple command line opt parser. @@ -383,48 +518,63 @@ A curated list of amazingly awesome PHP libraries, resources and shiny things. * [ShellWrap](https://github.com/MrRio/shellwrap) - A simple command line wrapper library. * [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. +* [Cilex](https://github.com/Cilex/Cilex) - A micro framework for building command line tools. +* [CLImate](https://github.com/thephpleague/climate) - A library for outputting colours and special formatting. -## 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. -* [PHP oAuthLib](https://github.com/Lusitanian/PHPoAuthLib) - Another OAuth library. +* [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. +* [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. +* [Lock](https://github.com/BeatSwitch/lock) - A library for implementing Access Control Lists (ACL) systems. +* [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. ## 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. +* [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. -## Text and Numbers -*Libraries for parsing and manipulating text and numbers.* +## Strings +*Libraries for parsing and manipulating strings.* -* [ANSI to HTML5](https://github.com/sensiolabs/ansi-to-html) - An ANSI to HTML5 convertor library. +* [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. * [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. +* [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.* + +* [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. +* [ByteUnits](https://github.com/gabrielelana/byte-units) - A library to parse, format and convert byte units in binary and metric systems. * [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. -* [Byte](https://github.com/jschaedl/Byte) - A simple byte conversion library. -* [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. ## Filtering and Validation @@ -436,20 +586,27 @@ A curated list of amazingly awesome PHP libraries, resources and shiny things. * [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. * [HAL](https://github.com/blongden/hal) - A Hypertext Application Language (HAL) builder library. * [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.* -* [Cache](https://github.com/doctrine/cache) - A caching library (part of Doctrine). +* [Alternative PHP Cache (APC)](http://www.php.net/manual/en/book.apc.php) - Open opcode cache for PHP. +* [Doctrine Cache](https://github.com/doctrine/cache) - A caching library. +* [Zend Cache](https://github.com/zendframework/zend-cache) - Another caching library (ZF2). * [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.* @@ -457,8 +614,12 @@ A curated list of amazingly awesome PHP libraries, resources and shiny things. * [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. ## Notifications *Libraries for working with notification software.* @@ -469,9 +630,18 @@ A curated list of amazingly awesome PHP libraries, resources and shiny things. * [Notificator](https://github.com/namshi/notificator) - A lightweight notification library. ## 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. +* [Envoy](https://github.com/laravel/envoy) - A tool to run SSH tasks with PHP. +* [Plum](https://github.com/aerialls/Plum) - A deployer library. +* [Deployer](https://github.com/deployphp/deployer) - A deployment tool. + +## Internationalisation and Localisation +*Libraries for Internationalization (I18n) and Localization (L10n).* + +* [Aura Intl](https://github.com/auraphp/Aura.Intl) ## Third Party APIs *Libraries for accessing third party APIs.* @@ -487,6 +657,13 @@ A curated list of amazingly awesome PHP libraries, resources and shiny things. * [Twitter REST](https://github.com/widop/twitter-rest) - A library to interact with Twitter's REST API. * [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. +* [Mailgun](https://github.com/mailgun/mailgun-php) The official Mailgun PHP API. + +## Extensions +*Libraries to help build PHP extensions.* + +* [Zephir](https://github.com/phalcon/zephir) - A compiled language between PHP and C++ for developing PHP extensions. +* [PHP CPP](http://www.php-cpp.com/) - A C++ library for developing PHP extensions. ## Miscellaneous *Useful libraries or tools that don't fit in the categories above.* @@ -494,24 +671,20 @@ A curated list of amazingly awesome PHP libraries, resources and shiny things. * [Spork](https://github.com/kriswallsmith/spork) - A process forking library. * [JSON Lint](https://github.com/Seldaek/jsonlint) - A JSON lint utility. * [JSONPCallbackValidator](https://github.com/willdurand/JsonpCallbackValidator) - A library for validating JSONP callbacks. -* [KnpMenu](https://github.com/KnpLabs/KnpMenu) - A menu library. * [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. -* [Plum](https://github.com/aerialls/Plum) - A deployer 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://brianhaveri.github.io/Underscore.php/) - A PHP port of the Underscore JS library. +* [Underscore](http://anahkiasen.github.io/underscore-php/) - A PHP port of the Underscore JS 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. @@ -520,97 +693,132 @@ A curated list of amazingly awesome PHP libraries, resources and shiny things. * [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 primatives 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. -## Development Software +# Software *Software for creating a development environment.* +## 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. -* [HipHop PHP](https://github.com/facebook/hiphop-php) - A Virtual Machine, Runtime and JIT for PHP by Facebook. -* [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. -* [Chef](https://github.com/opscode/chef) - A systems integration framework. -* [SaltStack](http://saltstack.com/community.html) - An infrastructure management tool. * [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. -* [CodeKit](http://incident57.com/codekit/) - A general web development tool. -* [HTTPie](https://github.com/jkbr/httpie) - A command line alternative to cURL written in Python. -* [Backup](https://github.com/meskyanichi/backup) - A server backup tool written in Ruby. +* [VirtPHP](http://virtphp.org/) - A tool for creating and managing isolated PHP environments. -## Web Tools -*Web-based tools.* +## 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. -* [3V4L](http://3v4l.org/) - An online PHP shell. +* [Phansible](http://phansible.com/) - A web tool for building PHP development virtual machines with Ansible. + +## 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. + +## Integrated Development Environment +*Integrated Development Environments with support for PHP.* + +* [Netbeans](https://netbeans.org) - An IDE with support for PHP and HTML5. +* [Eclipse for PHP Developers](https://www.eclipse.org/downloads/) - A PHP IDE based on the Eclipse platform. +* [PhpStorm](http://www.jetbrains.com/phpstorm/) - A commercial PHP IDE. + +## Web Applications +*Web-based applications and tools.* + +* [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. * [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. -## Websites -*Useful web and PHP-related websites and newsletters.* +## PHP Websites +*Useful PHP-related websites.* * [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 Weekly](http://www.phpweekly.com/archive.html) - A weekly PHP newsletter. +* [Securing PHP](http://securingphp.com/) - A newsletter about PHP security and library recommendations. * [PHP Security](http://phpsecurity.readthedocs.org/en/latest/index.html) - A guide to PHP security. -* [PHP Internals](http://www.phpinternalsbook.com/) - A book about the PHP internals. * [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 Mentoring](http://phpmentoring.org/) - Peer to peer PHP mentorship organization. + +## 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. -* [Mozilla Developer Network](https://developer.mozilla.org/en-US) - A website of shared knowledge for the open web. -* [HTML5Rocks](http://www.html5rocks.com) - A resource for open web HTML5 developers. -* [Programming with Anthony](http://www.youtube.com/playlist?list=PLM-218uGSX3DQ3KsB5NJnuOqPqc5CW2kW) - A video series by Anthony Ferrara. - -## Books -*Fantastic books and e-books.* - -* [Scaling PHP Applications](http://www.scalingphpbook.com) - An ebook about scaling PHP applications by Steve Corona. -* [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. -* [Understanding Computation](http://computationbook.com) - A book about computation theory by Tom Stuart. -* [The Linux Command Line](http://linuxcommand.org/tlcl.php) - A book about the Linux command line by William Shotts. - -## Web Reading -*General web-development-related reading materials.* - -* [OWASP PHP Security Cheat Sheet](https://www.owasp.org/index.php/PHP_Security_Cheat_Sheet) - A PHP security cheatsheet. -* [C is for Cookie, H is for Hacker](http://www.troyhunt.com/2013/03/c-is-for-cookie-h-is-for-hacker.html) - An article about cookies and security. -* [You Blew It Loading Your Login Form Over HTTP](http://www.troyhunt.com/2013/05/your-login-form-posts-to-https-but-you.html) - An article about using HTTPS correctly with login forms. -* [How HTTPS Secures Your Connection](http://blog.hartleybrody.com/https-certificates/) - An article explaining how TLS/SSL secures your connection. -* [How to Build a Secure Remember Me Feature](http://www.troyhunt.com/2013/07/how-to-build-and-how-not-to-build.html) - An article on how to build a secure remember me feature. -* [A Beginners Guide to HTTP Cache Headers](http://www.mobify.com/blog/beginners-guide-to-http-cache-headers/) - An article about HTTP cache headers. -* Beyond Series [1](http://blog.ircmaxell.com/2013/09/beyond-design-patterns.html) [2](http://blog.ircmaxell.com/2013/11/beyond-inheritance.html) [3](http://blog.ircmaxell.com/2013/11/beyond-object-oriented-programming.html) [4](http://blog.ircmaxell.com/2013/11/beyond-clean-code.html) - A series of articles about programming by Anthony Ferrara. * [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. + +## 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. +* [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. +* [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. +* [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. + +## 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. +* [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. +* [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.* + +* [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.* @@ -634,6 +842,7 @@ Various resources, such as books, websites and articles, for improving your PHP *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. @@ -643,9 +852,12 @@ Various resources, such as books, websites and articles, for improving your PHP * [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. +* [Why Objects (Usually) Use Less Memory Than Arrays](https://gist.github.com/nikic/5015323) - An article about object and 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. -# Contributing -Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONTRIBUTING.md) for details. +## PHP Magazines +*Fantastic PHP-related magazines.* + +* [php[architect]](http://www.phparch.com/magazine/) - A monthly magazine dedicated to PHP.