diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d36602d..a9884a0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,16 +1,16 @@ # Contribution 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: +Unfortunately, not every library, tool or framework can be considered for inclusion. The aim of Awesome PHP is to be a concise list of noteworthy and interesting software written in modern PHP. Therefore, suggested software should: 1. Be widely recommended regardless of personal opinion 2. Well known or discussed within the PHP community 3. Be unique in its approach or function -4. Fill a niche gap in the market +4. Fill a niche gap in the market Self-promotion is frowned upon, so please consider seriously whether your project meets the criteria before opening a pull request, otherwise it may be closed without being reviewed. Also, please ensure your pull request adheres to the following guidelines: -* Software that is PHP 5.5+, Composer-installable, PSR compliant, semantically versioned, united tested and well documented in English is preferred. +* Software that is PHP 7.0+, Composer-installable, PSR compliant, semantically versioned, unit tested, actively maintained and well documented in English is preferred. * Please search previous suggestions before making a new one, as yours may be a duplicate. * Enter a meaningful pull request description. * Please make an individual commit for each suggestion in a separate pull request. @@ -18,7 +18,7 @@ Also, please ensure your pull request adheres to the following guidelines: * 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 always welcome. -* Please keep descriptions short, simple and unbiased. No buzzwords or marketing jargon. +* 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 784e2f0..f275ac8 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ 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) and [CODE-OF-CONDUCT](https://github.com/ziadoz/awesome-php/blob/master/CODE-OF-CONDUCT.md) for details. +## Contributing and Collaborating +Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONTRIBUTING.md), [CODE-OF-CONDUCT](https://github.com/ziadoz/awesome-php/blob/master/CODE-OF-CONDUCT.md) and [COLLABORATING](https://github.com/ziadoz/awesome-php/blob/master/COLLABORATING.md) for details. ## Table of Contents - [Awesome PHP](#awesome-php) @@ -32,6 +32,8 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT - [Security](#security) - [Passwords](#passwords) - [Code Analysis](#code-analysis) + - [Code Quality](#code-quality) + - [Static Analysis](#static-analysis) - [Architectural](#architectural) - [Debugging and Profiling](#debugging-and-profiling) - [Build Tools](#build-tools) @@ -69,7 +71,7 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT - [PHP Installation](#php-installation) - [Development Environment](#development-environment) - [Virtual Machines](#virtual-machines) - - [Integrated Development Environment](#integrated-development-environment) + - [Text Editors and IDEs](#text-editors-and-ides) - [Web Applications](#web-applications) - [Infrastructure](#infrastructure) - [Resources](#resources) @@ -82,17 +84,16 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT - [PHP Internals Reading](#php-internals-reading) - [Contributing](#contributing) -## Composer Repositories +### Composer Repositories *Composer Repositories.* * [Firegento](http://packages.firegento.com/) - Magento Module Composer Repository. * [Packagist](https://packagist.org/) - The PHP Package Repository. -* [PaketHub](https://pakethub.com/) - All-in-One PHP Package Repository. * [Private Packagist](https://packagist.com/) - Composer package archive as a service for PHP. * [WordPress Packagist](https://wpackagist.org/) - Manage your plugins with Composer. * [Zend Framework Packages](https://packages.zendframework.com/) - Zend Framework Composer Repository. -## Dependency Management +### Dependency Management *Libraries for dependency and package management.* * [Composer Installers](https://github.com/composer/installers) - A multi framework Composer library installer. @@ -100,21 +101,17 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [Melody](http://melody.sensiolabs.org/) - A tool to build one file Composer scripts. * [Pickle](https://github.com/FriendsOfPHP/pickle) - A PHP extension installer. -## Dependency Management Extras +### Dependency Management Extras *Extras related to dependency management.* * [Composed](https://github.com/joshdifabio/composed) - A library to parse your project's Composer environment at runtime. -* [Composer Checker](https://github.com/silpion/composer-checker) - A tool to validate Composer configurations. * [Composer Merge Plugin](https://github.com/wikimedia/composer-merge-plugin) - A composer plugin to merge several composer.json files. -* [Composition](https://github.com/bamarni/composition) - A library to check your Composer environment at runtime. -* [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. * [Prestissimo](https://github.com/hirak/prestissimo) - A composer plugin which enables parallel install process. * [Satis](https://github.com/composer/satis) - A static Composer repository generator. * [tooly](https://github.com/tommy-muehle/tooly-composer-script) - A library to manage PHAR files in project using Composer. * [Toran Proxy](https://toranproxy.com) - A static Composer repository and proxy. -## Frameworks +### Frameworks *Web development frameworks.* * [Aura Framework](http://auraphp.com/framework/) - A framework built from independent components. @@ -122,20 +119,20 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [Laravel 5](https://laravel.com/) - Another PHP framework (L5). * [Nette](https://nette.org) - Another framework comprised of individual components. * [Phalcon](https://phalconphp.com/en/) - A framework implemented as a C extension. -* [PPI Framework 2](http://www.ppi.io) - An interoperability framework. +* [PPI Framework 2](https://github.com/ppi) - An interoperability framework. * [Symfony](https://symfony.com/) - A framework comprised of individual components (SF). * [Yii2](https://github.com/yiisoft/yii2/) - Another PHP framework. * [Zend Framework 2](https://framework.zend.com) - Another framework comprised of individual components (ZF2). * [Ice](https://www.iceframework.org/) - Another simple and fast PHP framework delivered as C-extension. -## Framework Extras +### Framework Extras *Extras related to web development frameworks.* * [CakePHP CRUD](https://github.com/friendsofcake/crud) - A Rapid Application Development (RAD) plugin for CakePHP. * [Knp RAD Components](http://rad.knplabs.com/) - A set of Rapid Application Development (RAD) components for Symfony. * [Symfony CMF](https://github.com/symfony-cmf/symfony-cmf) - A Content Management Framework to create custom CMS. -## Components +### Components *Standalone components from web development frameworks and development groups.* * [Aura](http://auraphp.com/) - Independent components, fully decoupled from each other and from any framework. @@ -145,25 +142,24 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [Symfony Components](http://symfony.com/doc/master/components/index.html) - The components that make Symfony. * [Zend Framework 2 Components](https://docs.zendframework.com/) - The components that make Zend Framework. -## Micro Frameworks +### Micro Frameworks *Micro frameworks and routers.* * [Bullet PHP](http://bulletphp.com/) - A micro framework for building REST APIs. * [Lumen](https://lumen.laravel.com) - A micro-framework by Laravel. -* [Proton](https://github.com/alexbilbie/Proton) - A StackPHP compatible micro framework. * [Radar](https://github.com/radarphp/Radar.Adr) - An Action-Domain-Responder implementation for PHP. -* [Silex](https://silex.sensiolabs.org/) - A micro framework built around Symfony components. * [Slim](https://www.slimframework.com/) - Another simple micro framework. -## Micro Framework Extras +### Micro Framework Extras *Extras related to micro frameworks and routers.* * [Silex Skeleton](https://github.com/silexphp/Silex-Skeleton) - A project skeleton for Silex. * [Silex Web Profiler](https://github.com/silexphp/Silex-WebProfiler) - A web debug toolbar for Silex. * [Slim Skeleton](https://github.com/slimphp/Slim-Skeleton) - A skeleton for Slim. -* [Slim View](https://github.com/slimphp/Slim-Views) - A collection of custom views for Slim. +* [Slim Twig View](https://github.com/slimphp/Slim-Views) - Integrate Twig into Slim. +* [Slim PHP View](https://github.com/slimphp/PHP-View) - A simple PHP renderer for Slim. -## Routers +### Routers *Libraries for handling application routing.* * [Aura.Router](https://github.com/auraphp/Aura.Router) - A full-featured routing library. @@ -172,48 +168,46 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [Pux](https://github.com/c9s/Pux) - Another fast routing library. * [Route](https://github.com/thephpleague/route) - A routing library built on top of Fast Route. -## Templating +### Templating *Libraries and tools for templating and lexing.* * [Aura.View](https://github.com/auraphp/Aura.View) - Provides TemplateView and TwoStepView using PHP as the tempting language, with support for partials, sections, and helpers. * [Foil](https://github.com/FoilPHP/Foil) - Another native PHP templating library. -* [Lex](https://github.com/pyrocms/lex) - A lightweight template parser. * [MtHaml](https://github.com/arnaud-lb/MtHaml) - A PHP implementation of the HAML template language. * [Mustache](https://github.com/bobthecow/mustache.php) - A PHP implementation of the Mustache template language. -* [Phly Mustache](https://github.com/phly/phly_mustache) - Another PHP implementation of the Mustache template language. * [PHPTAL](http://phptal.org/) - A PHP implementation of the [TAL](https://en.wikipedia.org/wiki/Template_Attribute_Language) templating language. * [Plates](http://platesphp.com/) - A native PHP templating library. -* [Smarty](http://www.smarty.net/) - A template engine to complement PHP. -* [Twig](https://twig.sensiolabs.org/) - A comprehensive templating language. +* [Smarty](https://www.smarty.net/) - A template engine to complement PHP. +* [Twig](https://twig.symfony.com/) - A comprehensive templating language. * [Tale Jade](https://github.com/Talesoft/tale-jade) - A PHP implementation of the Jade template language. -## Static Site Generators +### Static Site Generators *Tools for pre-processing content to generate web pages.* * [Couscous](http://couscous.io) - Couscous turns Markdown documentation into beautiful websites. It's GitHub Pages on steroids. -* [Phrozn](https://github.com/Pawka/phrozn) - Another tool that converts Textile, Markdown and Twig into HTML. * [Sculpin](https://sculpin.io) - A tool that converts Markdown and Twig into static HTML. * [Spress](http://spress.yosymfony.com) - An extensible tool that converts Markdown and Twig into HTML. -## HTTP +### HTTP *Libraries for working with HTTP.* * [Buzz](https://github.com/kriswallsmith/Buzz) - Another HTTP client. * [Guzzle]( https://github.com/guzzle/guzzle) - A comprehensive HTTP client. * [HTTPFul](https://github.com/nategood/httpful) - A chainable HTTP client. +* [HTTPlug](http://httplug.io) - An HTTP client abstraction without binding to a specific implementation. * [PHP VCR](http://php-vcr.github.io/) - A library for recording and replaying HTTP requests. * [Requests](https://github.com/rmccue/Requests) - A simple HTTP library. * [Retrofit](https://github.com/tebru/retrofit-php) - A library to ease creation of REST API clients. * [zend-diactoros](https://github.com/zendframework/zend-diactoros) - PSR-7 HTTP Message implementation. -## Scraping +### Scraping *Libraries for scraping websites.* * [Embed](https://github.com/oscarotero/Embed) - An information extractor from any web service or page. * [Goutte](https://github.com/FriendsOfPHP/Goutte) - A simple web scraper. * [PHP Spider](https://github.com/mvdbos/php-spider) - A configurable and extensible PHP web spider. -## Middlewares +### Middlewares *Libraries for building application using middlewares.* * [Expressive](https://zendframework.github.io/zend-expressive/) - PSR-7 Middleware framework from Zend. @@ -222,15 +216,15 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [Stack](https://github.com/stackphp) - A library of stackable middleware for Silex/Symfony. * [zend-stratigility](https://github.com/zendframework/zend-stratigility) - Middleware for PHP built on top of PSR-7. -## URL +### URL *Libraries for parsing URLs.* * [PHP Domain Parser](https://github.com/jeremykendall/php-domain-parser) - A domain suffix parser library. * [Purl](https://github.com/jwage/purl) - A URL manipulation library. -* [sabre/uri](https://github.com/fruux/sabre-uri) - A functional URI manipulation library. +* [sabre/uri](https://github.com/sabre-io/uri) - A functional URI manipulation library. * [Uri](https://github.com/thephpleague/uri) - Another URL manipulation library. -## Email +### Email *Libraries for sending and parsing email.* * [CssToInlineStyles](https://github.com/tijsverkoyen/CssToInlineStyles) - A library to inline CSS in email templates. @@ -240,28 +234,24 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [Mautic](https://github.com/mautic/mautic) - Email marketing automation * [PHPMailer](https://github.com/PHPMailer/PHPMailer) - Another mailer solution. * [Stampie](https://github.com/Stampie/Stampie) - A library for email services such as [SendGrid](https://sendgrid.com/), [PostMark](https://postmarkapp.com), [MailGun](https://www.mailgun.com/) and [Mandrill](http://www.mandrill.com). -* [SwiftMailer](http://swiftmailer.org/) - A mailer solution. +* [SwiftMailer](https://swiftmailer.symfony.com) - A mailer solution. -## Files +### Files *Libraries for file manipulation and MIME type detection.* -* [Apache MIME Types](https://github.com/dflydev/dflydev-apache-mime-types) - A library that parses Apache MIME types. -* [Canal](https://github.com/dflydev/dflydev-canal) - A library to determine internet media types. * [CSV](https://github.com/thephpleague/csv) - A CSV data manipulation library. -* [Ferret](https://github.com/versionable/Ferret) - A MIME detection library. * [Flysystem](https://github.com/thephpleague/Flysystem) - Another filesystem abstraction layer. * [Gaufrette](https://github.com/KnpLabs/Gaufrette) - A filesystem abstraction layer. * [Hoa Mime](https://github.com/hoaproject/Mime) - Another MIME detection library. -* [Lurker](https://github.com/henrikbjorn/Lurker) - A resource tracking library. * [PHP FFmpeg](https://github.com/PHP-FFmpeg/PHP-FFmpeg/) - A wrapper for the [FFmpeg](http://www.ffmpeg.org/) video library. * [UnifiedArchive](https://github.com/wapmorgan/UnifiedArchive) - A unified reader and writer of compressed archives. -## Streams +### Streams *Libraries for working with streams.* * [Streamer](https://github.com/fzaninotto/Streamer) - A simple object-orientated stream wrapper library. -## Dependency Injection +### Dependency Injection *Libraries that implement the dependency injection design pattern.* * [Aura.Di](https://github.com/auraphp/Aura.Di) - A serializable dependency injection container with constructor and setter injection, interface and trait awareness, configuration inheritance, and much more. @@ -270,24 +260,21 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [Container](https://github.com/thephpleague/container) - Another flexible dependency injection container. * [Disco](https://github.com/bitExpert/disco) - A PSR-11 compatible, annotation-based dependency injection container. * [PHP-DI](http://php-di.org/) - A dependency injection container that supports autowiring. -* [Pimple](https://pimple.sensiolabs.org/) - A tiny dependency injection container. +* [Pimple](https://pimple.symfony.com/) - A tiny dependency injection container. * [Symfony DI](https://github.com/symfony/dependency-injection) - A dependency injection container component (SF). -## Imagery +### Imagery *Libraries for manipulating images.* * [Color Extractor](https://github.com/thephpleague/color-extractor) - A library for extracting colours from images. -* [GIF Creator](https://github.com/Sybio/GifCreator) - A library to create GIF animations from multiple images. -* [GIF Frame Extractor](https://github.com/Sybio/GifFrameExtractor) - A library to extract GIF animation frame information. * [Glide](https://github.com/thephpleague/glide) - An on-demand image manipulation library. * [Image Hash](https://github.com/jenssegers/imagehash) - A library for generating perceptual image hashes. * [Image Optimizer](https://github.com/psliwa/image-optimizer) - A library for optimizing images. -* [Image With Text](https://github.com/nmcteam/image-with-text) - A library for embedding text into images. * [Imagine](http://imagine.readthedocs.io/en/latest/index.html) - An image manipulation library. * [Intervention Image](https://github.com/Intervention/image) - Another image manipulation library. * [PHP Image Workshop](https://github.com/Sybio/ImageWorkshop) - Another image manipulation library. -## Testing +### Testing *Libraries for testing codebases and generating test data.* * [Alice](https://github.com/nelmio/alice) - An expressive fixture generation library. @@ -301,7 +288,7 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [Kahlan](https://github.com/kahlan/kahlan) - Full stack Unit/BDD testing framework with built-in stub, mock and code-coverage support. * [Mink](http://mink.behat.org/en/latest/) - Web acceptance testing. * [Mockery](https://github.com/mockery/mockery) - A mock object library for testing. -* [ParaTest](https://github.com/brianium/paratest) - A parallel testing library for PHPUnit. +* [ParaTest](https://github.com/paratestphp/paratest) - A parallel testing library for PHPUnit. * [Peridot](https://github.com/peridot-php/peridot) - An event driven test framework. * [Phake](https://github.com/mlively/Phake) - Another mock object library for testing. * [Pho](https://github.com/danielstjules/pho) - Another behaviour driven development testing framework. @@ -310,11 +297,9 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [PHPT](https://qa.php.net/write-test.php) - A test tool used by PHP itself. * [PHPUnit](https://github.com/sebastianbergmann/phpunit) - A unit testing framework. * [Prophecy](https://github.com/phpspec/prophecy) - A highly opinionated mocking framework. -* [Samsui](https://github.com/mauris/samsui) - Another fake data generator library. * [VFS Stream](https://github.com/mikey179/vfsStream) - A virtual filesystem stream wrapper for testing. -* [VFS](https://github.com/adlawson/php-vfs) - Another virtual filesystem for testing. -## Continuous Integration +### Continuous Integration *Libraries and applications for continuous integration.* * [CircleCI](https://circleci.com) - A continuous integration platform. @@ -323,12 +308,11 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [JoliCi](https://github.com/jolicode/JoliCi) - A continuous integration client written in PHP and powered by Docker. * [PHPCI](https://www.phptesting.org/) - An open source continuous integration platform for PHP. * [SemaphoreCI](https://semaphoreci.com/) - A continuous integration platform for open source and private projects. -* [Shippable](https://app.shippable.com/) - A docker based continious integration platform for open source and private projects. -* [Sismo](https://sismo.sensiolabs.org/) - A continuous testing server library. +* [Shippable](https://www.shippable.com/) - A Docker based continious integration platform for open source and private projects. * [Travis CI](https://travis-ci.org/) - A continuous integration platform. -* [Wercker](http://www.wercker.com/) - A continuous integration platform +* [Wercker](http://www.wercker.com/) - A continuous integration platform. -## Documentation +### Documentation *Libraries for generating project documentation.* * [APIGen](https://github.com/apigen/apigen) - Another API documentation generator. @@ -337,7 +321,7 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [phpDox](http://phpdox.de/) - A documentation generator for PHP projects (that is not limited to API documentation). * [Sami](https://github.com/FriendsOfPHP/Sami) - An API documentation generator. -## Security +### Security *Libraries for generating secure random numbers, encrypting data and scanning for vulnerabilities.* * [Halite](https://paragonie.com/project/halite) - A simple library for encryption using [libsodium](https://github.com/jedisct1/libsodium). @@ -345,18 +329,16 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [IniScan](https://github.com/psecio/iniscan) - A tool that scans PHP INI files for security. * [Optimus](https://github.com/jenssegers/optimus) - Id obfuscation based on Knuth's multiplicative hashing method. * [PHP Encryption](https://github.com/defuse/php-encryption) - Secure PHP Encryption Library. -* [PHP 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. * [PHPSecLib](http://phpseclib.sourceforge.net/) - A pure PHP secure communications library. * [random_compat](https://github.com/paragonie/random_compat) - PHP 5.x support for `random_bytes()` and `random_int()` * [RandomLib](https://github.com/ircmaxell/RandomLib) - A library for generating random numbers and strings. -* [SecurityMultiTool](https://github.com/padraic/SecurityMultiTool) - A PHP security library. * [SensioLabs Security Check](https://security.sensiolabs.org/) - A web tool to check your Composer dependencies for security advisories. * [TCrypto](https://github.com/timoh6/TCrypto) - A simple encrypted key-value storage library. * [VAddy](https://vaddy.net/) - A continuous security testing platform for web applications. * [Zed](https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project) - An integrated penetration testing tool for web applications. -## Passwords +### Passwords *Libraries and tools for working with and storing passwords.* * [GenPhrase](https://github.com/timoh6/GenPhrase) - A library for generating secure random passphrases. @@ -368,56 +350,53 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [phpass](http://www.openwall.com/phpass/) - A portable password hashing framework. * [Zxcvbn PHP](https://github.com/bjeavons/zxcvbn-php) - A realistic PHP password strength estimate library based on Zxcvbn JS. -## Code Analysis +### Code Analysis *Libraries and tools for analysing, parsing and manipulating codebases.* -* [Athletic](https://github.com/polyfractal/athletic) - An annotation based benchmark framework. * [Better Reflection](https://github.com/Roave/BetterReflection) - AST-based reflection library that allows analysis and manipulation of code * [Code Climate](https://codeclimate.com) - An automated code review. -* [Dissect](https://github.com/jakubledl/dissect) - A set of tools for lexical and syntactical analysis. -* [Exakat](https://github.com/exakat/exakat) - A static analysis engine for PHP. -* [GrumPHP](https://github.com/phpro/grumphp) - A composer plugin to defend code quality. -* [Mondrian](https://github.com/Trismegiste/Mondrian) - A code analysis tool using Graph Theory. -* [PHP Analyser](https://github.com/scrutinizer-ci/php-analyzer) - A library for analysing PHP code to find bugs and errors. -* [PHP Code Sniffer](https://github.com/squizlabs/PHP_CodeSniffer) - A library that detects PHP, CSS and JS coding standard violations. -* [PHP CS Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer) - A coding standards fixer library. -* [PHP Manipulator](https://github.com/schmittjoh/php-manipulator) - A library for analysing and modifying PHP Source Code. -* [PHP Mess Detector](https://phpmd.org/) - A library that scans code for bugs, sub-optimal code, unused parameters and more. -* [PHP Metrics](https://github.com/phpmetrics/PhpMetrics) - A static metric library. -* [PHP Migration](https://github.com/monque/PHP-Migration) - A static analyzer for PHP version migration. * [PHP Parser](https://github.com/nikic/PHP-Parser) - A PHP parser written in PHP. -* [PHP Refactoring Browser](https://github.com/QafooLabs/php-refactoring-browser) - A command line utility for refactoring PHP code. * [PHP Semantic Versioning Checker](https://github.com/tomzx/php-semver-checker) - A command line utility that compares two source sets and determines the appropriate semantic versioning to apply. -* [phan](https://github.com/etsy/phan) - A static analyzer based on PHP 7+ and the php-ast extension. -* [PHPCheckstyle](https://github.com/PHPCheckstyle/phpcheckstyle) - A tool to help adhere to certain coding conventions. -* [PHPCPD](https://github.com/sebastianbergmann/phpcpd) - A library that detects copied and pasted code. -* [PhpDependencyAnalysis](https://github.com/mamuz/PhpDependencyAnalysis) - A tool to create customisable dependency graphs. * [PHPLOC](https://github.com/sebastianbergmann/phploc) - A tool for quickly measuring the size of a PHP project. * [PHPQA](https://github.com/EdgedesignCZ/phpqa) - A tool for running QA tools (phploc, phpcpd, phpcs, pdepend, phpmd, phpmetrics). -* [PHPPHP](https://github.com/ircmaxell/PHPPHP) - A PHP VM implementation in PHP. -* [PHPSandbox](https://github.com/Corveda/PHPSandbox) - A PHP sandbox environment. -* [PHPStan](https://github.com/phpstan/phpstan) - A PHP Static Analysis Tool. * [Qafoo Quality Analyzer](https://github.com/Qafoo/QualityAnalyzer) - A tool to visualize metrics and source code. -* [Scrutinizer](https://scrutinizer-ci.com/) - A web tool to scrutinise PHP code. +* [Scrutinizer](https://scrutinizer-ci.com/) - A web tool to [scrutinise PHP code](https://github.com/scrutinizer-ci/php-analyzer). * [UBench](https://github.com/devster/ubench) - A simple micro benchmark library. -## Architectural +### Code Quality +*Libraries for managing code quality, formatting and linting.* + +* [PHP CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) - A library that detects PHP, CSS and JS coding standard violations. +* [PHP CS Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer) - A coding standards fixer library. +* [PHP Mess Detector](https://phpmd.org/) - A library that scans code for bugs, sub-optimal code, unused parameters and more. +* [PHPCheckstyle](https://github.com/PHPCheckstyle/phpcheckstyle) - A tool to help adhere to certain coding conventions. +* [PHPCPD](https://github.com/sebastianbergmann/phpcpd) - A library that detects copied and pasted code. + +### Static Analysis +*Libraries for performing static analysis of PHP code.* + +* [Exakat](https://github.com/exakat/exakat) - A static analysis engine for PHP. +* [Mondrian](https://github.com/Trismegiste/Mondrian) - A code analysis tool using Graph Theory. +* [phan](https://github.com/phan/phan) - A static analyzer based on PHP 7+ and the php-ast extension. +* [PHPCompatibility](https://github.com/wimg/PHPCompatibility) - A PHP compatibility checker for PHP CodeSniffer. +* [PhpDependencyAnalysis](https://github.com/mamuz/PhpDependencyAnalysis) - A tool to create customisable dependency graphs. +* [PHP Metrics](https://github.com/phpmetrics/PhpMetrics) - A static metric library. +* [PHP Migration](https://github.com/monque/PHP-Migration) - A static analyzer for PHP version migration. +* [PHPStan](https://github.com/phpstan/phpstan) - A PHP Static Analysis Tool. +* [Pslam](https://github.com/vimeo/psalm) - A static analysis tool for finding errors in PHP applications. + +### Architectural *Libraries related to design patterns, programming approaches and ways to organize code.* -* [Compose](https://github.com/igorw/compose) - A function composition library. * [Design Patterns PHP](https://github.com/domnikl/DesignPatternsPHP) - A repository of software patterns implemented in PHP. * [Finite](http://yohan.giarel.li/Finite/) - A simple PHP finite state machine. * [Functional PHP](https://github.com/lstrojny/functional-php) - A functional programming library. -* [Galapagos](https://github.com/endel/galapagos) - Evolutionary language transformation. * [Iter](https://github.com/nikic/iter) - A library that provides iteration primitives using generators. -* [Monad PHP](https://github.com/ircmaxell/monad-php) - A simple Monad library. * [Patchwork](http://patchwork2.org/) - A library for redefining userland functions. -* [PHP Option](https://github.com/schmittjoh/php-option) - An option type library. * [Pipeline](https://github.com/thephpleague/pipeline) - A pipeline pattern implementation. -* [Ruler](https://github.com/bobthecow/Ruler) - A simple stateless production rules engine. * [RulerZ](https://github.com/K-Phoen/rulerz) - A powerful rule engine and implementation of the Specification pattern. -## Debugging and Profiling +### Debugging and Profiling *Libraries and tools for debugging and profiling code.* * [APM](http://pecl.php.net/package/APM) - Monitoring extension collecting errors and statistics into SQLite/MySQL/StatsD. @@ -427,23 +406,20 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [PHP Console](https://github.com/Seldaek/php-console) - A web debugging console. * [PHP Debug Bar](http://phpdebugbar.com/) - A debugging toolbar. * [PHPBench](https://github.com/phpbench/phpbench) - A benchmarking Framework. -* [PHPDBG](http://phpdbg.com/) - An interactive PHP debugger. * [Tideways.io](https://tideways.io/) - Monitoring and profiling tool * [Tracy](https://github.com/nette/tracy) - A simple error detection, logging and time measuring library. * [xDebug](https://github.com/xdebug/xdebug) - A debug and profile tool for PHP. * [XHProf](https://github.com/phacility/xhprof) - A profiling tool originally developed by Facebook. * [Z-Ray](http://www.zend.com/en/products/server/z-ray) - A debug and profile tool for Zend Server. -## Build Tools +### Build Tools *Project build and automation tools.* -* [Bob](https://github.com/CHH/bob) - A simple project automation tool. * [Box](https://github.com/box-project/box2) - A utility to build PHAR files. * [Construct](https://github.com/jonathantorres/construct) - A PHP project/micro-package generator. -* [Phake](https://github.com/jaz303/phake) - A rake PHP clone library. * [Phing](https://www.phing.info/) - A PHP project build system inspired by Apache Ant. -## Task Runners +### Task Runners *Libraries for automating and running tasks.* * [Bldr](http://bldr.io/) - A PHP Task runner built on Symfony components. @@ -451,13 +427,12 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [Robo](https://github.com/consolidation/Robo) - A PHP Task runner with object-orientated configurations. * [Task](http://taskphp.github.io/) - A pure PHP task runner inspired by Grunt and Gulp. -## Navigation +### Navigation *Tools for building navigation structures.* -* [Cartographer](https://github.com/tackk/cartographer) - A sitemap generation library. * [KnpMenu](https://github.com/KnpLabs/KnpMenu) - A menu library. -## Asset Management +### Asset Management *Tools for managing, compressing and minifying website assets.* * [JShrink](https://github.com/tedious/JShrink) - A JavaScript minifier library. @@ -465,7 +440,7 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [Puli](https://github.com/puli/repository) - A library for determining assets absolute paths. * [BowerPHP](https://github.com/Bee-Lab/bowerphp) - A PHP implementation of Bower. A package manager for the web -## Geolocation +### Geolocation *Libraries for geocoding addresses and working with latitudes and longitudes.* * [GeoCoder](http://geocoder-php.org/) - A geocoding library. @@ -473,17 +448,16 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [GeoTools](https://github.com/thephpleague/geotools) - A library of geo-related tools. * [PHPGeo](https://github.com/mjaschen/phpgeo) - A simple geo library. -## Date and Time +### Date and Time *Libraries for working with dates and times.* * [CalendR](http://yohan.giarel.li/CalendR/) - A calendar management library. * [Carbon](https://github.com/briannesbitt/Carbon) - A simple DateTime API extension. * [Chronos](https://github.com/cakephp/chronos) - A DateTime API extension supporting both mutable and immutable date/time. -* [ExpressiveDate](https://github.com/jasonlewis/expressive-date) - Another DateTime API extension. * [Moment.php](https://github.com/fightbulc/moment.php) - Moment.js inspired PHP DateTime handler with i18n support. * [Yasumi](https://github.com/azuyalabs/yasumi) - An library to help you calculate the dates and names of holidays. -## Event +### Event *Libraries that are event-driven or implement non-blocking event loops.* * [Amp](https://github.com/amphp/amp) - An event driven non-blocking I/O library. @@ -497,17 +471,15 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [Prooph Event Store](https://github.com/prooph/event-store) - An event source component to persist event messages * [Ratchet](https://github.com/ratchetphp/Ratchet) - A web socket library. * [React](https://github.com/reactphp/react) - An event driven non-blocking I/O library. -* [Rx.PHP](https://github.com/asm89/Rx.PHP) - A reactive extension library. +* [RxPHP](https://github.com/ReactiveX/RxPHP) - A reactive extension library. * [Workerman](https://github.com/walkor/Workerman) - An event driven non-blocking I/O library. -## Logging +### Logging *Libraries for generating and working with log files.* -* [Analog](https://github.com/jbroadway/analog) - A closure-based micro logging package. -* [KLogger](https://github.com/katzgrau/KLogger) - An easy-to-use PSR-3 compliant logging class. * [Monolog](https://github.com/Seldaek/monolog) - A comprehensive logger. -## E-commerce +### E-commerce *Libraries and applications for taking payments and building online e-commerce stores.* * [Money](https://github.com/moneyphp/money) - A PHP implementation of Fowler's money pattern. @@ -515,9 +487,9 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [Payum](https://github.com/payum/payum) - A payment abstraction library. * [Shopware](https://github.com/shopware/shopware) - Highly customizable e-commerce software * [Swap](https://github.com/florianv/swap) - An exchange rates library. -* [Sylius](http://sylius.org/) - An open source e-commerce solution. +* [Sylius](https://sylius.com/) - An open source e-commerce solution. -## PDF +### PDF *Libraries and software for working with PDF files.* * [Dompdf](https://github.com/dompdf/dompdf) - A HTML to PDF converter. @@ -525,19 +497,19 @@ 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/wkhtmltopdf/wkhtmltopdf) - A tool to convert HTML to PDF. -## Office +### Office *Libraries for working with office suite documents.* -* [ExcelAnt](https://github.com/Wisembly/ExcelAnt) - A library for manipulating Microsoft Excel documents. * [PHPPowerPoint](https://github.com/PHPOffice/PHPPresentation) - A library for working with Microsoft PowerPoint Presentations. * [PHPWord](https://github.com/PHPOffice/PHPWord) - A library for working with Microsoft Word documents. * [PHPSpreadsheet](https://github.com/PHPOffice/PhpSpreadsheet) - A pure PHP library for reading and writing spreadsheet files (successor of PHPExcel) -## Database +### Database *Libraries for interacting with databases using object-relational mapping (ORM) or datamapping techniques.* +* [Atlas.Orm](https://github.com/atlasphp/Atlas.Orm) - A data mapper implementation for your persistence model in PHP. * [Aura.Sql](https://github.com/auraphp/Aura.Sql) - Provides an extension to the native PDO along with a profiler and connection locator. -* [Aura.SqlQuery](https://github.com/auraphp/Aura.SqlQuery) - Independent query builders for MySQL, PostgreSQL, SQLite, and Microsoft SQL Server. Edit +* [Aura.SqlQuery](https://github.com/auraphp/Aura.SqlQuery) - Independent query builders for MySQL, PostgreSQL, SQLite, and Microsoft SQL Server. * [Baum](https://github.com/etrepat/baum) - A nested set implementation for Eloquent. * [Cake ORM](https://github.com/cakephp/orm) - Object-Relational Mapper, implemented using the DataMapper pattern (CP). * [Doctrine Extensions](https://github.com/Atlantic18/DoctrineExtensions) - A collection of Doctrine behavioural extensions. @@ -547,10 +519,10 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [Pomm](https://github.com/chanmix51/Pomm) - An Object Model Manager for PostgreSQL. * [Propel](http://propelorm.org/) - A fast ORM, migration library and query builder. * [ProxyManager](https://github.com/Ocramius/ProxyManager) - A set of utilities to generate proxy objects for data mappers. -* [RedBean](http://redbeanphp.com/index.php) - A lightweight, configuration-less ORM. +* [RedBean](https://redbeanphp.com/index.php) - A lightweight, configuration-less ORM. * [Spot2](https://github.com/spotorm/spot2) - A MySQL datamapper ORM. -## Migrations +### Migrations Libraries to help manage database schemas and migrations. * [Doctrine Migrations](http://docs.doctrine-project.org/projects/doctrine-migrations/en/latest/toc.html) - A migration library for Doctrine. @@ -559,15 +531,13 @@ Libraries to help manage database schemas and migrations. * [PHPMig](https://github.com/davedevelopment/phpmig) - Another migration management library. * [Ruckusing](https://github.com/ruckus/ruckusing-migrations) - Database migrations for PHP ala ActiveRecord Migrations with support for MySQL, Postgres, SQLite. -## NoSQL +### NoSQL *Libraries for working with "NoSQL" backends.* -* [Monga](https://github.com/thephpleague/monga) - A MongoDB abstraction library. -* [MongoQB](https://github.com/alexbilbie/MongoQB) - A MongoDB query builder library. * [PHPMongo](https://github.com/sokil/php-mongo) - A MongoDB ORM. * [Predis](https://github.com/nrk/predis) - A feature complete Redis library. -## Queue +### Queue *Libraries for working with event and task queues.* * [Bernard](https://github.com/bernardphp/bernard) - A multibackend abstraction library. @@ -577,7 +547,7 @@ Libraries to help manage database schemas and migrations. * [Tarantool Queue](https://github.com/tarantool-php/queue) - PHP bindings for Tarantool Queue. * [Thumper](https://github.com/php-amqplib/Thumper) - A RabbitMQ pattern library. -## Search +### Search *Libraries and software for indexing and performing search queries on data.* * [Elastica](https://github.com/ruflin/Elastica) - A client library for ElasticSearch. @@ -586,7 +556,7 @@ Libraries to help manage database schemas and migrations. * [Sphinx Search](https://github.com/ripaclub/sphinxsearch) - Sphinx Search library provides SphinxQL indexing and searching features * [SphinxQL query builder](http://foolcode.github.io/SphinxQL-Query-Builder/) - A query library for the [Sphinx](http://sphinxsearch.com/) search engine. -## Command Line +### Command Line *Libraries related to the command line.* * [Aura.Cli](https://github.com/auraphp/Aura.Cli) - Provides the equivalent of request ( Context ) and response ( Stdio ) objects for the command line interface, including Getopt support, and an independent Help object for describing commands. @@ -600,19 +570,15 @@ Libraries to help manage database schemas and migrations. * [GetOpt](https://github.com/getopt-php/getopt-php) - A command line opt parser. * [GetOptionKit](https://github.com/c9s/GetOptionKit) - Another command line opt parser. * [Hoa Console](https://github.com/hoaproject/Console) - Another command line library. -* [OptParse](https://github.com/CHH/optparse) - Another command line opt parser. -* [Pecan](https://github.com/mcrumm/pecan) - An event-driven, non-blocking shell. * [PsySH](https://github.com/bobthecow/psysh) - Another PHP REPL. * [ShellWrap](https://github.com/MrRio/shellwrap) - A simple command line wrapper library. -## Authentication and Authorization +### Authentication and Authorization *Libraries for implementing user authentication and authorization.* * [Aura.Auth](https://github.com/auraphp/Aura.Auth) - Provides authentication functionality and session tracking using various adapters. -* [Hawk](https://github.com/dflydev/dflydev-hawk) - A Hawk HTTP authentication library. * [SocialConnect Auth](https://github.com/socialConnect/auth) - An open source social sign (OAuth1\OAuth2\OpenID\OpenIDConnect). * [Json Web Token](https://github.com/lcobucci/jwt) - Json Tokens to authenticate and transmit information. -* [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. * [OAuth2 Server](http://bshaffer.github.io/oauth2-server-php-docs/) - Another OAuth2 server implementation. @@ -622,13 +588,11 @@ Libraries to help manage database schemas and migrations. * [Sentinel Social](https://cartalyst.com/manual/sentinel-social/2.0) - A library for social network authentication. * [Sentinel](https://cartalyst.com/manual/sentinel/2.0) - A framework agnostic authentication & authorisation library. * [TwitterOAuth](https://github.com/abraham/twitteroauth) - A Twitter OAuth library. -* [TwitterSDK](https://github.com/lyrixx/twitter-sdk) - A fully tested Twitter SDK. -## Markup +### Markup *Libraries for working with markup.* * [Cebe Markdown](https://github.com/cebe/markdown) - An fast and extensible Markdown parser. -* [Ciconia](https://github.com/kzykhys/Ciconia) - Another Markdown parser that supports Github flavoured Markdown. * [CommonMark PHP](https://github.com/thephpleague/commonmark) - A Markdown parser which supports the full [CommonMark spec](http://spec.commonmark.org/). * [Decoda](https://github.com/milesj/decoda) - A lightweight markup parser library. * [Emoji](https://github.com/heyupdate/Emoji) - A library that converts unicode characters and names into emoji images. @@ -637,13 +601,13 @@ Libraries to help manage database schemas and migrations. * [Parsedown](https://github.com/erusev/parsedown) - Another Markdown parser. * [PHP Markdown](https://github.com/michelf/php-markdown) - A Markdown parser. -## Strings +### Strings *Libraries for parsing and manipulating strings.* * [Agent](https://github.com/jenssegers/agent) - A PHP desktop/mobile user agent parser, based on Mobiledetect. * [ANSI to HTML5](https://github.com/sensiolabs/ansi-to-html) - An ANSI to HTML5 converter library. * [Color Jizz](https://github.com/mikeemoo/ColorJizz-PHP) - A library for manipulating and converting colours. -* [Device Detector](https://github.com/piwik/device-detector) - Another library for parsing user agent strings. +* [Device Detector](https://github.com/matomo-org/device-detector) - Another library for parsing user agent strings. * [Hoa String](https://github.com/hoaproject/Ustring) - Another UTF-8 string library. * [Jieba-PHP](https://github.com/fukuball/jieba-php) - A PHP port of Python's jieba. Chinese text segmentation for natural language processing. * [Mobile-Detect](https://github.com/serbanghita/Mobile-Detect) - A lightweight PHP class for detecting mobile devices (including tablets). @@ -651,27 +615,23 @@ Libraries to help manage database schemas and migrations. * [Slugify](https://github.com/cocur/slugify) - A library to convert strings to slugs. * [SQL Formatter](https://github.com/jdorn/sql-formatter/) - A library for formatting SQL statements. * [Stringy](https://github.com/danielstjules/Stringy) - A string manipulation library with multibyte support. -* [Text](https://github.com/kzykhys/Text) - A text manipulation library. * [UA Parser](https://github.com/tobie/ua-parser/tree/master/php) - A library for parsing user agent strings. * [URLify](https://github.com/jbroadway/urlify) - A PHP port of Django's URLify.js. * [UUID](https://github.com/ramsey/uuid) - A library for generating UUIDs. -## Numbers +### Numbers *Libraries for working with numbers.* * [ByteUnits](https://github.com/gabrielelana/byte-units) - A library to parse, format and convert byte units in binary and metric systems. * [LibPhoneNumber for PHP](https://github.com/giggsey/libphonenumber-for-php) - A PHP implementation of Google's phone number handling library. -* [Math](https://github.com/moontoast/math) - A library for working with large numbers. -* [Numbers PHP](https://github.com/powder96/numbers.php) - A library for working with numbers. * [PHP Conversion](https://github.com/Crisu83/php-conversion) - Another library for converting between units of measure. * [PHP Units of Measure](https://github.com/triplepoint/php-units-of-measure) - A library for converting between units of measure. -## Filtering and Validation +### Filtering and Validation *Libraries for filtering and validating data.* * [Aura.Filter](https://github.com/auraphp/Aura.Filter) - Provides tools to validate and sanitize objects and arrays. * [Cake Validation](https://github.com/cakephp/validation) - Another validation library (CP). -* [DMS Filter](https://github.com/rdohms/DMS-Filter) - An annotation filtering library. * [Filterus](https://github.com/ircmaxell/filterus) - A simple PHP filtering library. * [ISO-codes](https://github.com/ronanguilloux/IsoCodes) - A library for validating inputs according standards from ISO, International Finance, Public Administrations, GS1, Book Industry, Phone numbers & Zipcodes for many countries * [MetaYaml](https://github.com/romaricdrigon/MetaYaml) - A schema validation library that supports YAML, JSON and XML. @@ -680,7 +640,7 @@ Libraries to help manage database schemas and migrations. * [Valitron](https://github.com/vlucas/valitron) - Another validation library. * [Volan](https://github.com/serkin/Volan) - Another simplified validation library. -## API +### API *Libraries and web tools for developing APIs.* * [API Platform](https://api-platform.com ) - Expose in minutes an hypermedia REST API that embraces JSON-LD, Hydra format. @@ -692,7 +652,7 @@ Libraries to help manage database schemas and migrations. * [Restler](https://github.com/Luracast/Restler) - A lightweight framework to expose PHP methods as RESTful web API. * [wsdl2phpgenerator](https://github.com/wsdl2phpgenerator/wsdl2phpgenerator) - A tool to generate PHP classes from SOAP WSDL files. -## Caching +### Caching *Libraries for caching data.* * [Alternative PHP Cache (APC)](http://php.net/manual/en/book.apc.php) - Open opcode cache for PHP. @@ -704,10 +664,9 @@ Libraries to help manage database schemas and migrations. * [Stash](https://github.com/tedious/Stash) - Another library for caching. * [Zend Cache](https://github.com/zendframework/zend-cache) - Another caching library (ZF2). -## Data Structure and Storage +### Data Structure and Storage *Libraries that implement data structure or storage techniques.* -* [Ardent](https://github.com/morrisonlevi/Ardent) - A library of data structures. * [Cake Collection](https://github.com/cakephp/collection) - A simple collections library (CP). * [Collections](https://github.com/italolelis/collections) - Collections Abstraction library for PHP. * [Fractal](https://github.com/thephpleague/fractal) - A library for converting complex data structures to JSON output. @@ -715,88 +674,71 @@ Libraries to help manage database schemas and migrations. * [JsonMapper](https://github.com/cweiske/jsonmapper) - A library that maps nested JSON structures onto PHP classes. * [Knapsack](https://github.com/DusanKasan/Knapsack) - Collection library inspired by Clojure's sequences. * [msgpack.php](https://github.com/rybakit/msgpack.php) - A pure PHP implementation of the MessagePack serialization format. -* [PHP Collections](https://github.com/schmittjoh/php-collection) - A simple collections library. * [PINQ](https://github.com/TimeToogo/Pinq) - A PHP library based on .NET's LINQ (Language Integrated Query). * [Porter](https://github.com/ScriptFUSION/Porter) - Data import abstraction framework. * [Serializer](https://github.com/schmittjoh/serializer) - A library for serialising and de-serialising data. -* [Totem](https://github.com/Wisembly/Totem) - A library to manage and create data changesets. * [YaLinqo](https://github.com/Athari/YaLinqo) - Yet Another LINQ to Objects for PHP. * [Zend Serializer](https://github.com/zendframework/zend-serializer) - Another library for serialising and de-serialising data (ZF2). -## Notifications +### Notifications *Libraries for working with notification software.* * [JoliNotif](https://github.com/jolicode/JoliNotif) - A cross-platform library for desktop notification (support for Growl, notify-send, toaster, etc) -* [Nod](https://github.com/filp/nod) - A notification library (e.g., Growl). * [Notification Pusher](https://github.com/Ph3nol/NotificationPusher) - A standalone library for device push notifications. * [Notificato](https://github.com/mac-cain13/notificato) - A library for handling push notifications. * [Notificator](https://github.com/namshi/notificator) - A lightweight notification library. * [Php-pushwoosh](https://github.com/gomoob/php-pushwoosh) - A PHP Library to easily send push notifications with the Pushwoosh REST Web Services. -## Deployment +### Deployment *Libraries for project deployment.* * [Deployer](https://github.com/deployphp/deployer) - A deployment tool. * [Envoy](https://github.com/laravel/envoy) - A tool to run SSH tasks with PHP. -* [Plum](https://github.com/aerialls/Plum) - A deployer library. -* [Pomander](https://github.com/tamagokun/pomander) - A deployment tool for PHP applications. * [Rocketeer](https://github.com/rocketeers/rocketeer) - A fast and easy deployer for the PHP world. -## Internationalisation and Localisation +### Internationalisation and Localisation *Libraries for Internationalization (I18n) and Localization (L10n).* * [Aura.Intl](https://github.com/auraphp/Aura.Intl) - Provides internationalization (I18N) tools, specifically package-oriented per-locale message translation. * [Cake I18n](https://github.com/cakephp/i18n) - Message translation and localization for dates and numbers (CP) -## Third Party APIs +### Third Party APIs *Libraries for accessing third party APIs.* * [Amazon Web Service SDK](https://github.com/aws/aws-sdk-php) - The official PHP AWS SDK library. * [Campaign Monitor](http://campaignmonitor.github.io/createsend-php/) - The official Campaign Monitor PHP library. -* [Digital Ocean](https://github.com/toin0u/DigitalOcean) - A library to interface with the Digital Ocean API. * [Dropbox SDK](https://github.com/dropbox/dropbox-sdk-php) - The official PHP Dropbox SDK library. -* [Github](https://github.com/dsyph3r/github-api3-php) - A library to interface with the Github API. +* [Github](https://github.com/KnpLabs/php-github-api) - A library to interface with the Github API. * [Mailgun](https://github.com/mailgun/mailgun-php) The official Mailgun PHP API. -* [PHP Github API](https://github.com/KnpLabs/php-github-api) - Another library to interface with the Github API. -* [S3 Stream Wrapper](https://github.com/gwkunze/S3StreamWrapper) - A stream wrapper library for Amazon S3. * [Stripe](https://github.com/stripe/stripe-php) - The official Stripe PHP library. * [Twilio](https://github.com/twilio/twilio-php) - The official Twilio PHP REST API. -* [Twitter OAuth](https://github.com/widop/twitter-oauth) - A library to interface with Twitter's OAuth workflow. -* [Twitter REST](https://github.com/widop/twitter-rest) - A library to interact with Twitter's REST API. -## Extensions +### Extensions *Libraries to help build PHP extensions.* * [PHP CPP](http://www.php-cpp.com/) - A C++ library for developing PHP extensions. * [Zephir](https://github.com/phalcon/zephir) - A compiled language between PHP and C++ for developing PHP extensions. -## Miscellaneous +### Miscellaneous *Useful libraries or tools that don't fit in the categories above.* * [Annotations](https://github.com/doctrine/annotations) - An annotations library (part of Doctrine). +* [BotMan](https://github.com/botman/botman) - A framework agnostic PHP library to build cross-platform chat bots. * [Cake Utility](https://github.com/cakephp/utility) - Utility classes such as Inflector, String, Hash, Security and Xml (CP). * [Chief](https://github.com/adamnicholson/Chief) - A command bus library. * [ClassPreloader](https://github.com/ClassPreloader/ClassPreloader) - A library for optimising autoloading. * [Country List](https://github.com/umpirsky/country-list) - A list of all countries with names and ISO 3166-1 codes. * [Embera](https://github.com/mpratt/Embera) - An Oembed consumer library. * [Essence](https://github.com/essence/essence) - A library for extracting web media. -* [Flux](https://github.com/selvinortiz/flux) - A regular expression building library. * [Graphviz](https://github.com/alexandresalome/graphviz) - A Graphviz library. * [Hprose-PHP](https://github.com/hprose/hprose-php) - A very newbility RPC Library, support 25+ languages now. * [JSON Lint](https://github.com/Seldaek/jsonlint) - A JSON lint utility. * [JSONPCallbackValidator](https://github.com/willdurand/JsonpCallbackValidator) - A library for validating JSONP callbacks. -* [Jumper](https://github.com/kakawait/Jumper) - A remote service executor library. -* [LadyBug](https://github.com/raulfraile/Ladybug) - A dumper library. -* [Lambda PHP](https://github.com/igorw/lambda-php) - A Lambda calculus interpreter in PHP. -* [LiteCQRS](https://github.com/beberlei/litecqrs-php) - A CQRS (Command Query Responsibility Separation) library. * [Metrics](https://github.com/beberlei/metrics) - A simple metrics API library. * [noCAPTCHA](https://github.com/ARCANEDEV/noCAPTCHA) - Helper for Google's noCAPTCHA (reCAPTCHA). * [Nmap](https://github.com/willdurand/nmap) - A PHP wrapper around [Nmap](https://nmap.org/). -* [Opengraph](https://github.com/euskadi31/Opengraph) - An opengraph library. * [Pagerfanta](https://github.com/whiteoctober/Pagerfanta) - A pagination library. -* [PHP Expression](https://github.com/Kitano/php-expression) - A PHP expression language. * [PHP PassBook](https://github.com/eymengunay/php-passbook) - A PHP library for iOS PassBook. -* [PHP-GPIO](https://github.com/ronanguilloux/php-gpio) - A library for playing with the Raspberry PI's GPIO pins. * [PHP-ML](https://github.com/php-ai/php-ml) - A library for Machine Learning in PHP. * [PHPCR](https://github.com/phpcr/phpcr) - A PHP port of the Java Content Repository (JCR). * [PHPStack](http://dunkels.com/adam/phpstack/) - A TCP/IP stack proof of concept written in PHP. @@ -804,10 +746,9 @@ Libraries to help manage database schemas and migrations. * [Procrastinator](https://github.com/lstrojny/Procrastinator) - A library for running time consuming tasks. * [Prooph Service Bus](https://github.com/prooph/service-bus) - Lightweight message bus supporting CQRS and Micro Services * [RMT](https://github.com/liip/RMT) - A library for versioning and releasing software. -* [sabre/vobject](https://github.com/fruux/sabre-vobject) - A library for parsing VCard and iCalendar objects. +* [sabre/vobject](https://github.com/sabre-io/vobject) - A library for parsing VCard and iCalendar objects. * [Slimdump](https://github.com/webfactory/slimdump) - An easy dumper tool for MySQL. * [Spork](https://github.com/kriswallsmith/spork) - A process forking library. -* [Sslurp](https://github.com/EvanDotPro/Sslurp) - A library that makes dealing with SSL suck less. * [SuperClosure](https://github.com/jeremeamia/super_closure) - A library that allows Closures to be serialized. * [Symfony VarDumper](http://symfony.com/doc/current/components/var_dumper.html) - A variable dumper component (SF). * [Underscore](http://anahkiasen.github.io/underscore-php/) - A PHP port of the Underscore JS library. @@ -816,44 +757,44 @@ Libraries to help manage database schemas and migrations. # Software *Software for creating a development environment.* -## PHP Installation +### PHP Installation *Tools to help install and manage PHP on your computer.* * [HomeBrew PHP](https://github.com/Homebrew/homebrew-php) - A PHP tap for HomeBrew. * [HomeBrew](https://brew.sh/) - A package manager for OSX. * [PHP Brew](https://github.com/phpbrew/phpbrew) - A PHP version manager and installer. * [PHP Build](https://github.com/php-build/php-build) - Another PHP version installer. -* [PHP Env](https://github.com/CHH/phpenv) - Another PHP version manager. * [PHP OSX](https://php-osx.liip.ch/) - A PHP installer for OSX. -* [PHP Switch](https://github.com/jubianchi/phpswitch) - Another version manager. * [VirtPHP](http://virtphp.org/) - A tool for creating and managing isolated PHP environments. -## Development Environment +### Development Environment *Software and tools for creating a sandboxed development environment.* * [Ansible](https://www.ansible.com/) - A radically simple orchestration framework. * [Phansible](http://phansible.com/) - A web tool for building PHP development virtual machines with Ansible. -* [Protobox](http://getprotobox.com/) - Another web tool for building PHP development virtual machines. +* [Protobox](https://www.getprotobox.com/) - Another web tool for building PHP development virtual machines. * [PuPHPet](https://puphpet.com/) - A web tool for building PHP development virtual machines. * [Puppet](https://puppet.com/) - A server automation framework and application. * [Vagrant](https://www.vagrantup.com/) - A portable development environment utility. * [Docker](https://www.docker.com/) - A containerization platform. -## Virtual Machines +### Virtual Machines *Alternative PHP virtual machines.* * [Hack](http://hacklang.org/) - A programming language for HHVM that interoperates seamlessly with PHP. * [HHVM](https://github.com/facebook/hhvm) - A Virtual Machine, Runtime and JIT for PHP by Facebook. -* [HippyVM](https://github.com/hippyvm/hippyvm) - Another PHP virtual machine. -## Integrated Development Environment -*Integrated Development Environments with support for PHP.* +### Text Editors and IDEs +*Text Editors and Integrated Development Environments (IDE) with support for PHP.* +* [Atom](https://atom.io/) - A hackable text editor. +* [Atom IDE](https://ide.atom.io/) - An IDE extension for Atom. * [Eclipse for PHP Developers](https://www.eclipse.org/downloads/) - A PHP IDE based on the Eclipse platform. * [Netbeans](https://netbeans.org) - An IDE with support for PHP and HTML5. * [PhpStorm](http://www.jetbrains.com/phpstorm/) - A commercial PHP IDE. +* [VS Code](https://code.visualstudio.com/) - An open source code editor. -## Web Applications +### Web Applications *Web-based applications and tools.* * [3V4L](https://3v4l.org/) - An online PHP & HHVM shell. @@ -861,28 +802,27 @@ Libraries to help manage database schemas and migrations. * [PHP Queue](https://github.com/CoderKungfu/php-queue) - An application for managing queueing backends. * [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. -* [phpBeanstalkdAdmin](https://github.com/mnapoli/phpBeanstalkdAdmin) - Monitoring and administration interface for Beanstalkd. * [phpRedisAdmin](https://github.com/ErikDubbelboer/phpRedisAdmin) - A simple web interface to manage [Redis](https://redis.io/) databases. -* [phpPgAdmin](https://github.com/phppgadmin/phppgadmin) - A web-based administration tool for PostgreSQL. * [phpMyAdmin](https://github.com/phpmyadmin/phpmyadmin) - A web interface for MySQL/MariaDB. * [Adminer](https://www.adminer.org/) - Database management in a single PHP file. * [Grav](https://github.com/getgrav/grav) - A modern flat-file CMS. +* [Lychee](https://github.com/electerious/Lychee) - An easy to use and great looking photo-management-system. -## Infrastructure +### Infrastructure *Infrastructure for providing PHP applications and services.* -* [appserver.io](http://appserver.io/) - A multithreaded application server for PHP, written in PHP. +* [appserver.io](https://appserver.io/) - A multithreaded application server for PHP, written in PHP. * [php-pm](https://github.com/php-pm/php-pm) - A process manager, supercharger and load balancer for PHP applications. # Resources Various resources, such as books, websites and articles, for improving your PHP development skills and knowledge. -## PHP Websites +### PHP Websites *Useful PHP-related websites.* * [Nomad PHP](https://nomadphp.com/) - A online PHP learning resource. * [PHP Best Practices](https://phpbestpractices.org/) - A PHP best practice guide. -* [PHP FIG](http://www.php-fig.org/) - The PHP Framework Interoperability Group. +* [PHP FIG](https://www.php-fig.org/) - The PHP Framework Interoperability Group. * [PHP Mentoring](https://php-mentoring.org/) - Peer to peer PHP mentorship organization. * [PHP Package Development Standards](http://php-pds.com) - Package development standards for PHP. * [PHP School](https://www.phpschool.io/) - Open Source Learning for PHP. @@ -894,23 +834,25 @@ Various resources, such as books, websites and articles, for improving your PHP * [PHPTrends](https://phptrends.com/) - An overview of fastest growing PHP libraries. * [Securing PHP](http://securingphp.com/) - A newsletter about PHP security and library recommendations. * [Seven PHP](https://7php.com/) - A website that interviews members of the PHP community. +* [PHP Annotated Monthly](https://blog.jetbrains.com/phpstorm/category/php-annotated-monthly/) - A monthly digest of PHP news. -## Other Websites +### Other Websites *Useful websites related to web development.* * [Atlassian Git Tutorials](https://www.atlassian.com/git) - A series of Git tutorials. * [Hg Init](http://hginit.com/) - A series of Mercurial tutorials. -* [Semantic Versioning](http://semver.org/) - A website explaining semantic versioning. +* [Learning Linux](https://linuxjourney.com/) - A website for learning Linux. +* [Semantic Versioning](https://semver.org/) - A website explaining semantic versioning. * [Servers for Hackers](https://serversforhackers.com/) - A newsletter about server management. * [The Open Web Application Security Project (OWASP)](https://www.owasp.org/index.php/Main_Page) - An open software security community. * [WebSec IO](https://websec.io/) - A web security community resource. -## PHP Books +### PHP Books *Fantastic PHP-related books.* * [Functional Programming in PHP](https://www.functionalphp.com/) - This book will show you how to leverage these new PHP5.3+ features by understanding functional programming principles * [Grumpy PHPUnit](https://leanpub.com/grumpy-phpunit) - A book about unit testing with PHPUnit by Chris Hartjes. -* [Mastering Object-Orientated PHP](http://www.brandonsavage.net) - A book about object-orientated PHP by Brandon Savage. +* [Mastering Object-Orientated PHP](https://www.brandonsavage.net/) - A book about object-orientated PHP by Brandon Savage. * [Modern PHP New Features and Good Practices](http://shop.oreilly.com/product/0636920033868.do) - A book about new PHP features and best practices by Josh Lockhart. * [Modernizing Legacy Applications in PHP](https://leanpub.com/mlaphp) - A book about modernizing legacy PHP applications by Paul M. Jones. * [PHP 7 Upgrade Guide](https://leanpub.com/php7) - An ebook covering all of the features and changes in PHP 7 by Colin O'Dell. @@ -922,7 +864,7 @@ Various resources, such as books, websites and articles, for improving your PHP * [XML Parsing with PHP](https://www.phparch.com/books/xml-parsing-with-php/) - This book covers parsing and validating XML documents, leveraging XPath expressions, and working with namespaces as well as how to create and modify XML files programmatically. * [Domain-Driven Design in PHP](https://leanpub.com/ddd-in-php) - Real examples written in PHP showcasing DDD Architectural Styles. -## Other Books +### Other Books *Books related to general computing and web development.* * [Elasticsearch: The Definitive Guide](https://www.elastic.co/guide/index.html) - A guide to working with Elasticsearch by Clinton Gormley and Zachary Tong. @@ -934,7 +876,7 @@ Various resources, such as books, websites and articles, for improving your PHP * [Understanding Computation](http://computationbook.com) - A book about computation theory by Tom Stuart. * [Vagrant Cookbook](https://leanpub.com/vagrantcookbook) - A book about creating Vagrant environments by Erika Heidi. -## PHP Videos +### PHP Videos *Fantastic PHP-related videos.* * [Nomad PHP Lightning Talks](https://www.youtube.com/c/nomadphp) - 10 to 15 minute Lightning Talks by PHP community members. @@ -942,30 +884,31 @@ Various resources, such as books, websites and articles, for improving your PHP * [Programming with Anthony](https://www.youtube.com/playlist?list=PLM-218uGSX3DQ3KsB5NJnuOqPqc5CW2kW) - A video series by Anthony Ferrara. * [Taking PHP Seriously](https://www.infoq.com/presentations/php-history) - A talk outlining PHP's strengths by Keith Adams of Facebook. -## PHP Podcasts -*Podcasts with a main focus on PHP topics* +### PHP Podcasts +*Podcasts with a focus on PHP topics.* * [PHP Town Hall](https://phptownhall.com/) - A casual PHP podcast by Ben Edmunds and Phil Sturgeon. * [Voices of the ElePHPant](https://voicesoftheelephpant.com/) Interviews with the people that make the PHP community special. * [PHP Roundtable](https://www.phproundtable.com/) - The PHP Roundtable is a casual gathering of developers discussing topics that PHP nerds care about. -## PHP Reading +### PHP Reading *PHP-releated reading materials.* * [Composer Primer](https://daylerees.com/composer-primer/) - A Composer primer. * [Composer Stability Flags](https://igor.io/2013/02/07/composer-stability-flags.html) - An article about Composer stability flags. * [Composer Versioning](https://igor.io/2013/01/07/composer-versioning.html) - An article about Composer versioning. * [Create Your Own PHP Framework](http://fabien.potencier.org/create-your-own-framework-on-top-of-the-symfony2-components-part-1.html) - A series of articles on how to make your own PHP framework by Fabien Potencier. -* [Don't Worry About BREACH](http://blog.ircmaxell.com/2013/08/dont-worry-about-breach.html) - An article about the BREACH hack and CSRF tokens. +* [Don't Worry About BREACH](https://blog.ircmaxell.com/2013/08/dont-worry-about-breach.html) - An article about the BREACH hack and CSRF tokens. * [On PHP 5.3, Lambda Functions and Closures](http://fabien.potencier.org/on-php-5-3-lambda-functions-and-closures.html) - An article about lambda functions and closures. * [PHP Is Much Better Than You Think](http://fabien.potencier.org/php-is-much-better-than-you-think.html) - An article about the PHP language and ecosystem. * [PHP Package Checklist](http://phppackagechecklist.com/) - A checklist for successful PHP package development. -* [PHP Sucks! But I Like It!](http://blog.ircmaxell.com/2012/04/php-sucks-but-i-like-it.html) - An article about the pros and cons of PHP. -* [Preventing CSRF Attacks](http://blog.ircmaxell.com/2013/02/preventing-csrf-attacks.html) - An article on preventing CSRF attacks. -* [Seven Ways to Screw Up BCrypt](http://blog.ircmaxell.com/2012/12/seven-ways-to-screw-up-bcrypt.html) - An article about correct BCrypt implementation. +* [PHP Sucks! But I Like It!](https://blog.ircmaxell.com/2012/04/php-sucks-but-i-like-it.html) - An article about the pros and cons of PHP. +* [Preventing CSRF Attacks](https://blog.ircmaxell.com/2013/02/preventing-csrf-attacks.html) - An article on preventing CSRF attacks. +* [Seven Ways to Screw Up BCrypt](https://blog.ircmaxell.com/2012/12/seven-ways-to-screw-up-bcrypt.html) - An article about correct BCrypt implementation. +* [The 2018 Guide to Building Secure PHP Software](https://paragonie.com/blog/2017/12/2018-guide-building-secure-php-software) - A guide to building secure PHP software. * [Use Env](https://seancoates.com/blogs/use-env/) - An article about using the unix environment helper. -## PHP Internals Reading +### PHP Internals Reading *Reading materials related to the PHP internals or performance.* * [Disproving the Single Quotes Myth](http://nikic.github.io/2012/01/09/Disproving-the-Single-Quotes-Performance-Myth.html) - An article about performance of single and double quoted strings. @@ -982,9 +925,9 @@ Various resources, such as books, websites and articles, for improving your PHP * [Why Objects (Usually) Use Less Memory Than Arrays](https://gist.github.com/nikic/5015323) - An article about object and array internals. * [You're Being Lied To](http://blog.golemon.com/2007/01/youre-being-lied-to.html) - An article about internal ZVALs. * Collecting Garbage: [1](http://php.net/manual/en/features.gc.refcounting-basics.php) [2](http://php.net/manual/en/features.gc.collecting-cycles.php) [3](http://php.net/manual/en/features.gc.performance-considerations.php) - A series about the PHP garbage collection internals. -* PHP Source Code for Developers: [1](http://blog.ircmaxell.com/2012/03/phps-source-code-for-php-developers.html) [2](http://nikic.github.io/2012/03/16/Understanding-PHPs-internal-function-definitions.html) [3](http://blog.ircmaxell.com/2012/03/phps-source-code-for-php-developers_21.html) [4](http://nikic.github.io/2012/03/28/Understanding-PHPs-internal-array-implementation.html) - A series about the PHP source code. +* PHP Source Code for Developers: [1](https://blog.ircmaxell.com/2012/03/phps-source-code-for-php-developers.html) [2](http://nikic.github.io/2012/03/16/Understanding-PHPs-internal-function-definitions.html) [3](https://blog.ircmaxell.com/2012/03/phps-source-code-for-php-developers_21.html) [4](http://nikic.github.io/2012/03/28/Understanding-PHPs-internal-array-implementation.html) - A series about the PHP source code. -## PHP Magazines +### PHP Magazines *Fantastic PHP-related magazines.* * [php[architect]](https://www.phparch.com/magazine/) - A monthly magazine dedicated to PHP.