Merge branch 'master' into master

This commit is contained in:
Alexander Kartavenko 2024-01-05 17:01:26 +02:00 committed by GitHub
commit 259e9e872f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 240 additions and 253 deletions

10
.editorconfig Normal file
View File

@ -0,0 +1,10 @@
; This file is for unifying the coding style for different editors and IDEs.
; More information at https://editorconfig.org
root = true
[*]
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

View File

@ -15,7 +15,7 @@ jobs:
- name: Install Awesome Bot - name: Install Awesome Bot
run: gem install awesome_bot run: gem install awesome_bot
- name: Run Awesome Bot - name: Run Awesome Bot
run: awesome_bot README.md --request-delay 1 --allow-dupe --white-list igor.io,symfony,toranproxy.com,vagrantup.com,3v4l.org,voicesoftheelephpant.com,drupal.org,oreilly.com run: awesome_bot README.md --request-delay 1 --allow-dupe --white-list igor.io,symfony,toranproxy.com,vagrantup.com,3v4l.org,voicesoftheelephpant.com,drupal.org,oreilly.com,youtube.com,lumen.laravel.com
- uses: actions/upload-artifact@v1 - uses: actions/upload-artifact@v1
if: failure() if: failure()
with: with:

View File

@ -10,15 +10,15 @@ Self-promotion is frowned upon, so please consider seriously whether your projec
Also, please ensure your pull request adheres to the following guidelines: Also, please ensure your pull request adheres to the following guidelines:
* Software that is PHP 7.0+, Composer-installable, PSR compliant, semantically versioned, unit tested, actively maintained and well documented in English. * Software that is PHP 8.0+, Composer-installable, PSR compliant, semantically versioned, unit tested, actively maintained and well documented in English.
* Please search previous suggestions before making a new one, as yours may be a duplicate. * Please search previous suggestions before making a new one, as yours may be a duplicate and will be closed.
* Enter a meaningful pull request description. * Enter a meaningful pull request description.
* Please make an individual commit for each suggestion in a separate pull request.
* Put a link to each library in your pull request ticket so it's easier to review. * Put a link to each library in your pull request ticket so it's easier to review.
* Please make an individual commit for each suggestion in a separate pull request.
* Use the following format for libraries: \[LIBRARY\]\(LINK\) - DESCRIPTION. * 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. * 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. * 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 please.
* End all descriptions with a full stop/period. * End all descriptions with a full stop/period.
* Check your spelling and grammar. * Check your spelling and grammar.
* Make sure your text editor is set to remove trailing whitespace. * Make sure your text editor is set to remove trailing whitespace.

461
README.md
View File

@ -1,92 +1,92 @@
# Awesome PHP ![](https://github.com/ziadoz/awesome-php/workflows/Awesome%20Bot/badge.svg) # Awesome PHP ![](https://github.com/ziadoz/awesome-php/workflows/Awesome%20Bot/badge.svg)
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 and Collaborating ## 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. 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 ## Table of Contents
- [Awesome PHP](#awesome-php) - [Awesome PHP](#awesome-php)
- [Composer Repositories](#composer-repositories) - [Composer Repositories](#composer-repositories)
- [Dependency Management](#dependency-management) - [Dependency Management](#dependency-management)
- [Dependency Management Extras](#dependency-management-extras) - [Dependency Management Extras](#dependency-management-extras)
- [Frameworks](#frameworks) - [Frameworks](#frameworks)
- [Framework Extras](#framework-extras) - [Framework Extras](#framework-extras)
- [Content Management Systems](#content-management-systems-cms) - [Content Management Systems](#content-management-systems-cms)
- [Components](#components) - [Components](#components)
- [Micro Frameworks](#micro-frameworks) - [Micro Frameworks](#micro-frameworks)
- [Micro Framework Extras](#micro-framework-extras) - [Micro Framework Extras](#micro-framework-extras)
- [Routers](#routers) - [Routers](#routers)
- [Templating](#templating) - [Templating](#templating)
- [Static Site Generators](#static-site-generators) - [Static Site Generators](#static-site-generators)
- [HTTP](#http) - [HTTP](#http)
- [Scraping](#scraping) - [Scraping](#scraping)
- [Middlewares](#middlewares) - [Middlewares](#middlewares)
- [URL](#url) - [URL](#url)
- [Email](#email) - [Email](#email)
- [Files](#files) - [Files](#Files)
- [Streams](#streams) - [Streams](#streams)
- [Dependency Injection](#dependency-injection) - [Dependency Injection](#dependency-injection)
- [Imagery](#imagery) - [Imagery](#imagery)
- [Testing](#testing) - [Testing](#testing)
- [Continuous Integration](#continuous-integration) - [Continuous Integration](#continuous-integration)
- [Documentation](#documentation) - [Documentation](#documentation)
- [Security](#security) - [Security](#security)
- [Passwords](#passwords) - [Passwords](#passwords)
- [Code Analysis](#code-analysis) - [Code Analysis](#code-analysis)
- [Code Quality](#code-quality) - [Code Quality](#code-quality)
- [Static Analysis](#static-analysis) - [Static Analysis](#static-analysis)
- [Architectural](#architectural) - [Architectural](#architectural)
- [Debugging and Profiling](#debugging-and-profiling) - [Debugging and Profiling](#debugging-and-profiling)
- [Build Tools](#build-tools) - [Build Tools](#build-tools)
- [Task Runners](#task-runners) - [Task Runners](#task-runners)
- [Navigation](#navigation) - [Navigation](#navigation)
- [Asset Management](#asset-management) - [Asset Management](#asset-management)
- [Geolocation](#geolocation) - [Geolocation](#geolocation)
- [Date and Time](#date-and-time) - [Date and Time](#date-and-time)
- [Event](#event) - [Event](#event)
- [Logging](#logging) - [Logging](#logging)
- [E-commerce](#e-commerce) - [E-commerce](#e-commerce)
- [PDF](#pdf) - [PDF](#pdf)
- [Office](#office) - [Office](#office)
- [Database](#database) - [Database](#database)
- [Migrations](#migrations) - [Migrations](#migrations)
- [NoSQL](#nosql) - [NoSQL](#nosql)
- [Queue](#queue) - [Queue](#queue)
- [Search](#search) - [Search](#search)
- [Command Line](#command-line) - [Command Line](#command-line)
- [Authentication and Authorization](#authentication-and-authorization) - [Authentication and Authorization](#authentication-and-authorization)
- [Markup](#markup) - [Markup and CSS](#markup-and-css)
- [Strings](#strings) - [JSON](#json)
- [Numbers](#numbers) - [Strings](#strings)
- [Filtering and Validation](#filtering-and-validation) - [Numbers](#numbers)
- [API](#api) - [Filtering and Validation](#filtering-and-validation)
- [Caching](#caching) - [API](#api)
- [Data Structure and Storage](#data-structure-and-storage) - [Caching and Locking](#caching-and-locking)
- [Notifications](#notifications) - [Data Structure and Storage](#data-structure-and-storage)
- [Deployment](#deployment) - [Notifications](#notifications)
- [Internationalisation and Localisation](#internationalisation-and-localisation) - [Deployment](#deployment)
- [Serverless](#serverless) - [Internationalisation and Localisation](#internationalisation-and-localisation)
- [Configuration](#configuration) - [Serverless](#serverless)
- [Third Party APIs](#third-party-apis) - [Configuration](#configuration)
- [Extensions](#extensions) - [Third Party APIs](#third-party-apis)
- [Miscellaneous](#miscellaneous) - [Extensions](#extensions)
- [Miscellaneous](#miscellaneous)
- [Software](#software) - [Software](#software)
- [PHP Installation](#php-installation) - [PHP Installation](#php-installation)
- [Development Environment](#development-environment) - [Development Environment](#development-environment)
- [Virtual Machines](#virtual-machines) - [Virtual Machines](#virtual-machines)
- [Text Editors and IDEs](#text-editors-and-ides) - [Text Editors and IDEs](#text-editors-and-ides)
- [Web Applications](#web-applications) - [Web Applications](#web-applications)
- [Infrastructure](#infrastructure) - [Infrastructure](#infrastructure)
- [Resources](#resources) - [Resources](#resources)
- [PHP Websites](#php-websites) - [PHP Websites](#php-websites)
- [PHP Books](#php-books) - [PHP Books](#php-books)
- [PHP Videos](#php-videos) - [PHP Videos](#php-videos)
- [PHP Podcasts](#php-podcasts) - [PHP Podcasts](#php-podcasts)
- [PHP Newsletters](#php-newsletters) - [PHP Newsletters](#php-newsletters)
- [PHP Magazines](#php-magazines) - [PHP Reading](#php-reading)
- [PHP Reading](#php-reading) - [PHP Internals Reading](#php-internals-reading)
- [PHP Internals Reading](#php-internals-reading)
### Composer Repositories ### Composer Repositories
*Composer Repositories.* *Composer Repositories.*
@ -99,33 +99,37 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT
### Dependency Management ### Dependency Management
*Libraries for dependency and package management.* *Libraries for dependency and package management.*
* [Composer Installers](https://github.com/composer/installers) - A multi framework Composer library installer. * [Composer Installers](https://github.com/composer/installers) - A multi-framework Composer library installer.
* [Composer](https://getcomposer.org/) - A package and dependency manager. * [Composer](https://getcomposer.org/) - A package and dependency manager.
* [Melody](https://melody.sensiolabs.org/) - A tool to build one file Composer scripts. * [Phive](https://phar.io/) - A PHAR manager.
* [Pickle](https://github.com/FriendsOfPHP/pickle) - A PHP extension installer. * [Pickle](https://github.com/FriendsOfPHP/pickle) - A PHP extension installer.
### Dependency Management Extras ### Dependency Management Extras
*Extras related to dependency management.* *Extras related to dependency management.*
* [Composed](https://github.com/joshdifabio/composed) - A library to parse your project's Composer environment at runtime. * [Composed](https://github.com/joshdifabio/composed) - A library to parse your project's Composer environment at runtime.
* [Composer Merge Plugin](https://github.com/wikimedia/composer-merge-plugin) - A composer plugin to merge several composer.json files. * [Composer Merge Plugin](https://github.com/wikimedia/composer-merge-plugin) - A composer plugin to merge several `composer.json` files.
* [Composer Normalize](https://github.com/ergebnis/composer-normalize) - A plugin for normalizing `composer.json` files.
* [Composer Patches](https://github.com/cweagans/composer-patches) - A plugin for Composer to apply patches. * [Composer Patches](https://github.com/cweagans/composer-patches) - A plugin for Composer to apply patches.
* [Prestissimo](https://github.com/hirak/prestissimo) - A composer plugin which enables parallel install process. * [Composer Prefer Lowest Validator](https://github.com/dereuromark/composer-prefer-lowest) - A plugin to check if minimum dependencies can be installed and tested.
* [Composer Require Checker](https://github.com/maglnet/ComposerRequireChecker) - CLI tool to analyze composer dependencies and verify that no unknown symbols are used in the sources of a package.
* [Composer Unused](https://github.com/composer-unused/composer-unused) - A CLI Tool to scan for unused composer packages.
* [Repman](https://repman.io) - A private PHP package repository manager and Packagist proxy. * [Repman](https://repman.io) - A private PHP package repository manager and Packagist proxy.
* [Satis](https://github.com/composer/satis) - A static Composer repository generator. * [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. * [Tooly](https://github.com/tommy-muehle/tooly-composer-script) - A library to manage PHAR files in a project using Composer.
* [Toran Proxy](https://toranproxy.com) - A static Composer repository and proxy. * [Toran Proxy](https://toranproxy.com) - A Composer proxy for speed and reliability. (:warning: Toran Proxy is being phased out.)
### Frameworks ### Frameworks
*Web development frameworks.* *Web development frameworks.*
* [CakePHP](https://cakephp.org/) - A rapid application development framework. * [CakePHP](https://cakephp.org/) - A rapid application development framework.
* [CodeIgniter](https://codeigniter.com/) - A powerful PHP framework with a very small footprint.
* [Laminas](https://getlaminas.org/) - A framework comprised of individual components (previously Zend Framework). * [Laminas](https://getlaminas.org/) - A framework comprised of individual components (previously Zend Framework).
* [Laravel](https://laravel.com/) - A web application framework with expressive, elegant syntax. * [Laravel](https://laravel.com/) - A web application framework with expressive, elegant syntax.
* [Nette](https://nette.org) - A web framework comprised of mature components. * [Nette](https://nette.org) - A web framework comprised of mature components.
* [Phalcon](https://phalcon.io/en-us) - A framework implemented as a C extension. * [Phalcon](https://phalcon.io/en-us) - A framework implemented as a C extension.
* [Spiral](https://spiral.dev/) - A high performance PHP/Go framework. * [Spiral](https://spiral.dev/) - A high-performance PHP/Go framework.
* [Symfony](https://symfony.com/) - A set of reuseable components and a web framework. * [Symfony](https://symfony.com/) - A set of reusable components and a web framework.
* [Yii2](https://github.com/yiisoft/yii2/) - A fast, secure, and efficient web framework. * [Yii2](https://github.com/yiisoft/yii2/) - A fast, secure, and efficient web framework.
### Framework Extras ### Framework Extras
@ -133,34 +137,33 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT
* [CakePHP CRUD](https://github.com/friendsofcake/crud) - A Rapid Application Development (RAD) plugin for CakePHP. * [CakePHP CRUD](https://github.com/friendsofcake/crud) - A Rapid Application Development (RAD) plugin for CakePHP.
* [Knp RAD Components](https://rad.knplabs.com/) - A set of Rapid Application Development (RAD) components for Symfony. * [Knp RAD Components](https://rad.knplabs.com/) - A set of Rapid Application Development (RAD) components for Symfony.
* [LaravelS](https://github.com/hhxsv5/laravel-s) - Glue for using Swoole in Laravel or Lumen. * [LaravelS](https://github.com/hhxsv5/laravel-s) - An out-of-the-box adapter between Laravel/Lumen and Swoole.
* [Symfony CMF](https://github.com/symfony-cmf/symfony-cmf) - A Content Management Framework to create custom CMS. * [Livewire](https://livewire.laravel.com/) - Powerful, dynamic, front-end UIs without leaving PHP.
### Content Management Systems (CMS) ### Content Management Systems (CMS)
*Tools for managing digital content.* *Tools for managing digital content.*
* [Backdrop](https://backdropcms.org) - A CMS targeting small-to-medium sized business and non-profits (a fork of Drupal). * [Backdrop](https://backdropcms.org) - A CMS targeting small-to-medium-sized business and non-profits (a fork of Drupal).
* [Concrete5](https://www.concrete5.org/) - A CMS targeting users with a minimum of technical skills. * [Concrete5](https://www.concretecms.com/) - A CMS targeting users with a minimum of technical skills.
* [CraftCMS](https://github.com/craftcms/cms) - A flexible, user-friendly CMS for creating custom digital experiences on the web and beyond. * [CraftCMS](https://github.com/craftcms/cms) - A flexible, user-friendly CMS for creating custom digital experiences on the web and beyond.
* [Drupal](https://www.drupal.org) - An enterprise level CMS. * [Drupal](https://www.drupal.org) - An enterprise level CMS.
* [Grav](https://github.com/getgrav/grav) - A modern flat-file CMS. * [Grav](https://github.com/getgrav/grav) - A modern flat-file CMS.
* [Joomla](https://www.joomla.org/) - Another leading CMS. * [Joomla](https://www.joomla.org/) - Another leading CMS.
* [Kirby](https://getkirby.com/) - A flat-file CMS that adapts to any project. * [Kirby](https://getkirby.com/) - A flat-file CMS that adapts to any project.
* [Magento](https://magento.com/) - The most popular ecommerce platform. * [Magento](https://business.adobe.com/products/magento/magento-commerce.html) - The most popular e-commerce platform.
* [Moodle](https://moodle.org/) - An open-source learning platform. * [Moodle](https://moodle.org/) - An open-source learning platform.
* [Pico CMS](http://picocms.org/) - A stupidly simple, blazing fast, flat file CMS. * [Pico CMS](https://picocms.org/) - A stupidly simple, blazing fast, flat file CMS.
* [Statamic](https://statamic.com/) - Build beautiful, easy to manage websites. * [Statamic](https://statamic.com/) - Build beautiful, easy-to-manage websites.
* [WordPress](https://wordpress.org/) - A blogging platform and CMS. * [WordPress](https://wordpress.org/) - A blogging platform and CMS.
### Components ### Components
*Standalone components from web development frameworks and development groups.* *Standalone components from web development frameworks and development groups.*
* [Aura](http://auraphp.com/) - Independent components, fully decoupled from each other and from any framework. * [Aura](https://auraphp.com/) - Independent components, fully decoupled from each other and from any framework.
* [CakePHP Plugins](https://plugins.cakephp.org/) - A directory of CakePHP plugins. * [CakePHP Plugins](https://plugins.cakephp.org/) - A directory of CakePHP plugins.
* [Hoa Project](https://hoa-project.net/En/) - Another package of PHP components.
* [Laravel Components](https://github.com/illuminate) - The Laravel Framework components. * [Laravel Components](https://github.com/illuminate) - The Laravel Framework components.
* [League of Extraordinary Packages](https://thephpleague.com/) - A PHP package development group. * [League of Extraordinary Packages](https://thephpleague.com/) - A PHP package development group.
* [Spatie Open Source](https://spatie.be/open-source) - A collection of open source PHP and Laravel packages. * [Spatie Open Source](https://spatie.be/open-source) - A collection of open-source PHP and Laravel packages.
* [Symfony Components](https://symfony.com/components) - The components that make Symfony. * [Symfony Components](https://symfony.com/components) - The components that make Symfony.
* [Laminas Components](https://docs.laminas.dev/components/) - The components that make the Laminas Framework. * [Laminas Components](https://docs.laminas.dev/components/) - The components that make the Laminas Framework.
@ -168,7 +171,7 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT
*Micro frameworks and routers.* *Micro frameworks and routers.*
* [Laravel-Zero](https://laravel-zero.com) - A micro-framework for console applications. * [Laravel-Zero](https://laravel-zero.com) - A micro-framework for console applications.
* [Lumen](https://lumen.laravel.com) - A micro-framework by Laravel. * [Lumen](https://lumen.laravel.com/) - A micro-framework by Laravel.
* [Mezzio](https://getexpressive.org/) - A micro-framework by Laminas. * [Mezzio](https://getexpressive.org/) - A micro-framework by Laminas.
* [Radar](https://github.com/radarphp/Radar.Adr) - An Action-Domain-Responder implementation for PHP. * [Radar](https://github.com/radarphp/Radar.Adr) - An Action-Domain-Responder implementation for PHP.
* [Silly](https://github.com/mnapoli/silly) - A micro-framework for CLI applications. * [Silly](https://github.com/mnapoli/silly) - A micro-framework for CLI applications.
@ -193,6 +196,7 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT
### Templating ### Templating
*Libraries and tools for templating and lexing.* *Libraries and tools for templating and lexing.*
* [Latte](https://latte.nette.org/) - The safest and truly intuitive templates for PHP.
* [MtHaml](https://github.com/arnaud-lb/MtHaml) - A PHP implementation of the HAML template language. * [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. * [Mustache](https://github.com/bobthecow/mustache.php) - A PHP implementation of the Mustache template language.
* [PHPTAL](https://phptal.org/) - A PHP implementation of the [TAL](https://en.wikipedia.org/wiki/Template_Attribute_Language) templating language. * [PHPTAL](https://phptal.org/) - A PHP implementation of the [TAL](https://en.wikipedia.org/wiki/Template_Attribute_Language) templating language.
@ -204,7 +208,7 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT
*Tools for pre-processing content to generate web pages.* *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. * [Couscous](http://couscous.io) - Couscous turns Markdown documentation into beautiful websites. It's GitHub Pages on steroids.
* [Jigsaw](http://jigsaw.tighten.co/) - Simple static sites with Laravel's Blade. * [Jigsaw](https://jigsaw.tighten.com/) - Simple static sites with Laravel's Blade.
* [Sculpin](https://sculpin.io) - A tool that converts Markdown and Twig into static 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. * [Spress](http://spress.yosymfony.com) - An extensible tool that converts Markdown and Twig into HTML.
@ -216,7 +220,7 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT
* [HTTPlug](http://httplug.io) - An HTTP client abstraction without binding to a specific implementation. * [HTTPlug](http://httplug.io) - An HTTP client abstraction without binding to a specific implementation.
* [Nyholm PSR-7](https://github.com/Nyholm/psr7) - A super lightweight PSR-7 implementation. Very strict and very fast. * [Nyholm PSR-7](https://github.com/Nyholm/psr7) - A super lightweight PSR-7 implementation. Very strict and very fast.
* [PHP VCR](https://php-vcr.github.io/) - A library for recording and replaying HTTP requests. * [PHP VCR](https://php-vcr.github.io/) - A library for recording and replaying HTTP requests.
* [Requests](https://github.com/rmccue/Requests) - A simple HTTP library. * [Requests](https://github.com/WordPress/Requests) - A simple HTTP library.
* [Retrofit](https://github.com/tebru/retrofit-php) - A library to ease creation of REST API clients. * [Retrofit](https://github.com/tebru/retrofit-php) - A library to ease creation of REST API clients.
* [Symfony HTTP Client](https://github.com/symfony/http-client) - A component to fetch HTTP resources synchronously or asynchronously. * [Symfony HTTP Client](https://github.com/symfony/http-client) - A component to fetch HTTP resources synchronously or asynchronously.
* [Laminas Diactoros](https://github.com/laminas/laminas-diactoros) - PSR-7 HTTP Message implementation. * [Laminas Diactoros](https://github.com/laminas/laminas-diactoros) - PSR-7 HTTP Message implementation.
@ -224,7 +228,8 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT
### Scraping ### Scraping
*Libraries for scraping websites.* *Libraries for scraping websites.*
* [DiDOM](https://github.com/Imangazaliev/DiDOM) - A super fast HTML scrapper and parser. * [Chrome PHP](https://github.com/chrome-php/chrome) - Instrument headless Chrome/Chromium instances from PHP.
* [DiDOM](https://github.com/Imangazaliev/DiDOM) - A super-fast HTML scrapper and parser.
* [Embed](https://github.com/oscarotero/Embed) - An information extractor from any web service or page. * [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. * [Goutte](https://github.com/FriendsOfPHP/Goutte) - A simple web scraper.
* [Symfony Panther](https://github.com/symfony/panther) - A browser testing and web crawling library for PHP and Symfony. * [Symfony Panther](https://github.com/symfony/panther) - A browser testing and web crawling library for PHP and Symfony.
@ -256,7 +261,7 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT
* [Mautic](https://github.com/mautic/mautic) - Email marketing automation * [Mautic](https://github.com/mautic/mautic) - Email marketing automation
* [PHPMailer](https://github.com/PHPMailer/PHPMailer) - Another mailer solution. * [PHPMailer](https://github.com/PHPMailer/PHPMailer) - Another mailer solution.
* [PHP IMAP](https://github.com/barbushin/php-imap) - A library to access mailboxes via POP3, IMAP and NNTP. * [PHP IMAP](https://github.com/barbushin/php-imap) - A library to access mailboxes via POP3, IMAP and NNTP.
* [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](https://mailchimp.com/features/transactional-email/). * [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 [MailChimp](https://mailchimp.com/features/transactional-email/).
* [SwiftMailer](https://swiftmailer.symfony.com) - A mailer solution. * [SwiftMailer](https://swiftmailer.symfony.com) - A mailer solution.
* [Symfony Mailer](https://github.com/symfony/mailer) - A powerful library for creating and sending emails. * [Symfony Mailer](https://github.com/symfony/mailer) - A powerful library for creating and sending emails.
@ -266,14 +271,13 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT
* [CSV](https://github.com/thephpleague/csv) - A CSV data manipulation library. * [CSV](https://github.com/thephpleague/csv) - A CSV data manipulation library.
* [Flysystem](https://github.com/thephpleague/Flysystem) - Abstraction for local and remote filesystems. * [Flysystem](https://github.com/thephpleague/Flysystem) - Abstraction for local and remote filesystems.
* [Gaufrette](https://github.com/KnpLabs/Gaufrette) - A filesystem abstraction layer. * [Gaufrette](https://github.com/KnpLabs/Gaufrette) - A filesystem abstraction layer.
* [Hoa Mime](https://github.com/hoaproject/Mime) - Another MIME detection library.
* [PHP FFmpeg](https://github.com/PHP-FFmpeg/PHP-FFmpeg/) - A wrapper for the [FFmpeg](https://www.ffmpeg.org/) video library. * [PHP FFmpeg](https://github.com/PHP-FFmpeg/PHP-FFmpeg/) - A wrapper for the [FFmpeg](https://www.ffmpeg.org/) video library.
* [UnifiedArchive](https://github.com/wapmorgan/UnifiedArchive) - A unified reader and writer of compressed archives. * [UnifiedArchive](https://github.com/wapmorgan/UnifiedArchive) - A unified reader and writer of compressed archives.
### Streams ### Streams
*Libraries for working with streams.* *Libraries for working with streams.*
* [ByteStream](https://amphp.org/byte-stream/) - An asynchronous stream abstraction. * [ByteStream](https://amphp.org/byte-stream) - An asynchronous stream abstraction.
* [Streamer](https://github.com/fzaninotto/Streamer) - A simple object-orientated stream wrapper library. * [Streamer](https://github.com/fzaninotto/Streamer) - A simple object-orientated stream wrapper library.
### Dependency Injection ### Dependency Injection
@ -308,16 +312,17 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT
* [Behat](https://docs.behat.org/en/latest/) - A behaviour driven development (BDD) testing framework. * [Behat](https://docs.behat.org/en/latest/) - A behaviour driven development (BDD) testing framework.
* [Codeception](https://github.com/Codeception/Codeception) - A full stack testing framework. * [Codeception](https://github.com/Codeception/Codeception) - A full stack testing framework.
* [Faker](https://github.com/fakerphp/faker) - A fake data generator library. * [Faker](https://github.com/fakerphp/faker) - A fake data generator library.
* [Foundry](https://github.com/zenstruck/foundry) - A fixture factory generation library for Doctrine.
* [HTTP Mock](https://github.com/InterNations/http-mock) - A library for mocking HTTP requests in unit tests. * [HTTP Mock](https://github.com/InterNations/http-mock) - A library for mocking HTTP requests in unit tests.
* [Infection](https://github.com/infection/infection) - An AST-based PHP Mutation testing framework. * [Infection](https://github.com/infection/infection) - An AST-based PHP Mutation testing framework.
* [Kahlan](https://github.com/kahlan/kahlan) - Full stack Unit/BDD testing framework with built-in stub, mock and code-coverage support. * [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. * [Mink](https://mink.behat.org/en/latest/) - Web acceptance testing.
* [Mockery](https://github.com/mockery/mockery) - A mock object library for testing. * [Mockery](https://github.com/mockery/mockery) - A mock object library for testing.
* [ParaTest](https://github.com/paratestphp/paratest) - A parallel testing library for PHPUnit. * [ParaTest](https://github.com/paratestphp/paratest) - A parallel testing library for PHPUnit.
* [Pest](https://pestphp.com/) - A testing framework with a focus on simplicity. * [Pest](https://pestphp.com/) - A testing framework with a focus on simplicity.
* [Peridot](https://github.com/peridot-php/peridot) - An event driven test framework. * [Peridot](https://github.com/peridot-php/peridot) - An event-driven test framework.
* [Phake](https://github.com/mlively/Phake) - Another mock object library for testing. * [Phake](https://github.com/phake/phake) - Another mock object library for testing.
* [Pho](https://github.com/danielstjules/pho) - Another behaviour driven development testing framework. * [Pho](https://github.com/danielstjules/pho) - Another behavior-driven development testing framework.
* [PHP-Mock](https://github.com/php-mock/php-mock) - A mock library for built-in PHP functions (e.g. time()). * [PHP-Mock](https://github.com/php-mock/php-mock) - A mock library for built-in PHP functions (e.g. time()).
* [PHP MySQL Engine](https://github.com/vimeo/php-mysql-engine) - A MySQL engine written in pure PHP. * [PHP MySQL Engine](https://github.com/vimeo/php-mysql-engine) - A MySQL engine written in pure PHP.
* [PHPSpec](https://github.com/phpspec/phpspec) - A design by specification unit testing library. * [PHPSpec](https://github.com/phpspec/phpspec) - A design by specification unit testing library.
@ -330,22 +335,23 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT
*Libraries and applications for continuous integration.* *Libraries and applications for continuous integration.*
* [CircleCI](https://circleci.com) - A continuous integration platform. * [CircleCI](https://circleci.com) - A continuous integration platform.
* [GitlabCi](https://about.gitlab.com/stages-devops-lifecycle/continuous-integration/) - Let GitLab CI test, build, deploy your code. TravisCi like. * [GitlabCi](https://about.gitlab.com/solutions/continuous-integration/) - Let GitLab CI test, build, deploy your code. TravisCi like.
* [Jenkins](https://www.jenkins.io/) - A continuous integration platform with [PHP support](https://www.jenkins.io/solutions/php/). * [Jenkins](https://www.jenkins.io/) - A continuous integration platform with [PHP support](https://www.jenkins.io/solutions/php/).
* [JoliCi](https://github.com/jolicode/JoliCi) - A continuous integration client written in PHP and powered by Docker. * [JoliCi](https://github.com/jolicode/JoliCi) - A continuous integration client written in PHP and powered by Docker.
* [PHPCI](https://github.com/dancryer/phpci) - An open source continuous integration platform for PHP. * [PHPCI](https://github.com/dancryer/phpci) - An open-source continuous integration platform for PHP.
* [SemaphoreCI](https://semaphoreci.com/) - A continuous integration platform for open source and private projects. * [SemaphoreCI](https://semaphoreci.com) - A continuous integration platform for open-source and private projects.
* [Shippable](https://www.shippable.com/) - A Docker based continious integration platform for open source and private projects. * [Shippable](https://jfrog.com/blog/weve-acquired-shippable-to-complete-devops-pipeline-automation-from-code-to-production/) - A Docker based continuous integration platform for open source and private projects.
* [Travis CI](https://travis-ci.org/) - A continuous integration platform. * [Travis CI](https://www.travis-ci.com) - A continuous integration platform.
* [Setup PHP](https://github.com/shivammathur/setup-php) - A GitHub Action for PHP. * [Setup PHP](https://github.com/shivammathur/setup-php) - A GitHub Action for PHP.
### Documentation ### Documentation
*Libraries for generating project documentation.* *Libraries for generating project documentation.*
* [APIGen](https://github.com/apigen/apigen) - Another API documentation generator. * [APIGen](https://github.com/apigen/apigen) - Another API documentation generator.
* [daux.io](https://github.com/dauxio/daux.io) - A documentation generator which uses Markdown files. * [daux.io](https://github.com/dauxio/daux.io) - A documentation generator that uses Markdown files.
* [PHP Documentor 2](https://github.com/phpDocumentor/phpDocumentor) - A documentation generator. * [PHP Documentor 2](https://github.com/phpDocumentor/phpDocumentor) - A documentation generator.
* [phpDox](http://phpdox.de/) - A documentation generator for PHP projects (that is not limited to API documentation). * [phpDox](https://phpdox.net/) - A documentation generator for PHP projects (that is not limited to API documentation).
* [zircote/swagger-php](https://github.com/zircote/swagger-php) - Generate OpenAPI documentation for your RESTful API.
### Security ### Security
*Libraries for generating secure random numbers, encrypting data and scanning and testing for vulnerabilities.* *Libraries for generating secure random numbers, encrypting data and scanning and testing for vulnerabilities.*
@ -354,17 +360,17 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT
* [HTML Purifier](https://github.com/ezyang/htmlpurifier) - A standards compliant HTML filter. * [HTML Purifier](https://github.com/ezyang/htmlpurifier) - A standards compliant HTML filter.
* [IniScan](https://github.com/psecio/iniscan) - A tool that scans PHP INI files for security. * [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. * [Optimus](https://github.com/jenssegers/optimus) - Id obfuscation based on Knuth's multiplicative hashing method.
* [PHPGGC](https://github.com/ambionics/phpggc) - A library of PHP unserializeable payloads along with a tool to generate them. * [PHPGGC](https://github.com/ambionics/phpggc) - A library of PHP unserializable payloads along with a tool to generate them.
* [PHP Encryption](https://github.com/defuse/php-encryption) - Secure PHP Encryption Library. * [PHP Encryption](https://github.com/defuse/php-encryption) - Secure PHP Encryption Library.
* [PHP SSH](https://github.com/Herzult/php-ssh) - An experimental object orientated SSH wrapper library. * [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. * [PHPSecLib](https://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()` * [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. * [RandomLib](https://github.com/ircmaxell/RandomLib) - A library for generating random numbers and strings.
* [Symfony Security Monitoring](https://security.symfony.com/) - A web tool to check your Composer dependencies for security advisories, previously known as "SensioLabs Security Check". * [Symfony Security Monitoring](https://security.symfony.com/) - A web tool to check your Composer dependencies for security advisories, previously known as "SensioLabs Security Check".
* [SQLMap](https://github.com/sqlmapproject/sqlmap) - An automatic SQL injection and database takeover tool. * [SQLMap](https://github.com/sqlmapproject/sqlmap) - An automatic SQL injection and database takeover tool.
* [TCrypto](https://github.com/timoh6/TCrypto) - A simple encrypted key-value storage library. * [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. * [VAddy](https://vaddy.net/) - A continuous security testing platform for web applications.
* [Zap](https://owasp.org/www-project-zap/) - An integrated penetration testing tool for web applications. * [Zap](https://github.com/OWASP/www-project-zap) - An integrated penetration testing tool for web applications.
### Passwords ### Passwords
*Libraries and tools for working with and storing passwords.* *Libraries and tools for working with and storing passwords.*
@ -392,13 +398,14 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT
* [Qafoo Quality Analyzer](https://github.com/Qafoo/QualityAnalyzer) - A tool to visualize metrics and source code. * [Qafoo Quality Analyzer](https://github.com/Qafoo/QualityAnalyzer) - A tool to visualize metrics and source code.
* [Rector](https://github.com/rectorphp/rector) - A tool to upgrade and refactor code. * [Rector](https://github.com/rectorphp/rector) - A tool to upgrade and refactor code.
* [Scrutinizer](https://scrutinizer-ci.com/) - A web tool to [scrutinise PHP code](https://github.com/scrutinizer-ci/php-analyzer). * [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. * [UBench](https://github.com/devster/ubench) - A simple micro-benchmark library.
### Code Quality ### Code Quality
*Libraries for managing code quality, formatting and linting.* *Libraries for managing code quality, formatting and linting.*
* [CaptainHook](https://github.com/captainhookphp/captainhook) - An easy-to-use and flexible Git hook library.
* [PHP CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) - A library that detects PHP, CSS and JS coding standard violations. * [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 CS Fixer](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer) - A coding standards fixer library.
* [PHP Mess Detector](https://github.com/phpmd/phpmd) - A library that scans code for bugs, sub-optimal code, unused parameters and more. * [PHP Mess Detector](https://github.com/phpmd/phpmd) - 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. * [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. * [PHPCPD](https://github.com/sebastianbergmann/phpcpd) - A library that detects copied and pasted code.
@ -407,12 +414,12 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT
*Libraries for performing static analysis of PHP code.* *Libraries for performing static analysis of PHP code.*
* [Exakat](https://github.com/exakat/exakat) - A static analysis engine for PHP. * [Exakat](https://github.com/exakat/exakat) - A static analysis engine for PHP.
* [Deptrac](https://github.com/sensiolabs-de/deptrac) - A static code analysis tool that helps to enforce rules for dependencies between software layers. * [Deptrac](https://github.com/qossmic/deptrac) - A static code analysis tool that helps to enforce rules for dependencies between software layers.
* [Mondrian](https://github.com/Trismegiste/Mondrian) - A code analysis tool using Graph Theory. * [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. * [phan](https://github.com/phan/phan) - A static analyzer based on PHP 7+ and the php-ast extension.
* [PHP Architecture Tester](https://github.com/carlosas/phpat) - Easy to use architecture testing tool for PHP. * [PHP Architecture Tester](https://github.com/carlosas/phpat) - Easy-to-use architecture testing tool for PHP.
* [PHPCompatibility](https://github.com/PHPCompatibility/PHPCompatibility) - A PHP compatibility checker for PHP CodeSniffer. * [PHPCompatibility](https://github.com/PHPCompatibility/PHPCompatibility) - A PHP compatibility checker for PHP CodeSniffer.
* [PhpDependencyAnalysis](https://github.com/mamuz/PhpDependencyAnalysis) - A tool to create customisable dependency graphs. * [PhpDependencyAnalysis](https://github.com/mamuz/PhpDependencyAnalysis) - A tool to create customizable dependency graphs.
* [PHP Metrics](https://github.com/phpmetrics/PhpMetrics) - A static metric library. * [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 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. * [PHPStan](https://github.com/phpstan/phpstan) - A PHP Static Analysis Tool.
@ -421,14 +428,14 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT
### Architectural ### Architectural
*Libraries related to design patterns, programming approaches and ways to organize code.* *Libraries related to design patterns, programming approaches and ways to organize code.*
* [Design Patterns PHP](https://github.com/domnikl/DesignPatternsPHP) - A repository of software patterns implemented in PHP. * [Design Patterns PHP](https://github.com/DesignPatternsPHP/DesignPatternsPHP ) - A repository of software patterns implemented in PHP.
* [Finite](https://yohan.giarel.li/Finite/) - A simple PHP finite state machine. * [Finite](https://yohan.giarel.li/Finite/) - A simple PHP finite state machine.
* [Functional PHP](https://github.com/lstrojny/functional-php) - A functional programming library. * [Functional PHP](https://github.com/lstrojny/functional-php) - A functional programming library.
* [Iter](https://github.com/nikic/iter) - A library that provides iteration primitives using generators. * [Iter](https://github.com/nikic/iter) - A library that provides iteration primitives using generators.
* [Patchwork](http://patchwork2.org/) - A library for redefining userland functions. * [IterTools PHP](https://github.com/markrogoyski/itertools-php) - A library that provides functionality for working with iterable entities (similar to itertools library in Python).
* [Patchwork](https://patchwork2.org/) - A library for redefining userland functions.
* [Pipeline](https://github.com/thephpleague/pipeline) - A pipeline pattern implementation. * [Pipeline](https://github.com/thephpleague/pipeline) - A pipeline pattern implementation.
* [Porter](https://github.com/ScriptFUSION/Porter) - Data import abstraction library for consuming Web APIs and other data sources. * [Porter](https://github.com/ScriptFUSION/Porter) - Data import abstraction library for consuming Web APIs and other data sources.
* [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. * [RulerZ](https://github.com/K-Phoen/rulerz) - A powerful rule engine and implementation of the Specification pattern.
### Debugging and Profiling ### Debugging and Profiling
@ -436,9 +443,10 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT
* [APM](https://pecl.php.net/package/APM) - Monitoring extension collecting errors and statistics into SQLite/MySQL/StatsD. * [APM](https://pecl.php.net/package/APM) - Monitoring extension collecting errors and statistics into SQLite/MySQL/StatsD.
* [Barbushin PHP Console](https://github.com/barbushin/php-console) - Another web debugging console using Google Chrome. * [Barbushin PHP Console](https://github.com/barbushin/php-console) - Another web debugging console using Google Chrome.
* [Blackfire.io](https://blackfire.io) - A low-overhead code profiler. * [Blackfire.io](https://www.blackfire.io) - A low-overhead code profiler.
* [Kint](https://github.com/kint-php/kint) - A debugging and profiling tool. * [Kint](https://github.com/kint-php/kint) - A debugging and profiling tool.
* [PCOV](https://github.com/krakjoe/pcov) - A self contained code coverage compatible driver. * [Metrics](https://github.com/beberlei/metrics) - A simple metrics API library.
* [PCOV](https://github.com/krakjoe/pcov) - A self-contained code coverage compatible driver.
* [PHP Console](https://github.com/Seldaek/php-console) - A web debugging console. * [PHP Console](https://github.com/Seldaek/php-console) - A web debugging console.
* [PHP Debug Bar](http://phpdebugbar.com/) - A debugging toolbar. * [PHP Debug Bar](http://phpdebugbar.com/) - A debugging toolbar.
* [PHPBench](https://github.com/phpbench/phpbench) - A benchmarking Framework. * [PHPBench](https://github.com/phpbench/phpbench) - A benchmarking Framework.
@ -446,7 +454,7 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT
* [Symfony VarDumper](https://github.com/symfony/var-dumper) - A variable dumper component. * [Symfony VarDumper](https://github.com/symfony/var-dumper) - A variable dumper component.
* [Tideways.io](https://tideways.com/) - Monitoring and profiling tool. * [Tideways.io](https://tideways.com/) - Monitoring and profiling tool.
* [Tracy](https://github.com/nette/tracy) - A simple error detection, logging and time measuring library. * [Tracy](https://github.com/nette/tracy) - A simple error detection, logging and time measuring library.
* [Whoops](https://github.com/filp/whoops) - A pretty error handling library. * [Whoops](https://github.com/filp/whoops) - A pretty error-handling library.
* [xDebug](https://github.com/xdebug/xdebug) - A debug and profile tool for PHP. * [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. * [XHProf](https://github.com/phacility/xhprof) - A profiling tool originally developed by Facebook.
* [Z-Ray](https://www.zend.com/products/z-ray) - A debug and profile tool for Zend Server. * [Z-Ray](https://www.zend.com/products/z-ray) - A debug and profile tool for Zend Server.
@ -457,6 +465,7 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT
* [Box](https://github.com/box-project/box) - A utility to build PHAR files. * [Box](https://github.com/box-project/box) - A utility to build PHAR files.
* [Construct](https://github.com/jonathantorres/construct) - A PHP project/micro-package generator. * [Construct](https://github.com/jonathantorres/construct) - A PHP project/micro-package generator.
* [Phing](https://www.phing.info/) - A PHP project build system inspired by Apache Ant. * [Phing](https://www.phing.info/) - A PHP project build system inspired by Apache Ant.
* [RMT](https://github.com/liip/RMT) - A library for versioning and releasing software.
### Task Runners ### Task Runners
*Libraries for automating and running tasks.* *Libraries for automating and running tasks.*
@ -476,13 +485,14 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT
*Tools for managing, compressing and minifying website assets.* *Tools for managing, compressing and minifying website assets.*
* [JShrink](https://github.com/tedious/JShrink) - A JavaScript minifier library. * [JShrink](https://github.com/tedious/JShrink) - A JavaScript minifier library.
* [Laravel Mix](https://github.com/JeffreyWay/laravel-mix) - An elegant wrapper around Webpack for the 80% use case. * [Laravel Mix](https://github.com/laravel-mix/laravel-mix ) - An elegant wrapper around Webpack for the 80% use case.
* [Symfony Asset](https://github.com/symfony/asset) - Manages URL generation and versioning of web assets. * [Symfony Asset](https://github.com/symfony/asset) - Manages URL generation and versioning of web assets.
* [Symfony Encore](https://github.com/symfony/webpack-encore) - A simple but powerful API for processing and compiling assets built around Webpack. * [Symfony Encore](https://github.com/symfony/webpack-encore) - A simple but powerful API for processing and compiling assets built around Webpack.
### Geolocation ### Geolocation
*Libraries for geocoding addresses and working with latitudes and longitudes.* *Libraries for geocoding addresses and working with latitudes and longitudes.*
* [Country List](https://github.com/umpirsky/country-list) - A list of all countries with names and ISO 3166-1 codes.
* [GeoCoder](https://geocoder-php.org/) - A geocoding library. * [GeoCoder](https://geocoder-php.org/) - A geocoding library.
* [GeoJSON](https://github.com/jmikola/geojson) - A GeoJSON implementation. * [GeoJSON](https://github.com/jmikola/geojson) - A GeoJSON implementation.
* [GeoTools](https://github.com/thephpleague/geotools) - A library of geo-related tools. * [GeoTools](https://github.com/thephpleague/geotools) - A library of geo-related tools.
@ -495,7 +505,7 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT
* [Carbon](https://github.com/briannesbitt/Carbon) - A simple DateTime API extension. * [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. * [Chronos](https://github.com/cakephp/chronos) - A DateTime API extension supporting both mutable and immutable date/time.
* [Moment.php](https://github.com/fightbulc/moment.php) - Moment.js inspired PHP DateTime handler with i18n support. * [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. * [Yasumi](https://github.com/azuyalabs/yasumi) - A library to help you calculate the dates and names of holidays.
### Event ### Event
*Libraries that are event-driven or implement non-blocking event loops.* *Libraries that are event-driven or implement non-blocking event loops.*
@ -505,8 +515,7 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT
* [Elephant.io](https://github.com/Wisembly/Elephant.io) - Yet another web socket library. * [Elephant.io](https://github.com/Wisembly/Elephant.io) - Yet another web socket library.
* [Evenement](https://github.com/igorw/evenement) - An event dispatcher library. * [Evenement](https://github.com/igorw/evenement) - An event dispatcher library.
* [Event](https://github.com/thephpleague/event) - An event library with a focus on domain events. * [Event](https://github.com/thephpleague/event) - An event library with a focus on domain events.
* [Hoa EventSource](https://github.com/hoaproject/Eventsource) - An event source library. * [Pawl](https://github.com/ratchetphp/Pawl) - An asynchronous web socket client.
* [Hoa WebSocket](https://github.com/hoaproject/Websocket) - Another web socket library.
* [Prooph Event Store](https://github.com/prooph/event-store) - An event source component to persist event messages * [Prooph Event Store](https://github.com/prooph/event-store) - An event source component to persist event messages
* [PHP Defer](https://github.com/php-defer/php-defer) - Golang's defer statement for PHP. * [PHP Defer](https://github.com/php-defer/php-defer) - Golang's defer statement for PHP.
* [Ratchet](https://github.com/ratchetphp/Ratchet) - A web socket library. * [Ratchet](https://github.com/ratchetphp/Ratchet) - A web socket library.
@ -534,10 +543,10 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT
### PDF ### PDF
*Libraries and software for working with PDF files.* *Libraries and software for working with PDF files.*
* [Browsershot](https://github.com/spatie/browsershot) - Convert HTML to an image, PDF or string.
* [Dompdf](https://github.com/dompdf/dompdf) - A HTML to PDF converter. * [Dompdf](https://github.com/dompdf/dompdf) - A HTML to PDF converter.
* [PHPPdf](https://github.com/psliwa/PHPPdf) - A library for generating PDFs and images from XML. * [Gotenberg](https://github.com/gotenberg/gotenberg-php) - A PHP client for interacting with Gotenberg.
* [Snappy](https://github.com/KnpLabs/snappy) - A PDF and image generation library. * [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.* *Libraries for working with office suite documents.*
@ -545,8 +554,7 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT
* [PHPPowerPoint](https://github.com/PHPOffice/PHPPresentation) - A library for working with Microsoft PowerPoint Presentations. * [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. * [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). * [PHPSpreadsheet](https://github.com/PHPOffice/PhpSpreadsheet) - A pure PHP library for reading and writing spreadsheet files (successor of PHPExcel).
* [Spout](https://github.com/box/spout) - Read and write spreadsheet files (CSV, XLSX and ODS), in a fast and scalable way . * [OpenSpout](https://github.com/openspout/openspout) - A community driven fork of `box/spout`, a PHP library to read and write spreadsheet files (CSV, XLSX and ODS), in a fast and scalable way.
### Database ### Database
*Libraries for interacting with databases using object-relational mapping (ORM) or datamapping techniques.* *Libraries for interacting with databases using object-relational mapping (ORM) or datamapping techniques.*
@ -556,12 +564,13 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT
* [Baum](https://github.com/etrepat/baum) - A nested set implementation for Eloquent. * [Baum](https://github.com/etrepat/baum) - A nested set implementation for Eloquent.
* [CakePHP ORM](https://github.com/cakephp/orm) - Object-Relational Mapper, implemented using the DataMapper pattern. * [CakePHP ORM](https://github.com/cakephp/orm) - Object-Relational Mapper, implemented using the DataMapper pattern.
* [Cycle ORM](https://github.com/cycle/orm) - PHP DataMapper, ORM. * [Cycle ORM](https://github.com/cycle/orm) - PHP DataMapper, ORM.
* [Doctrine Extensions](https://github.com/Atlantic18/DoctrineExtensions) - A collection of Doctrine behavioural extensions. * [Doctrine Extensions](https://github.com/doctrine-extensions/DoctrineExtensions ) - A collection of Doctrine behavioural extensions.
* [Doctrine](https://www.doctrine-project.org/) - A comprehensive DBAL and ORM. * [Doctrine](https://www.doctrine-project.org/) - A comprehensive DBAL and ORM.
* [Laravel Eloquent](https://github.com/illuminate/database) - A simple ORM. * [Laravel Eloquent](https://github.com/illuminate/database) - A simple ORM.
* [Pomm](https://github.com/chanmix51/Pomm) - An Object Model Manager for PostgreSQL. * [Pomm](https://github.com/chanmix51/Pomm) - An Object Model Manager for PostgreSQL.
* [ProxyManager](https://github.com/Ocramius/ProxyManager) - A set of utilities to generate proxy objects for data mappers. * [ProxyManager](https://github.com/Ocramius/ProxyManager) - A set of utilities to generate proxy objects for data mappers.
* [RedBean](https://redbeanphp.com/index.php) - A lightweight, configuration-less ORM. * [RedBean](https://redbeanphp.com/index.php) - A lightweight, configuration-less ORM.
* [Slimdump](https://github.com/webfactory/slimdump) - An easy dumper tool for MySQL.
* [Spot2](https://github.com/spotorm/spot2) - A MySQL datamapper ORM. * [Spot2](https://github.com/spotorm/spot2) - A MySQL datamapper ORM.
### Migrations ### Migrations
@ -576,9 +585,9 @@ Libraries to help manage database schemas and migrations.
### NoSQL ### NoSQL
*Libraries for working with "NoSQL" backends.* *Libraries for working with "NoSQL" backends.*
* [MongoDB](https://github.com/mongodb/mongo-php-driver) - MongoDB PHP Driver.
* [PHPMongo](https://github.com/sokil/php-mongo) - A MongoDB ORM. * [PHPMongo](https://github.com/sokil/php-mongo) - A MongoDB ORM.
* [Predis](https://github.com/predis/predis) - A feature complete Redis library. * [Predis](https://github.com/predis/predis) - A feature-complete Redis library.
* [MongoDB](https://github.com/mongodb/mongo-php-driver) - The MongoDB PHP Driver.
### Queue ### Queue
*Libraries for working with event and task queues.* *Libraries for working with event and task queues.*
@ -596,7 +605,7 @@ Libraries to help manage database schemas and migrations.
* [Elastica](https://github.com/ruflin/Elastica) - A client library for ElasticSearch. * [Elastica](https://github.com/ruflin/Elastica) - A client library for ElasticSearch.
* [ElasticSearch PHP](https://github.com/elastic/elasticsearch-php) - The official client library for [ElasticSearch](https://www.elastic.co/). * [ElasticSearch PHP](https://github.com/elastic/elasticsearch-php) - The official client library for [ElasticSearch](https://www.elastic.co/).
* [Solarium](https://www.solarium-project.org/) - A client library for [Solr](https://lucene.apache.org/solr/). * [Solarium](https://www.solarium-project.org/) - A client library for [Solr](https://solr.apache.org/).
* [SphinxQL Query Builder](https://foolcode.github.io/SphinxQL-Query-Builder/) - A query library for the [Sphinx](https://sphinxsearch.com/) and [Manticore](https://manticoresearch.com/) search engines. * [SphinxQL Query Builder](https://foolcode.github.io/SphinxQL-Query-Builder/) - A query library for the [Sphinx](https://sphinxsearch.com/) and [Manticore](https://manticoresearch.com/) search engines.
### Command Line ### Command Line
@ -607,12 +616,11 @@ Libraries to help manage database schemas and migrations.
* [Cilex](https://github.com/Cilex/Cilex) - A micro framework for building command line tools. * [Cilex](https://github.com/Cilex/Cilex) - A micro framework for building command line tools.
* [CLI Menu](https://github.com/php-school/cli-menu) - A library for building CLI menus. * [CLI Menu](https://github.com/php-school/cli-menu) - A library for building CLI menus.
* [CLIFramework](https://github.com/c9s/CLIFramework) - A command-line framework supports zsh/bash completion generation, subcommands and option constraints. It also powers phpbrew. * [CLIFramework](https://github.com/c9s/CLIFramework) - A command-line framework supports zsh/bash completion generation, subcommands and option constraints. It also powers phpbrew.
* [CLImate](https://github.com/thephpleague/climate) - A library for outputting colours and special formatting. * [CLImate](https://github.com/thephpleague/climate) - A library for outputting colors and special formatting.
* [Commando](https://github.com/nategood/commando) - Another simple command line opt parser. * [Commando](https://github.com/nategood/commando) - Another simple command line opt parser.
* [Cron Expression](https://github.com/mtdowling/cron-expression) - A library to calculate cron run dates. * [Cron Expression](https://github.com/mtdowling/cron-expression) - A library to calculate cron run dates.
* [GetOpt](https://github.com/getopt-php/getopt-php) - A command line opt parser. * [GetOpt](https://github.com/getopt-php/getopt-php) - A command line opt parser.
* [GetOptionKit](https://github.com/c9s/GetOptionKit) - Another 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.
* [PsySH](https://github.com/bobthecow/psysh) - Another PHP REPL. * [PsySH](https://github.com/bobthecow/psysh) - Another PHP REPL.
* [ShellWrap](https://github.com/MrRio/shellwrap) - A simple command line wrapper library. * [ShellWrap](https://github.com/MrRio/shellwrap) - A simple command line wrapper library.
@ -627,34 +635,45 @@ Libraries to help manage database schemas and migrations.
* [OAuth2 Server](https://bshaffer.github.io/oauth2-server-php-docs/) - Another OAuth2 server implementation. * [OAuth2 Server](https://bshaffer.github.io/oauth2-server-php-docs/) - Another OAuth2 server implementation.
* [OAuth2 Server](https://oauth2.thephpleague.com/) - An OAuth2 authentication server, resource server and client library. * [OAuth2 Server](https://oauth2.thephpleague.com/) - An OAuth2 authentication server, resource server and client library.
* [Opauth](https://github.com/opauth/opauth) - A multi-provider authentication framework. * [Opauth](https://github.com/opauth/opauth) - A multi-provider authentication framework.
* [PHP oAuthLib](https://github.com/Lusitanian/PHPoAuthLib) - Another OAuth library. * [Paseto](https://github.com/paragonie/paseto) - Platform-Agnostic Security Tokens.
* [PHP oAuthLib](https://github.com/daviddesberg/PHPoAuthLib) - Another OAuth library.
* [Sentinel Social](https://cartalyst.com/manual/sentinel-social/2.0) - A library for social network authentication. * [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. * [Sentinel](https://cartalyst.com/manual/sentinel/2.0) - A framework agnostic authentication & authorisation library.
* [TwitterOAuth](https://github.com/abraham/twitteroauth) - A Twitter OAuth library. * [TwitterOAuth](https://github.com/abraham/twitteroauth) - A Twitter OAuth library.
### Markup ### Markup and CSS
*Libraries for working with markup.* *Libraries for working with markup and CSS formats.
* [Cebe Markdown](https://github.com/cebe/markdown) - An fast and extensible Markdown parser. * [Cebe Markdown](https://github.com/cebe/markdown) - A fast and extensible Markdown parser.
* [CommonMark PHP](https://github.com/thephpleague/commonmark) - Highly-extensible Markdown parser which fully supports the [CommonMark spec](https://spec.commonmark.org/). * [CommonMark PHP](https://github.com/thephpleague/commonmark) - Highly-extensible Markdown parser which fully supports the [CommonMark spec](https://spec.commonmark.org/).
* [Decoda](https://github.com/milesj/decoda) - A lightweight markup parser library. * [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. * [Essence](https://github.com/essence/essence) - A library for extracting web media.
* [Embera](https://github.com/mpratt/Embera) - An Oembed consumer library.
* [HTML to Markdown](https://github.com/thephpleague/html-to-markdown) - Converts HTML into Markdown. * [HTML to Markdown](https://github.com/thephpleague/html-to-markdown) - Converts HTML into Markdown.
* [HTML5 PHP](https://github.com/Masterminds/html5-php) - An HTML5 parser and serializer library. * [HTML5 PHP](https://github.com/Masterminds/html5-php) - An HTML5 parser and serializer library.
* [Parsedown](https://github.com/erusev/parsedown) - Another Markdown parser. * [Parsedown](https://github.com/erusev/parsedown) - Another Markdown parser.
* [PHP CSS Parser](https://github.com/sabberworm/PHP-CSS-Parser) - A Parser for CSS Files written in PHP.
* [PHP Markdown](https://github.com/michelf/php-markdown) - A Markdown parser. * [PHP Markdown](https://github.com/michelf/php-markdown) - A Markdown parser.
* [Shiki PHP](https://github.com/spatie/shiki-php) - A [Shiki](https://github.com/shikijs/shiki) code highlighting package in PHP.
* [VObject](https://github.com/sabre-io/vobject) - A library for parsing VCard and iCalendar objects.
### JSON
*Libraries for working with JSON.*
* [JSON Lint](https://github.com/Seldaek/jsonlint) - A JSON lint utility.
* [JSONMapper](https://github.com/JsonMapper/JsonMapper) - A library for mapping JSON to PHP objects.
### Strings ### Strings
*Libraries for parsing and manipulating strings.* *Libraries for parsing and manipulating strings.*
* [Agent](https://github.com/jenssegers/agent) - A PHP desktop/mobile user agent parser, based on Mobiledetect. * [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. * [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. * [Color Jizz](https://github.com/mikeemoo/ColorJizz-PHP) - A library for manipulating and converting colors.
* [Device Detector](https://github.com/matomo-org/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. * [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). * [Mobile-Detect](https://github.com/serbanghita/Mobile-Detect) - A lightweight PHP class for detecting mobile devices (including tablets).
* [Patchwork UTF-8](https://github.com/nicolas-grekas/Patchwork-UTF8) - A portable library for working with UTF-8 strings. * [Patchwork UTF-8](https://github.com/nicolas-grekas/Patchwork-UTF8) - A portable library for working with UTF-8 strings.
* [Portable ASCII](https://github.com/voku/portable-ascii) - A library to convert strings to ASCII.
* [Portable UTF-8](https://github.com/voku/portable-utf8) - A string manipulation library with UTF-8 safe replacement methods. * [Portable UTF-8](https://github.com/voku/portable-utf8) - A string manipulation library with UTF-8 safe replacement methods.
* [Slugify](https://github.com/cocur/slugify) - A library to convert strings to slugs. * [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. * [SQL Formatter](https://github.com/jdorn/sql-formatter/) - A library for formatting SQL statements.
@ -668,6 +687,8 @@ Libraries to help manage database schemas and migrations.
* [Brick\Math](https://github.com/brick/math) - A library providing large number support: `BigInteger`, `BigDecimal` and `BigRational`. * [Brick\Math](https://github.com/brick/math) - A library providing large number support: `BigInteger`, `BigDecimal` and `BigRational`.
* [ByteUnits](https://github.com/gabrielelana/byte-units) - A library to parse, format and convert byte units in binary and metric systems. * [ByteUnits](https://github.com/gabrielelana/byte-units) - A library to parse, format and convert byte units in binary and metric systems.
* [DecimalObject](https://github.com/php-collective/decimal-object) - A value object to handle decimals/floats easily and more precisely.
* [IP](https://github.com/darsyn/ip) - An immutable value object for working with IPv4 and IPv6 addresses.
* [LibPhoneNumber for PHP](https://github.com/giggsey/libphonenumber-for-php) - A PHP implementation of Google's phone number handling library. * [LibPhoneNumber for PHP](https://github.com/giggsey/libphonenumber-for-php) - A PHP implementation of Google's phone number handling library.
* [PHP Conversion](https://github.com/Crisu83/php-conversion) - Another library for converting between units of measure. * [PHP 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. * [PHP Units of Measure](https://github.com/triplepoint/php-units-of-measure) - A library for converting between units of measure.
@ -680,7 +701,7 @@ Libraries to help manage database schemas and migrations.
* [Aura.Filter](https://github.com/auraphp/Aura.Filter) - Provides tools to validate and sanitize objects and arrays. * [Aura.Filter](https://github.com/auraphp/Aura.Filter) - Provides tools to validate and sanitize objects and arrays.
* [CakePHP Validation](https://github.com/cakephp/validation) - Another validation library. * [CakePHP Validation](https://github.com/cakephp/validation) - Another validation library.
* [Filterus](https://github.com/ircmaxell/filterus) - A simple PHP 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. * [ISO-codes](https://github.com/ronanguilloux/IsoCodes) - A library for validating inputs according to standards from ISO, International Finance, Public Administrations, GS1, Book Industry, Phone numbers & Zipcodes for many countries.
* [JSON Schema](https://github.com/justinrainbow/json-schema) - A [JSON Schema](https://json-schema.org/) validation library. * [JSON Schema](https://github.com/justinrainbow/json-schema) - A [JSON Schema](https://json-schema.org/) validation library.
* [MetaYaml](https://github.com/romaricdrigon/MetaYaml) - A schema validation library that supports YAML, JSON and XML. * [MetaYaml](https://github.com/romaricdrigon/MetaYaml) - A schema validation library that supports YAML, JSON and XML.
* [Respect Validation](https://github.com/Respect/Validation) - A simple validation library. * [Respect Validation](https://github.com/Respect/Validation) - A simple validation library.
@ -691,25 +712,27 @@ Libraries to help manage database schemas and migrations.
### API ### API
*Libraries and web tools for developing APIs.* *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. * [API Platform](https://api-platform.com ) - Expose in minutes a hypermedia REST API that embraces JSON-LD, Hydra format.
* [Laminas API Tool Skeleton](https://github.com/laminas-api-tools/api-tools-skeleton) - An API builder built with the Laminas Framework. * [Laminas API Tool Skeleton](https://github.com/laminas-api-tools/api-tools-skeleton) - An API builder built with the Laminas Framework.
* [Drest](https://github.com/leedavis81/drest) - A library for exposing Doctrine entities as REST resource endpoints. * [Drest](https://github.com/leedavis81/drest) - A library for exposing Doctrine entities as REST resource endpoints.
* [HAL](https://github.com/blongden/hal) - A Hypertext Application Language (HAL) builder library. * [HAL](https://github.com/blongden/hal) - A Hypertext Application Language (HAL) builder library.
* [Hateoas](https://github.com/willdurand/Hateoas) - A HATEOAS REST web service library. * [Hateoas](https://github.com/willdurand/Hateoas) - A HATEOAS REST web service library.
* [Jane](https://github.com/janephp/janephp/) - An OpenApi client generator with validation support.
* [Negotiation](https://github.com/willdurand/Negotiation) - A content negotiation library. * [Negotiation](https://github.com/willdurand/Negotiation) - A content negotiation library.
* [Restler](https://github.com/Luracast/Restler) - A lightweight framework to expose PHP methods as RESTful web API. * [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. * [wsdl2phpgenerator](https://github.com/wsdl2phpgenerator/wsdl2phpgenerator) - A tool to generate PHP classes from SOAP WSDL files.
### Caching ### Caching and Locking
*Libraries for caching data.* *Libraries for caching data and acquiring locks.*
* [APIx Cache](https://github.com/apix/cache) - A thin PSR-6 cache wrapper to various caching backends emphasising cache tagging and indexing. * [APIx Cache](https://github.com/apix/cache) - A thin PSR-6 cache wrapper to various caching backends emphasizing cache tagging and indexing.
* [CacheTool](https://github.com/gordalina/cachetool) - A tool to clear APC/opcode caches from the command line. * [CacheTool](https://github.com/gordalina/cachetool) - A tool to clear APC/opcode caches from the command line.
* [CakePHP Cache](https://github.com/cakephp/cache) - A caching library. * [CakePHP Cache](https://github.com/cakephp/cache) - A caching library.
* [Doctrine Cache](https://github.com/doctrine/cache) - A caching library. * [Doctrine Cache](https://github.com/doctrine/cache) - A caching library.
* [Metaphore](https://github.com/sobstel/metaphore) - Cache slam defense using a semaphore to prevent dogpile effect. * [Metaphore](https://github.com/sobstel/metaphore) - Cache slam defense using a semaphore to prevent dogpile effect.
* [Stash](https://github.com/tedious/Stash) - Another library for caching. * [Stash](https://github.com/tedious/Stash) - Another library for caching.
* [Laminas Cache](https://github.com/laminas/laminas-cache) - Another caching library. * [Laminas Cache](https://github.com/laminas/laminas-cache) - Another caching library.
* [Lock](https://github.com/php-lock/lock) - A lock library to provide exclusive execution.
### Data Structure and Storage ### Data Structure and Storage
*Libraries that implement data structure or storage techniques.* *Libraries that implement data structure or storage techniques.*
@ -722,7 +745,7 @@ Libraries to help manage database schemas and migrations.
* [Knapsack](https://github.com/DusanKasan/Knapsack) - Collection library inspired by Clojure's sequences. * [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](https://msgpack.org/) serialization format. * [msgpack.php](https://github.com/rybakit/msgpack.php) - A pure PHP implementation of the [MessagePack](https://msgpack.org/) serialization format.
* [PINQ](https://github.com/TimeToogo/Pinq) - A PHP library based on .NET's LINQ (Language Integrated Query). * [PINQ](https://github.com/TimeToogo/Pinq) - A PHP library based on .NET's LINQ (Language Integrated Query).
* [Serializer](https://github.com/schmittjoh/serializer) - A library for serialising and de-serialising data. * [Serializer](https://github.com/schmittjoh/serializer) - A library for serializing and de-serializing data.
* [YaLinqo](https://github.com/Athari/YaLinqo) - Yet Another LINQ to Objects for PHP. * [YaLinqo](https://github.com/Athari/YaLinqo) - Yet Another LINQ to Objects for PHP.
* [Laminas Serializer](https://github.com/laminas/laminas-serializer) - Another library for serialising and de-serialising data. * [Laminas Serializer](https://github.com/laminas/laminas-serializer) - Another library for serialising and de-serialising data.
@ -752,8 +775,8 @@ Libraries to help manage database schemas and migrations.
*Libraries and tools to help build serverless web applications.* *Libraries and tools to help build serverless web applications.*
* [Bref](https://bref.sh/) - Serverless PHP on AWS Lambda. * [Bref](https://bref.sh/) - Serverless PHP on AWS Lambda.
* [OpenWhisk](http://openwhisk.apache.org/) - An open-source serverless cloud platform. * [OpenWhisk](https://openwhisk.apache.org/) - An open-source serverless cloud platform.
* [Serverless Framework](https://www.serverless.com/open-source/) - An open-source framework for building serverless applications. * [Serverless Framework](https://www.serverless.com/framework) - An open-source framework for building serverless applications.
* [Laravel Vapor](https://vapor.laravel.com/) - A serverless deployment platform for Laravel, powered by AWS. * [Laravel Vapor](https://vapor.laravel.com/) - A serverless deployment platform for Laravel, powered by AWS.
## Configuration ## Configuration
@ -779,43 +802,19 @@ Libraries to help manage database schemas and migrations.
*Libraries to help build PHP extensions.* *Libraries to help build PHP extensions.*
* [PHP CPP](https://www.php-cpp.com/) - A C++ library for developing PHP extensions. * [PHP CPP](https://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. * [Zephir](https://github.com/zephir-lang/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.* *Useful libraries or utilities that don't fit into the categories above.*
* [Annotations](https://github.com/doctrine/annotations) - An annotations library (part of Doctrine). * [Annotations](https://github.com/doctrine/annotations) - An annotation library (part of Doctrine).
* [BotMan](https://github.com/botman/botman) - A framework agnostic PHP library to build cross-platform chat bots. * [BotMan](https://github.com/botman/botman) - A framework agnostic PHP library to build cross-platform chatbots.
* [CakePHP Utility](https://github.com/cakephp/utility) - Utility classes such as Inflector, String, Hash, Security and XML. * [ClassPreloader](https://github.com/ClassPreloader/ClassPreloader) - A library for optimizing autoloading.
* [Chief](https://github.com/adamnicholson/Chief) - A command bus library. * [Hprose-PHP](https://github.com/hprose/hprose-php) - A cross-language RPC.
* [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.
* [Expose](https://github.com/beyondcode/expose) - An open source PHP tunneling service.
* [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.
* [Lock](https://github.com/php-lock/lock) - A lock library to provide exclusive execution.
* [Metrics](https://github.com/beberlei/metrics) - A simple metrics API library.
* [noCAPTCHA](https://github.com/ARCANEDEV/noCAPTCHA) - Helper for Google's noCAPTCHA (reCAPTCHA). * [noCAPTCHA](https://github.com/ARCANEDEV/noCAPTCHA) - Helper for Google's noCAPTCHA (reCAPTCHA).
* [Nmap](https://github.com/willdurand/nmap) - A PHP wrapper around [Nmap](https://nmap.org/).
* [Pagerfanta](https://github.com/whiteoctober/Pagerfanta) - A pagination library. * [Pagerfanta](https://github.com/whiteoctober/Pagerfanta) - A pagination library.
* [PHP PassBook](https://github.com/eymengunay/php-passbook) - A PHP library for iOS PassBook.
* [PHP-ML](https://github.com/jorgecasas/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.
* [print_o](https://github.com/koriym/print_o) - An object graph visualizer.
* [Procrastinator](https://github.com/lstrojny/Procrastinator) - A library for running time consuming tasks.
* [Prooph Service Bus](https://github.com/prooph/service-bus) - Lightweight message bus supporting CQRS and Micro Services
* [RMT](https://github.com/liip/RMT) - A library for versioning and releasing software.
* [sabre/vobject](https://github.com/sabre-io/vobject) - A library for parsing VCard and iCalendar objects.
* [Safe](https://github.com/thecodingmachine/safe) - All PHP functions, rewritten to throw exceptions instead of returning false. * [Safe](https://github.com/thecodingmachine/safe) - All PHP functions, rewritten to throw exceptions instead of returning false.
* [Slimdump](https://github.com/webfactory/slimdump) - An easy dumper tool for MySQL.
* [Spork](https://github.com/kriswallsmith/spork) - A process forking library.
* [SuperClosure](https://github.com/jeremeamia/super_closure) - A library that allows Closures to be serialized. * [SuperClosure](https://github.com/jeremeamia/super_closure) - A library that allows Closures to be serialized.
* [Underscore](https://anahkiasen.github.io/underscore-php/) - A PHP port of the Underscore JS library.
# Software # Software
*Software for creating a development environment.* *Software for creating a development environment.*
@ -828,18 +827,20 @@ Libraries to help manage database schemas and migrations.
* [Laravel Valet](https://laravel.com/docs/master/valet) - A development environment for macOS. * [Laravel Valet](https://laravel.com/docs/master/valet) - A development environment for macOS.
* [PHP Brew](https://github.com/phpbrew/phpbrew) - A PHP version manager and installer. * [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 Build](https://github.com/php-build/php-build) - Another PHP version installer.
* [PHP OSX](https://php-osx.liip.ch/) - A PHP installer for OSX.
### Development Environment ### Development Environment
*Software and tools for creating a sandboxed development environment.* *Software and tools for creating and sharing a development environment.*
* [Ansible](https://www.ansible.com/) - A radically simple orchestration framework. * [Ansible](https://www.ansible.com/) - A radically simple orchestration framework.
* [Docker](https://www.docker.com/) - A containerization platform. * [Docker](https://www.docker.com/) - A containerization platform.
* [Docker PHP Extension Installer](https://github.com/mlocati/docker-php-extension-installer) - Easily install PHP extensions in Docker containers.
* [Expose](https://github.com/beyondcode/expose) - An open-source PHP tunneling service.
* [Lando](https://lando.dev/) - Push-button development environments.
* [Laravel Homestead](https://laravel.com/docs/master/homestead) - A local development environment for Laravel. * [Laravel Homestead](https://laravel.com/docs/master/homestead) - A local development environment for Laravel.
* [Laradock](http://laradock.io/) - A full PHP development environment based on Docker. * [Laradock](http://laradock.io/) - A full PHP development environment based on Docker.
* [Puppet](https://puppet.com/) - A server automation framework and application. * [Puppet](https://www.puppet.com) - A server automation framework and application.
* [Takeout](https://github.com/tighten/takeout) - A Docker-based development-only dependency manager.
* [Vagrant](https://www.vagrantup.com/) - A portable development environment utility. * [Vagrant](https://www.vagrantup.com/) - A portable development environment utility.
* [Vessel](https://vessel.shippingdocker.com/) - Simple Docker development environments for Laravel.
### Virtual Machines ### Virtual Machines
*Alternative PHP virtual machines.* *Alternative PHP virtual machines.*
@ -860,21 +861,22 @@ Libraries to help manage database schemas and migrations.
*Web-based applications and tools.* *Web-based applications and tools.*
* [3V4L](https://3v4l.org/) - An online PHP & HHVM shell. * [3V4L](https://3v4l.org/) - An online PHP & HHVM shell.
* [DBV](https://github.com/victorstanciu/dbv) - A database version control application.
* [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.
* [phpRedisAdmin](https://github.com/ErikDubbelboer/phpRedisAdmin) - A simple web interface to manage [Redis](https://redis.io/) databases.
* [phpMyAdmin](https://github.com/phpmyadmin/phpmyadmin) - A web interface for MySQL/MariaDB.
* [Adminer](https://www.adminer.org/) - Database management in a single PHP file. * [Adminer](https://www.adminer.org/) - Database management in a single PHP file.
* [Cachet](https://github.com/cachethq/cachet) - The open source status page system.
* [DBV](https://github.com/victorstanciu/dbv) - A database version control application.
* [Lychee](https://github.com/electerious/Lychee) - An easy to use and great looking photo-management-system. * [Lychee](https://github.com/electerious/Lychee) - An easy to use and great looking photo-management-system.
* [MailCatcher](https://github.com/sj26/mailcatcher) - A web tool for capturing and viewing emails.
* [phpMyAdmin](https://github.com/phpmyadmin/phpmyadmin) - A web interface for MySQL/MariaDB.
* [PHP Queue](https://github.com/CoderKungfu/php-queue) - An application for managing queueing backends.
* [phpRedisAdmin](https://github.com/ErikDubbelboer/phpRedisAdmin) - A simple web interface to manage [Redis](https://redis.io/) databases.
* [PHPSandbox](https://phpsandbox.io) - An online IDE for PHP in the browser.
### Infrastructure ### Infrastructure
*Infrastructure for providing PHP applications and services.* *Infrastructure for providing PHP applications and services.*
* [appserver.io](https://github.com/appserver-io/appserver) - A multithreaded application server for PHP, written in PHP. * [appserver.io](https://github.com/appserver-io/appserver) - 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. * [php-pm](https://github.com/php-pm/php-pm) - A process manager, supercharger and load balancer for PHP applications.
* [RoadRunner](https://github.com/spiral/roadrunner) - High-performance PHP application server, load-balancer and process manager. * [RoadRunner](https://github.com/roadrunner-server/roadrunner) - High-performance PHP application server, load-balancer and process manager.
# Resources # Resources
Various resources, such as books, websites and articles, for improving your PHP development skills and knowledge. Various resources, such as books, websites and articles, for improving your PHP development skills and knowledge.
@ -882,10 +884,9 @@ Various resources, such as books, websites and articles, for improving your PHP
### PHP Websites ### PHP Websites
*Useful PHP-related websites.* *Useful PHP-related websites.*
* [libs.garden: PHP](https://libs.garden/php) - An overview of fastest growing PHP libraries.
* [Nomad PHP](https://nomadphp.com/) - A online PHP learning resource. * [Nomad PHP](https://nomadphp.com/) - A online PHP learning resource.
* [Laravel News](https://laravel-news.com/) - The official Laravel blog. * [Laravel News](https://laravel-news.com/) - The official Laravel blog.
* [PHP Annotated Monthly](https://blog.jetbrains.com/phpstorm/category/php-annotated-monthly/) - A monthly digest of PHP news. * [PHP Annotated Monthly](https://blog.jetbrains.com/phpstorm/tag/php-annotated-monthly/) - A monthly digest of PHP news.
* [PHP Best Practices](https://phpbestpractices.org/) - A PHP best practice guide. * [PHP Best Practices](https://phpbestpractices.org/) - A PHP best practice guide.
* [PHP FIG](https://www.php-fig.org/) - The PHP Framework Interoperability Group. * [PHP FIG](https://www.php-fig.org/) - The PHP Framework Interoperability Group.
* [PHP Package Development Standards](http://php-pds.com) - Package development standards for PHP. * [PHP Package Development Standards](http://php-pds.com) - Package development standards for PHP.
@ -895,8 +896,7 @@ Various resources, such as books, websites and articles, for improving your PHP
* [PHP UG](https://php.ug) - A website to help people locate their nearest PHP user group (UG). * [PHP UG](https://php.ug) - A website to help people locate their nearest PHP user group (UG).
* [PHP Versions](http://phpversions.info/) - Lists which versions of PHP are available on several popular web hosts. * [PHP Versions](http://phpversions.info/) - Lists which versions of PHP are available on several popular web hosts.
* [PHP Watch](https://php.watch/) - PHP articles, news, upcoming changes, RFCs and more. * [PHP Watch](https://php.watch/) - PHP articles, news, upcoming changes, RFCs and more.
* [PHP Weekly](http://www.phpweekly.com/archive.html) - A weekly PHP newsletter. * [PHP Weekly](https://www.phpweekly.com/archive.html) - A weekly PHP newsletter.
* [Securing PHP](https://www.securingphp.com/) - A newsletter about PHP security and library recommendations.
* [Seven PHP](https://7php.com/) - A website that interviews members of the PHP community. * [Seven PHP](https://7php.com/) - A website that interviews members of the PHP community.
### PHP Books ### PHP Books
@ -905,7 +905,7 @@ Various resources, such as books, websites and articles, for improving your PHP
* [Domain-Driven Design in PHP](https://leanpub.com/ddd-in-php) - Real examples written in PHP showcasing DDD Architectural Styles. * [Domain-Driven Design in PHP](https://leanpub.com/ddd-in-php) - Real examples written in PHP showcasing DDD Architectural Styles.
* [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 * [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. * [Grumpy PHPUnit](https://leanpub.com/grumpy-phpunit) - A book about unit testing with PHPUnit by Chris Hartjes.
* [Mastering Object-Orientated PHP](https://www.brandonsavage.net/) - A book about object-orientated PHP by Brandon Savage. * [Mastering Object-Orientated PHP](https://brandonsavage.net) - A book about object-orientated PHP by Brandon Savage.
* [Modern PHP New Features and Good Practices](https://www.oreilly.com/library/view/~/9781491905173/) - A book about new PHP features and best practices by Josh Lockhart. * [Modern PHP New Features and Good Practices](https://www.oreilly.com/library/view/~/9781491905173/) - 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. * [Modernizing Legacy Applications in PHP](https://leanpub.com/mlaphp) - A book about modernizing legacy PHP applications by Paul M. Jones.
* [PHP 7 Upgrade Guide](https://leanpub.com/php7) - An ebook covering all of the features and changes in PHP 7 by Colin O'Dell. * [PHP 7 Upgrade Guide](https://leanpub.com/php7) - An ebook covering all of the features and changes in PHP 7 by Colin O'Dell.
@ -930,38 +930,28 @@ Various resources, such as books, websites and articles, for improving your PHP
### PHP Podcasts ### PHP Podcasts
*Podcasts with a focus on PHP topics.* *Podcasts with a focus on PHP topics.*
* [Laravel Podcast](https://laravelpodcast.com/) - Laravel and PHP development news and discussion. * [The Laravel Podcast](https://laravelpodcast.com/) - Laravel and PHP development news and discussion.
* [Laravel News Podcast](https://podcast.laravel-news.com/) - The Laravel News Podcast brings you all the latest news and events related to the Laravel PHP Framework.
* [PHP Internals News](https://phpinternals.news) - A podcast about PHP internals. * [PHP Internals News](https://phpinternals.news) - A podcast about PHP internals.
* [PHP Roundtable](https://www.phproundtable.com/) - The PHP Roundtable is a casual gathering of developers discussing topics that PHP nerds care about. * [The PHP Roundtable](https://phproundtable.com/) - The PHP Roundtable is a casual gathering of developers discussing topics that PHP nerds care about.
* [PHP Town Hall](https://phptownhall.com/) - A casual PHP podcast by Ben Edmunds and Phil Sturgeon. * [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. * [Voices of the ElePHPant](https://voicesoftheelephpant.com/) - Interviews with the people who make the PHP community special.
* [The Laracasts Snippet](https://laracasts.simplecast.com) - The Laracasts snippet, each episode, offers a single thought on some aspect of web development.
* [php[podcast] episodes from php[architect]](https://www.phparch.com/podcast/) - The official podcast of php[architect] the industry's leading tech magazine and publisher focused on PHP and web development.
* [Over Engineered](https://overengineered.fm/) - A podcast in mini-series where we explore unimportant programming questions in extreme detail.
* [PHPUgly](https://www.phpugly.com/) - The ramblings of a few overworked PHP Developers.
* [No Compromises](https://show.nocompromises.io/) - Two seasoned salty programming veterans talk best practices based on years of working with Laravel SaaS teams.
* [North Meets South Web Podcast](https://www.northmeetssouth.audio/) - Jacob Bennett and Michael Dyrynda conquer a 14.5 hour time difference to talk about life as web developers.
### PHP Newsletters ### PHP Newsletters
*PHP-related news directly to your inbox.* *PHP-related news directly to your inbox.*
* [PHP Weekly](http://www.phpweekly.com/) - A weekly newsletter about PHP. * [PHP Weekly](https://www.phpweekly.com/) - A weekly newsletter about PHP.
### PHP Magazines
*Fantastic PHP-related magazines.*
* [php[architect]](https://www.phparch.com/magazine/) - A monthly magazine dedicated to PHP.
### PHP Reading ### PHP Reading
*PHP-releated reading materials.* *PHP-related reading materials.*
* [Composer Primer](https://daylerees.com/composer-primer/) - A Composer primer. * [php[architect]](https://www.phparch.com/magazine/) - A monthly magazine dedicated to PHP.
* [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](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](https://phppackagechecklist.com/) - A checklist for successful PHP package development.
* [PHP Sucks! But I Like It!](https://blog.ircmaxell.com/2012/04/php-sucks-but-i-like-it.html) - An article about the pros and cons of PHP.
* [Preventing CSRF Attacks](https://blog.ircmaxell.com/2013/02/preventing-csrf-attacks.html) - An article on preventing CSRF attacks.
* [Seven Ways to Screw Up BCrypt](https://blog.ircmaxell.com/2012/12/seven-ways-to-screw-up-bcrypt.html) - An article about correct BCrypt implementation.
* [The 2018 Guide to Building Secure PHP Software](https://paragonie.com/blog/2017/12/2018-guide-building-secure-php-software) - A guide to building secure PHP software.
* [Use Env](https://seancoates.com/blogs/use-env) - An article about using the unix environment helper.
### PHP Internals Reading ### PHP Internals Reading
*Reading materials related to the PHP internals or performance.* *Reading materials related to the PHP internals or performance.*
@ -969,17 +959,4 @@ Various resources, such as books, websites and articles, for improving your PHP
* [PHP RFCs](https://wiki.php.net/rfc) - The home of PHP RFCs (Request for Comments). * [PHP RFCs](https://wiki.php.net/rfc) - The home of PHP RFCs (Request for Comments).
* [Externals](https://externals.io/) - PHP internal discussions. * [Externals](https://externals.io/) - PHP internal discussions.
* [PHP RFC Watch](https://php-rfc-watch.beberlei.de/) - Watch the latest PHP [RFCs](https://wiki.php.net/rfc). * [PHP RFC Watch](https://php-rfc-watch.beberlei.de/) - Watch the latest PHP [RFCs](https://wiki.php.net/rfc).
* [Disproving the Single Quotes Myth](https://nikic.github.io/2012/01/09/Disproving-the-Single-Quotes-Performance-Myth.html) - An article about performance of single and double quoted strings. * [PHP Internals Book](https://www.phpinternalsbook.com/) - An online book about PHP internals, written by three core developers.
* [How Big Are PHP Arrays (And Values) Really?](https://nikic.github.io/2011/12/12/How-big-are-PHP-arrays-really-Hint-BIG.html) - An article about array internals.
* [How Foreach Works](https://stackoverflow.com/questions/10057671/how-does-php-foreach-actually-work/14854568#14854568) - A detailed StackOverflow answer about foreach.
* [How Long is a Piece of String](http://blog.golemon.com/2006/06/how-long-is-piece-of-string.html) - An article about string internals.
* [PHP Evaluation Order](https://gist.github.com/nikic/6699370) - An article about evaluation order in PHP.
* [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/print-vs-echo-which-one-is-faster.html) - An article about print and echo performance.
* [The PHP Ternary Operator. Fast or Not?](http://fabien.potencier.org/the-php-ternary-operator-fast-or-not.html) - An article ternary performance.
* [Understanding OpCodes](http://blog.golemon.com/2008/01/understanding-opcodes.html) - An article about opcodes.
* [When Does Foreach Copy?](https://nikic.github.io/2011/11/11/PHP-Internals-When-does-foreach-copy.html) - An article about the internals of foreach.
* [Why Objects (Usually) Use Less Memory Than Arrays](https://gist.github.com/nikic/5015323) - An article about object and array internals.
* [You're Being Lied To](http://blog.golemon.com/2007/01/youre-being-lied-to.html) - An article about internal ZVALs.
* Collecting Garbage: [1](https://www.php.net/manual/en/features.gc.refcounting-basics.php) [2](https://www.php.net/manual/en/features.gc.collecting-cycles.php) [3](https://www.php.net/manual/en/features.gc.performance-considerations.php) - A series about the PHP garbage collection internals.
* PHP Source Code for Developers: [1](https://blog.ircmaxell.com/2012/03/phps-source-code-for-php-developers.html) [2](https://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](https://nikic.github.io/2012/03/28/Understanding-PHPs-internal-array-implementation.html) - A series about the PHP source code.