diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..5307008aa --- /dev/null +++ b/.editorconfig @@ -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 diff --git a/.github/workflows/awesomebot.yml b/.github/workflows/awesomebot.yml new file mode 100644 index 000000000..39a4407cf --- /dev/null +++ b/.github/workflows/awesomebot.yml @@ -0,0 +1,26 @@ +name: Awesome Bot +on: + push: + branches: + - master + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: ruby/setup-ruby@v1 + with: + ruby-version: '2.7' + + - name: Install Awesome Bot + run: gem install 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,youtube.com,lumen.laravel.com + + - uses: actions/upload-artifact@v1 + if: failure() + with: + name: ab-results + path: ab-results-README.md-filtered.json diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 935a0642c..000000000 --- a/.travis.yml +++ /dev/null @@ -1,9 +0,0 @@ -language: ruby -rvm: - - 2.2 -before_script: - - gem install awesome_bot -script: - - awesome_bot README.md --white-list igor.io,symfony,toranproxy.com,vagrantup.com,3v4l.org,voicesoftheelephpant.com -notifications: - email: false diff --git a/.varci.yml b/.varci.yml deleted file mode 100644 index c05a4f94e..000000000 --- a/.varci.yml +++ /dev/null @@ -1,65 +0,0 @@ -ruleset: - - body_link: - name: "Pull requests that add links should also include them in the body" - events: [ pull_request ] - when: - - action = "opened" - - files = ["README.md"] - - deletions = 0 - - not (body_links.added contains diff_links.added) - comment: | - This pull request adds the following suggestion: - - {{ diff.added.0 }} - - broken_link: - name: "Pull request diff contains broken links" - events: [ pull_request ] - when: - - action = "opened" - - count(diff_links.broken) > 0 - comment: > - @{{ user.login }}, at least one of the links in the pull request diff was - reported as broken: - - - {{ diff_links.broken.0 }} - - missing_link: - name: "Suggestions should include a link" - events: [ pull_request ] - when: - - action = "opened" - - files = ["README.md"] - - deletions = 0 - - additions = 1 - - count(grep("/^\* /", diff.added)) = 1 - - count(diff_links.added) != 1 - comment: > - @{{ user.login }}, it looks like you have added a new suggestion to the - `README.md` file but haven't linked to the project. Please update the - `README.md` to also link to the project, thanks! - - multiple_additions: - name: "Pull request should only suggest one addition at a time" - events: [ pull_request ] - comment: | - @{{ user.login }}, it looks like you are trying to add multiple suggestions in a single pull request. - - If so, please split these into multiple pull requests so each item's inclusion in the list can be discussed separately. - when: - - action = "opened" - - files = ["README.md"] - - deletions = 0 - - count(grep("/^\* /", diff.added)) > 1 - - needs_explanation: - name: 'Pull request bodies should have a detailed explanation' - events: [ pull_request ] - label: 'needs: explanation' - when: - - action = "opened" - - length(body) < 25 - message: > - @{{ user.login }}, please update the pull request body with a description - of what you are adding or changing (of at least 25 characters). diff --git a/CODE-OF-CONDUCT.md b/CODE-OF-CONDUCT.md index a7e2d2e82..50dfbb7ab 100644 --- a/CODE-OF-CONDUCT.md +++ b/CODE-OF-CONDUCT.md @@ -35,7 +35,7 @@ This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting a project maintainer at awesome-php@josediazgonzalez.com. All +reported by contacting a project maintainer at ziadoz@gmail.com. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. Maintainers are obligated to maintain confidentiality with regard to the reporter of an diff --git a/COLLABORATING.md b/COLLABORATING.md index 4bcd124cf..8ebae7ae3 100644 --- a/COLLABORATING.md +++ b/COLLABORATING.md @@ -13,9 +13,10 @@ If you provide feedback on a suggested project please be friendly and constructi ## Reviewing Please work through the following checklist when reviewing a project: -- Tag pull requests with the most relevant label(s). -- Validate URLs work correctly and don't point to anything malicious. - Ensure suggestions adhere to [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONTRIBUTING.md). +- Validate URLs work correctly and don't point to anything malicious. +- Two approvals per pull request is preferred, but not required. +- Simple pull requests fixing typos, formatting and broken links can be merged with a single approval. ## Enhancements If you have an idea on how to improve the project, please open a ticket for discussion using the `Enhancement` label. Please don’t make any broad or sweeping changes without consulting other collaborators first and reaching a consensus. @@ -23,4 +24,4 @@ If you have an idea on how to improve the project, please open a ticket for disc ## Join If you want to help out please send an email to my Github username [at] gmail [dot] com with the subject “Awesome PHP Collaborator and a link to your Github account and I’ll get back to you as soon as I can (I'm notoriously slow, sorry). -Thank you for taking the time to help out with Awesome PHP, your help is appreciated! \ No newline at end of file +Thank you for taking the time to help out with Awesome PHP, your help is appreciated! diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a9884a00f..21a95e700 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,7 +1,7 @@ # Contribution Guidelines Unfortunately, not every library, tool or framework can be considered for inclusion. The aim of Awesome PHP is to be a concise list of noteworthy and interesting software written in modern PHP. Therefore, suggested software should: -1. Be widely recommended regardless of personal opinion +1. Be widely recommended 2. Well known or discussed within the PHP community 3. Be unique in its approach or function 4. Fill a niche gap in the market @@ -10,17 +10,18 @@ Self-promotion is frowned upon, so please consider seriously whether your projec Also, please ensure your pull request adheres to the following guidelines: -* Software that is PHP 7.0+, Composer-installable, PSR compliant, semantically versioned, unit tested, actively maintained and well documented in English is preferred. -* Please search previous suggestions before making a new one, as yours may be a duplicate. +* 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 and will be closed. * 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. +* Please make an individual commit for each suggestion in a separate pull request. * Use the following format for libraries: \[LIBRARY\]\(LINK\) - DESCRIPTION. * Prefix duplicate library names with their vendor or namespace followed by a space: Foo\Bar would be Foo Bar. * New categories, or improvements to the existing categorisation, are always welcome. -* Please keep descriptions short, simple and unbiased. No buzzwords or marketing jargon. +* Please keep descriptions short, simple and unbiased. No buzzwords or marketing jargon please. * End all descriptions with a full stop/period. * Check your spelling and grammar. * Make sure your text editor is set to remove trailing whitespace. +* Your entry has been added alphabetically within the category. Thank you for your suggestions! diff --git a/README.md b/README.md index 80da667f2..77f5a42f4 100644 --- a/README.md +++ b/README.md @@ -1,160 +1,186 @@ -# Awesome PHP [![Build Status](https://api.travis-ci.org/ziadoz/awesome-php.svg?branch=master)](https://travis-ci.org/ziadoz/awesome-php) +# Awesome PHP [![Awesome](https://cdn.jsdelivr.net/gh/sindresorhus/awesome@d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) -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 Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONTRIBUTING.md), [CODE-OF-CONDUCT](https://github.com/ziadoz/awesome-php/blob/master/CODE-OF-CONDUCT.md) and [COLLABORATING](https://github.com/ziadoz/awesome-php/blob/master/COLLABORATING.md) for details. ## Table of Contents - [Awesome PHP](#awesome-php) - - [Composer Repositories](#composer-repositories) - - [Dependency Management](#dependency-management) - - [Dependency Management Extras](#dependency-management-extras) - - [Frameworks](#frameworks) - - [Framework Extras](#framework-extras) - - [Components](#components) - - [Micro Frameworks](#micro-frameworks) - - [Micro Framework Extras](#micro-framework-extras) - - [Routers](#routers) - - [Templating](#templating) - - [Static Site Generators](#static-site-generators) - - [HTTP](#http) - - [Middlewares](#middlewares) - - [URL](#url) - - [Email](#email) - - [Files](#files) - - [Streams](#streams) - - [Dependency Injection](#dependency-injection) - - [Imagery](#imagery) - - [Testing](#testing) - - [Continuous Integration](#continuous-integration) - - [Documentation](#documentation) - - [Security](#security) - - [Passwords](#passwords) - - [Code Analysis](#code-analysis) - - [Code Quality](#code-quality) - - [Static Analysis](#static-analysis) - - [Architectural](#architectural) - - [Debugging and Profiling](#debugging-and-profiling) - - [Build Tools](#build-tools) - - [Task Runners](#task-runners) - - [Navigation](#navigation) - - [Asset Management](#asset-management) - - [Geolocation](#geolocation) - - [Date and Time](#date-and-time) - - [Event](#event) - - [Logging](#logging) - - [E-commerce](#e-commerce) - - [PDF](#pdf) - - [Office](#office) - - [Database](#database) - - [Migrations](#migrations) - - [NoSQL](#nosql) - - [Queue](#queue) - - [Search](#search) - - [Command Line](#command-line) - - [Authentication and Authorization](#authentication-and-authorization) - - [Markup](#markup) - - [Strings](#strings) - - [Numbers](#numbers) - - [Filtering and Validation](#filtering-and-validation) - - [API](#api) - - [Caching](#caching) - - [Data Structure and Storage](#data-structure-and-storage) - - [Notifications](#notifications) - - [Deployment](#deployment) - - [Internationalisation and Localisation](#internationalisation-and-localisation) - - [Third Party APIs](#third-party-apis) - - [Extensions](#extensions) - - [Miscellaneous](#miscellaneous) + - [Composer Repositories](#composer-repositories) + - [Dependency Management](#dependency-management) + - [Dependency Management Extras](#dependency-management-extras) + - [Frameworks](#frameworks) + - [Framework Extras](#framework-extras) + - [Content Management Systems](#content-management-systems-cms) + - [Components](#components) + - [Micro Frameworks](#micro-frameworks) + - [Micro Framework Extras](#micro-framework-extras) + - [Routers](#routers) + - [Templating](#templating) + - [Static Site Generators](#static-site-generators) + - [HTTP](#http) + - [Scraping](#scraping) + - [Middlewares](#middlewares) + - [URL](#url) + - [Email](#email) + - [Files](#Files) + - [Streams](#streams) + - [Dependency Injection](#dependency-injection) + - [Imagery](#imagery) + - [Testing](#testing) + - [Continuous Integration](#continuous-integration) + - [Documentation](#documentation) + - [Security](#security) + - [Passwords](#passwords) + - [Code Analysis](#code-analysis) + - [Code Quality](#code-quality) + - [Static Analysis](#static-analysis) + - [Architectural](#architectural) + - [Debugging and Profiling](#debugging-and-profiling) + - [Error Tracking and Monitoring Services](#error-tracking-and-monitoring-services) + - [Build Tools](#build-tools) + - [Task Runners](#task-runners) + - [Navigation](#navigation) + - [Asset Management](#asset-management) + - [Geolocation](#geolocation) + - [Date and Time](#date-and-time) + - [Event](#event) + - [Logging](#logging) + - [E-commerce](#e-commerce) + - [PDF](#pdf) + - [Office](#office) + - [Database](#database) + - [Migrations](#migrations) + - [NoSQL](#nosql) + - [Queue](#queue) + - [Search](#search) + - [Command Line](#command-line) + - [Authentication and Authorization](#authentication-and-authorization) + - [Markup and CSS](#markup-and-css) + - [JSON](#json) + - [Strings](#strings) + - [Numbers](#numbers) + - [Filtering and Validation](#filtering-and-validation) + - [API](#api) + - [Caching and Locking](#caching-and-locking) + - [Data Structure and Storage](#data-structure-and-storage) + - [Notifications](#notifications) + - [Deployment](#deployment) + - [Internationalisation and Localisation](#internationalisation-and-localisation) + - [Serverless](#serverless) + - [Configuration](#configuration) + - [Third Party APIs](#third-party-apis) + - [Extensions](#extensions) + - [Miscellaneous](#miscellaneous) - [Software](#software) - - [PHP Installation](#php-installation) - - [Development Environment](#development-environment) - - [Virtual Machines](#virtual-machines) - - [Text Editors and IDEs](#text-editors-and-ides) - - [Web Applications](#web-applications) - - [Infrastructure](#infrastructure) + - [PHP Installation](#php-installation) + - [Development Environment](#development-environment) + - [Virtual Machines](#virtual-machines) + - [Text Editors and IDEs](#text-editors-and-ides) + - [Web Applications](#web-applications) + - [Infrastructure](#infrastructure) - [Resources](#resources) - - [PHP Websites](#php-websites) - - [Other Websites](#other-websites) - - [PHP Books](#php-books) - - [PHP Videos](#php-videos) - - [PHP Podcasts](#php-podcasts) - - [PHP Reading](#php-reading) - - [PHP Internals Reading](#php-internals-reading) -- [Contributing](#contributing) + - [PHP Websites](#php-websites) + - [PHP Books](#php-books) + - [PHP Videos](#php-videos) + - [PHP Conferences](#php-conferences) + - [PHP Podcasts](#php-podcasts) + - [PHP Newsletters](#php-newsletters) + - [PHP Reading](#php-reading) + - [PHP Internals Reading](#php-internals-reading) ### Composer Repositories *Composer Repositories.* -* [Firegento](http://packages.firegento.com/) - Magento Module Composer Repository. +* [Firegento](https://packages.firegento.com/) - Magento Module Composer Repository. * [Packagist](https://packagist.org/) - The PHP Package Repository. * [Private Packagist](https://packagist.com/) - Composer package archive as a service for PHP. * [WordPress Packagist](https://wpackagist.org/) - Manage your plugins with Composer. -* [Zend Framework Packages](https://packages.zendframework.com/) - Zend Framework Composer Repository. ### Dependency Management *Libraries for dependency and package management.* -* [Composer 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. -* [Melody](http://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. ### Dependency Management Extras *Extras related to dependency management.* * [Composed](https://github.com/joshdifabio/composed) - A library to parse your project's Composer environment at runtime. -* [Composer Merge Plugin](https://github.com/wikimedia/composer-merge-plugin) - A composer plugin to merge several composer.json files. -* [Prestissimo](https://github.com/hirak/prestissimo) - A composer plugin which enables parallel install process. +* [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 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. * [Satis](https://github.com/composer/satis) - A static Composer repository generator. -* [tooly](https://github.com/tommy-muehle/tooly-composer-script) - A library to manage PHAR files in project using Composer. -* [Toran Proxy](https://toranproxy.com) - A static Composer repository and proxy. +* [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 Composer proxy for speed and reliability. (:warning: Toran Proxy is being phased out.) ### Frameworks *Web development frameworks.* -* [Aura Framework](http://auraphp.com/framework/) - A framework built from independent components. -* [CakePHP](https://cakephp.org/) - A rapid application development framework (CP). -* [Laravel 5](https://laravel.com/) - Another PHP framework (L5). -* [Nette](https://nette.org) - Another framework comprised of individual components. -* [Phalcon](https://phalconphp.com/en/) - A framework implemented as a C extension. -* [PPI Framework 2](https://github.com/ppi) - An interoperability framework. -* [Symfony](https://symfony.com/) - A framework comprised of individual components (SF). -* [Yii2](https://github.com/yiisoft/yii2/) - Another PHP framework. -* [Zend Framework 2](https://framework.zend.com) - Another framework comprised of individual components (ZF2). -* [Ice](https://www.iceframework.org/) - Another simple and fast PHP framework delivered as C-extension. +* [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). +* [Laravel](https://laravel.com/) - A web application framework with expressive, elegant syntax. +* [Nette](https://nette.org) - A web framework comprised of mature components. +* [Phalcon](https://phalcon.io/en-us) - A framework implemented as a C extension. +* [Spiral](https://spiral.dev/) - A high-performance PHP/Go 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. ### Framework Extras *Extras related to web development frameworks.* * [CakePHP CRUD](https://github.com/friendsofcake/crud) - A Rapid Application Development (RAD) plugin for CakePHP. -* [Knp RAD Components](http://rad.knplabs.com/) - A set of Rapid Application Development (RAD) components for Symfony. -* [Symfony CMF](https://github.com/symfony-cmf/symfony-cmf) - A Content Management Framework to create custom CMS. +* [Knp RAD Components](https://rad.knplabs.com/) - A set of Rapid Application Development (RAD) components for Symfony. +* [LaravelS](https://github.com/hhxsv5/laravel-s) - An out-of-the-box adapter between Laravel/Lumen and Swoole. +* [Livewire](https://livewire.laravel.com/) - Powerful, dynamic, front-end UIs without leaving PHP. + +### Content Management Systems (CMS) +*Tools for managing digital content.* + +* [Backdrop](https://backdropcms.org) - A CMS targeting small-to-medium-sized business and non-profits (a fork of Drupal). +* [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. +* [Drupal](https://www.drupal.org) - An enterprise level CMS. +* [Grav](https://github.com/getgrav/grav) - A modern flat-file CMS. +* [Joomla](https://www.joomla.org/) - Another leading CMS. +* [Kirby](https://getkirby.com/) - A flat-file CMS that adapts to any project. +* [Magento](https://github.com/magento/magento2) - The most popular e-commerce platform. +* [Moodle](https://moodle.org/) - An open-source learning platform. +* [Pico CMS](https://picocms.org/) - A stupidly simple, blazing fast, flat file CMS. +* [Statamic](https://statamic.com/) - Build beautiful, easy-to-manage websites. +* [WordPress](https://github.com/WordPress/WordPress) - A blogging platform and CMS. ### Components *Standalone components from web development frameworks and development groups.* -* [Aura](http://auraphp.com/) - Independent components, fully decoupled from each other and from any framework. +* [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. -* [Hoa Project](https://hoa-project.net/En/) - Another package of PHP components. +* [Laravel Components](https://github.com/illuminate) - The Laravel Framework components. * [League of Extraordinary Packages](https://thephpleague.com/) - A PHP package development group. -* [Symfony Components](http://symfony.com/doc/master/components/index.html) - The components that make Symfony. -* [Zend Framework 2 Components](https://docs.zendframework.com/) - The components that make Zend Framework. +* [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. +* [Laminas Components](https://docs.laminas.dev/components/) - The components that make the Laminas Framework. ### Micro Frameworks *Micro frameworks and routers.* -* [Bullet PHP](http://bulletphp.com/) - A micro framework for building REST APIs. -* [Lumen](https://lumen.laravel.com) - A micro-framework by Laravel. -* [Radar](https://github.com/radarphp/Radar.Adr) - An Action-Domain-Responder implementation for PHP. +* [Laravel-Zero](https://laravel-zero.com) - A micro-framework for console applications. +* [Mezzio](https://getexpressive.org/) - A micro-framework by Laminas. +* [Minicli](https://github.com/minicli/minicli) - Minimalist, dependency-free framework for building CLI-centric PHP applications. +* [Silly](https://github.com/mnapoli/silly) - A micro-framework for CLI applications. * [Slim](https://www.slimframework.com/) - Another simple micro framework. ### Micro Framework Extras *Extras related to micro frameworks and routers.* -* [Silex Skeleton](https://github.com/silexphp/Silex-Skeleton) - A project skeleton for Silex. -* [Silex Web Profiler](https://github.com/silexphp/Silex-WebProfiler) - A web debug toolbar for Silex. * [Slim Skeleton](https://github.com/slimphp/Slim-Skeleton) - A skeleton for Slim. * [Slim Twig View](https://github.com/slimphp/Slim-Views) - Integrate Twig into Slim. * [Slim PHP View](https://github.com/slimphp/PHP-View) - A simple PHP renderer for Slim. @@ -171,20 +197,19 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT ### Templating *Libraries and tools for templating and lexing.* -* [Aura.View](https://github.com/auraphp/Aura.View) - Provides TemplateView and TwoStepView using PHP as the tempting language, with support for partials, sections, and helpers. -* [Foil](https://github.com/FoilPHP/Foil) - Another native PHP templating library. +* [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. * [Mustache](https://github.com/bobthecow/mustache.php) - A PHP implementation of the Mustache template language. -* [PHPTAL](http://phptal.org/) - A PHP implementation of the [TAL](https://en.wikipedia.org/wiki/Template_Attribute_Language) templating language. +* [PHPTAL](https://phptal.org/) - A PHP implementation of the [TAL](https://en.wikipedia.org/wiki/Template_Attribute_Language) templating language. * [Plates](http://platesphp.com/) - A native PHP templating library. * [Smarty](https://www.smarty.net/) - A template engine to complement PHP. * [Twig](https://twig.symfony.com/) - A comprehensive templating language. -* [Tale Jade](https://github.com/Talesoft/tale-jade) - A PHP implementation of the Jade template language. ### Static Site Generators *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. +* [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. * [Spress](http://spress.yosymfony.com) - An extensible tool that converts Markdown and Twig into HTML. @@ -193,28 +218,31 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [Buzz](https://github.com/kriswallsmith/Buzz) - Another HTTP client. * [Guzzle]( https://github.com/guzzle/guzzle) - A comprehensive HTTP client. -* [HTTPFul](https://github.com/nategood/httpful) - A chainable HTTP client. * [HTTPlug](http://httplug.io) - An HTTP client abstraction without binding to a specific implementation. -* [PHP VCR](http://php-vcr.github.io/) - A library for recording and replaying HTTP requests. -* [Requests](https://github.com/rmccue/Requests) - A simple HTTP library. +* [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. +* [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. -* [zend-diactoros](https://github.com/zendframework/zend-diactoros) - PSR-7 HTTP Message implementation. +* [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. ### Scraping -*Libraries for scraping websites.* +*Libraries for scraping websites and detecting crawlers.* +* [Chrome PHP](https://github.com/chrome-php/chrome) - Instrument headless Chrome/Chromium instances from PHP. +* [CrawlerDetect](https://github.com/JayBizzle/Crawler-Detect) - A PHP class for detecting bots/crawlers/spiders via the user agent. +* [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. -* [Goutte](https://github.com/FriendsOfPHP/Goutte) - A simple web scraper. * [PHP Spider](https://github.com/mvdbos/php-spider) - A configurable and extensible PHP web spider. +* [Symfony Panther](https://github.com/symfony/panther) - A browser testing and web crawling library for PHP and Symfony. ### Middlewares *Libraries for building application using middlewares.* -* [Expressive](https://zendframework.github.io/zend-expressive/) - PSR-7 Middleware framework from Zend. -* [PSR7-Middlewares](https://github.com/oscarotero/psr7-middlewares) - Inspiring collection of handy middlewares. +* [PSR-7 Middlewares](https://github.com/oscarotero/psr7-middlewares) - Inspiring collection of handy middlewares. * [Relay](https://github.com/relayphp/Relay.Relay) - A PHP 5.5 PSR-7 middleware dispatcher. -* [Stack](https://github.com/stackphp) - A library of stackable middleware for Silex/Symfony. -* [zend-stratigility](https://github.com/zendframework/zend-stratigility) - Middleware for PHP built on top of PSR-7. +* [Stack](https://github.com/stackphp) - A library of stackable middleware for Symfony. +* [Laminas Stratigility](https://github.com/laminas/laminas-stratigility) - Middleware for PHP built on top of PSR-7. ### URL *Libraries for parsing URLs.* @@ -233,22 +261,24 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [Fetch](https://github.com/tedious/Fetch) - An IMAP library. * [Mautic](https://github.com/mautic/mautic) - Email marketing automation * [PHPMailer](https://github.com/PHPMailer/PHPMailer) - Another mailer solution. -* [Stampie](https://github.com/Stampie/Stampie) - A library for email services such as [SendGrid](https://sendgrid.com/), [PostMark](https://postmarkapp.com), [MailGun](https://www.mailgun.com/) and [Mandrill](http://www.mandrill.com). +* [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/en-us), [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. +* [Symfony Mailer](https://github.com/symfony/mailer) - A powerful library for creating and sending emails. ### Files *Libraries for file manipulation and MIME type detection.* * [CSV](https://github.com/thephpleague/csv) - A CSV data manipulation library. -* [Flysystem](https://github.com/thephpleague/Flysystem) - Another filesystem abstraction layer. +* [Flysystem](https://github.com/thephpleague/Flysystem) - Abstraction for local and remote filesystems. * [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](http://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. ### Streams *Libraries for working with streams.* +* [ByteStream](https://amphp.org/byte-stream) - An asynchronous stream abstraction. * [Streamer](https://github.com/fzaninotto/Streamer) - A simple object-orientated stream wrapper library. ### Dependency Injection @@ -259,9 +289,9 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [Auryn](https://github.com/rdlowrey/Auryn) - A recursive dependency injector. * [Container](https://github.com/thephpleague/container) - Another flexible dependency injection container. * [Disco](https://github.com/bitExpert/disco) - A PSR-11 compatible, annotation-based dependency injection container. -* [PHP-DI](http://php-di.org/) - A dependency injection container that supports autowiring. +* [PHP-DI](https://php-di.org/) - A dependency injection container that supports autowiring. * [Pimple](https://pimple.symfony.com/) - A tiny dependency injection container. -* [Symfony DI](https://github.com/symfony/dependency-injection) - A dependency injection container component (SF). +* [Symfony DI](https://github.com/symfony/dependency-injection) - A dependency injection container component. ### Imagery *Libraries for manipulating images.* @@ -270,7 +300,7 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [Glide](https://github.com/thephpleague/glide) - An on-demand image manipulation library. * [Image Hash](https://github.com/jenssegers/imagehash) - A library for generating perceptual image hashes. * [Image Optimizer](https://github.com/psliwa/image-optimizer) - A library for optimizing images. -* [Imagine](http://imagine.readthedocs.io/en/latest/index.html) - An image manipulation library. +* [Imagine](https://imagine.readthedocs.io/en/latest/index.html) - An image manipulation library. * [Intervention Image](https://github.com/Intervention/image) - Another image manipulation library. * [PHP Image Workshop](https://github.com/Sybio/ImageWorkshop) - Another image manipulation library. @@ -278,65 +308,65 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT *Libraries for testing codebases and generating test data.* * [Alice](https://github.com/nelmio/alice) - An expressive fixture generation library. -* [AspectMock](https://github.com/Codeception/AspectMock) - A mocking framework for PHPUnit/Codeception. * [Atoum](https://github.com/atoum/atoum) - A simple testing library. -* [Behat](http://docs.behat.org/en/v2.5/) - A behaviour driven development (BDD) testing framework. +* [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. -* [DBUnit](https://github.com/sebastianbergmann/dbunit) - A database testing library for PHPUnit. -* [Faker](https://github.com/fzaninotto/Faker) - A fake data generator library. -* [HTTP Mock](https://github.com/InterNations/http-mock) - A library for mocking HTTP requests in unit tests. +* [Faker](https://github.com/fakerphp/faker) - A fake data generator library. +* [Foundry](https://github.com/zenstruck/foundry) - A fixture factory generation library for Doctrine. +* [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. -* [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. +* [Nette Tester](https://github.com/nette/tester) - A productive and enjoyable parallel unit testing framework. * [ParaTest](https://github.com/paratestphp/paratest) - A parallel testing library for PHPUnit. -* [Peridot](https://github.com/peridot-php/peridot) - An event driven test framework. -* [Phake](https://github.com/mlively/Phake) - Another mock object library for testing. -* [Pho](https://github.com/danielstjules/pho) - Another behaviour driven development testing framework. +* [Pest](https://pestphp.com/) - A testing framework with a focus on simplicity. +* [Phake](https://github.com/phake/phake) - Another mock object library for testing. * [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. * [PHPSpec](https://github.com/phpspec/phpspec) - A design by specification unit testing library. * [PHPT](https://qa.php.net/write-test.php) - A test tool used by PHP itself. * [PHPUnit](https://github.com/sebastianbergmann/phpunit) - A unit testing framework. * [Prophecy](https://github.com/phpspec/prophecy) - A highly opinionated mocking framework. -* [VFS Stream](https://github.com/mikey179/vfsStream) - A virtual filesystem stream wrapper for testing. +* [VFS Stream](https://github.com/bovigo/vfsStream) - A virtual filesystem stream wrapper for testing. ### Continuous Integration *Libraries and applications for continuous integration.* * [CircleCI](https://circleci.com) - A continuous integration platform. -* [GitlabCi](https://about.gitlab.com/gitlab-ci/) - Let GitLab CI test, build, deploy your code. TravisCi like. -* [Jenkins](https://jenkins.io/index.html) - A continous integration platform with [PHP support](http://jenkins-php.org/index.html). +* [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/). * [JoliCi](https://github.com/jolicode/JoliCi) - A continuous integration client written in PHP and powered by Docker. -* [PHPCI](https://www.phptesting.org/) - An open source continuous integration platform for PHP. -* [SemaphoreCI](https://semaphoreci.com/) - A continuous integration platform for open source and private projects. -* [Shippable](https://www.shippable.com/) - A Docker based continious integration platform for open source and private projects. -* [Travis CI](https://travis-ci.org/) - A continuous integration platform. -* [Wercker](http://www.wercker.com/) - A continuous integration platform. +* [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. +* [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://www.travis-ci.com) - A continuous integration platform. +* [Setup PHP](https://github.com/shivammathur/setup-php) - A GitHub Action for PHP. ### Documentation *Libraries for generating project documentation.* * [APIGen](https://github.com/apigen/apigen) - Another API documentation generator. -* [daux.io](https://github.com/justinwalsh/daux.io) - A documentation generator which uses Markdown files. -* [PHP Documentor 2](https://github.com/phpDocumentor/phpDocumentor2) - A documentation generator. -* [phpDox](http://phpdox.de/) - A documentation generator for PHP projects (that is not limited to API documentation). -* [Sami](https://github.com/FriendsOfPHP/Sami) - An API documentation generator. +* [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. +* [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 -*Libraries for generating secure random numbers, encrypting data and scanning for vulnerabilities.* +*Libraries for generating secure random numbers, encrypting data and scanning and testing for vulnerabilities.* * [Halite](https://paragonie.com/project/halite) - A simple library for encryption using [libsodium](https://github.com/jedisct1/libsodium). * [HTML Purifier](https://github.com/ezyang/htmlpurifier) - A standards compliant HTML filter. -* [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. +* [OWASP](https://owasp.org/) - Explore the world of cyber security. +* [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 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()` -* [RandomLib](https://github.com/ircmaxell/RandomLib) - A library for generating random numbers and strings. -* [SensioLabs Security Check](https://security.sensiolabs.org/) - A web tool to check your Composer dependencies for security advisories. -* [TCrypto](https://github.com/timoh6/TCrypto) - A simple encrypted key-value storage library. -* [VAddy](https://vaddy.net/) - A continuous security testing platform for web applications. -* [Zed](https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project) - An integrated penetration testing tool for web applications. +* [Roave Security Advisories](https://github.com/Roave/SecurityAdvisories) - This package ensures that your application doesn't have installed dependencies with known security vulnerabilities. +* [Secure Headers](https://github.com/BePsvPT/secure-headers) - A package that adds security related headers to HTTP response. +* [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. +* [Zap](https://github.com/zaproxy/zaproxy) - An integrated penetration testing tool for web applications. ### Passwords *Libraries and tools for working with and storing passwords.* @@ -347,7 +377,7 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [Password Validator](https://github.com/jeremykendall/password-validator) - A library for validating and upgrading password hashes. * [Password-Generator](https://github.com/hackzilla/password-generator) - PHP library to generate random passwords. * [PHP Password Lib](https://github.com/ircmaxell/PHP-PasswordLib) - A library for generating and validating passwords. -* [phpass](http://www.openwall.com/phpass/) - A portable password hashing framework. +* [phpass](https://www.openwall.com/phpass/) - A portable password hashing framework. * [Zxcvbn PHP](https://github.com/bjeavons/zxcvbn-php) - A realistic PHP password strength estimate library based on Zxcvbn JS. ### Code Analysis @@ -356,20 +386,24 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [Better Reflection](https://github.com/Roave/BetterReflection) - AST-based reflection library that allows analysis and manipulation of code * [Code Climate](https://codeclimate.com) - An automated code review. * [Editorconfig-Checker](https://github.com/editorconfig-checker/editorconfig-checker.php) - A command line utility which verifies that your files implement your `.editorconfig` rules. +* [GrumPHP](https://github.com/phpro/grumphp) - A PHP code-quality tool. +* [PHP Magic Number Detector](https://github.com/povils/phpmnd) - A library that detects magic numbers in code. * [PHP Parser](https://github.com/nikic/PHP-Parser) - A PHP parser written in PHP. * [PHP Semantic Versioning Checker](https://github.com/tomzx/php-semver-checker) - A command line utility that compares two source sets and determines the appropriate semantic versioning to apply. +* [Phpactor](https://github.com/phpactor/phpactor) - PHP completion, refactoring and introspection tool. * [PHPLOC](https://github.com/sebastianbergmann/phploc) - A tool for quickly measuring the size of a PHP project. * [PHPQA](https://github.com/EdgedesignCZ/phpqa) - A tool for running QA tools (phploc, phpcpd, phpcs, pdepend, phpmd, phpmetrics). -* [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. * [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 *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 CS Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer) - A coding standards fixer library. -* [PHP Mess Detector](https://phpmd.org/) - A library that scans code for bugs, sub-optimal code, unused parameters and more. +* [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. * [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. @@ -377,10 +411,12 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT *Libraries for performing static analysis of PHP code.* * [Exakat](https://github.com/exakat/exakat) - A static analysis engine for PHP. +* [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. * [phan](https://github.com/phan/phan) - A static analyzer based on PHP 7+ and the php-ast extension. -* [PHPCompatibility](https://github.com/wimg/PHPCompatibility) - A PHP compatibility checker for PHP CodeSniffer. -* [PhpDependencyAnalysis](https://github.com/mamuz/PhpDependencyAnalysis) - A tool to create customisable dependency graphs. +* [PHP 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. +* [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 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. @@ -389,62 +425,79 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT ### Architectural *Libraries related to design patterns, programming approaches and ways to organize code.* -* [Design Patterns PHP](https://github.com/domnikl/DesignPatternsPHP) - A repository of software patterns implemented in PHP. -* [Finite](http://yohan.giarel.li/Finite/) - A simple PHP finite state machine. +* [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. * [Functional PHP](https://github.com/lstrojny/functional-php) - A functional programming library. * [Iter](https://github.com/nikic/iter) - A library that provides iteration primitives using generators. -* [Patchwork](http://patchwork2.org/) - A library for redefining userland functions. +* [IterTools PHP](https://github.com/markrogoyski/itertools-php) - A library that provides functionality for working with iterable entities (similar to itertools library in Python). * [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. * [RulerZ](https://github.com/K-Phoen/rulerz) - A powerful rule engine and implementation of the Specification pattern. ### Debugging and Profiling -*Libraries and tools for debugging and profiling code.* +*Libraries and tools for debugging errors and profiling code.* -* [APM](http://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. -* [Blackfire.io](https://blackfire.io) - A low-overhead code profiler. * [Kint](https://github.com/kint-php/kint) - A debugging and profiling tool. +* [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 Debug Bar](http://phpdebugbar.com/) - A debugging toolbar. * [PHPBench](https://github.com/phpbench/phpbench) - A benchmarking Framework. -* [Tideways.io](https://tideways.com/) - Monitoring and profiling tool +* [PHPSpy](https://github.com/adsr/phpspy) - A low-overhead sampling profiler. +* [Symfony VarDumper](https://github.com/symfony/var-dumper) - A variable dumper component. * [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. * [xDebug](https://github.com/xdebug/xdebug) - A debug and profile tool for PHP. * [XHProf](https://github.com/phacility/xhprof) - A profiling tool originally developed by Facebook. -* [Z-Ray](http://www.zend.com/en/products/server/z-ray) - A debug and profile tool for Zend Server. +* [Z-Ray](https://www.zend.com/products/z-ray) - A debug and profile tool for Zend Server. + +### Error Tracking and Monitoring Services +*Self-hosted or cloud-based application performance monitoring & error tracking tools* + +* [Blackfire](https://www.blackfire.io) - A low-overhead code profiler. +* [BugSnag](https://www.bugsnag.com/) - Error and Real User Monitoring. +* [Honeybadger](https://www.honeybadger.io/) - Error Tracking & Application Monitoring for Developers. +* [Rollbar](https://rollbar.com/) - Error Logging & Tracking Service for Software Teams. +* [Sentry](https://sentry.io/welcome/) - Application Performance Monitoring & Error Tracking Software. +* [Tideways](https://tideways.com/) - Monitoring and profiling tool. ### Build Tools *Project build and automation tools.* -* [Box](https://github.com/box-project/box2) - 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. * [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 *Libraries for automating and running tasks.* -* [Bldr](http://bldr.io/) - A PHP Task runner built on Symfony components. +* [Bldr](https://bldr.io/) - A PHP Task runner built on Symfony components. * [Jobby](https://github.com/jobbyphp/jobby) - A PHP cron job manager without modifying crontab. * [Robo](https://github.com/consolidation/Robo) - A PHP Task runner with object-orientated configurations. -* [Task](http://taskphp.github.io/) - A pure PHP task runner inspired by Grunt and Gulp. +* [Task](https://taskphp.github.io/) - A pure PHP task runner inspired by Grunt and Gulp. ### Navigation *Tools for building navigation structures.* * [KnpMenu](https://github.com/KnpLabs/KnpMenu) - A menu library. +* [Menu](https://github.com/spatie/menu) - A flexible menu library with a fluent interface. ### Asset Management *Tools for managing, compressing and minifying website assets.* * [JShrink](https://github.com/tedious/JShrink) - A JavaScript minifier library. -* [Munee](https://github.com/meenie/munee) - An asset optimiser library. -* [Puli](https://github.com/puli/repository) - A library for determining assets absolute paths. -* [BowerPHP](https://github.com/Bee-Lab/bowerphp) - A PHP implementation of Bower. A package manager for the web +* [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 Encore](https://github.com/symfony/webpack-encore) - A simple but powerful API for processing and compiling assets built around Webpack. ### Geolocation *Libraries for geocoding addresses and working with latitudes and longitudes.* -* [GeoCoder](http://geocoder-php.org/) - A geocoding library. +* [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. * [GeoJSON](https://github.com/jmikola/geojson) - A GeoJSON implementation. * [GeoTools](https://github.com/thephpleague/geotools) - A library of geo-related tools. * [PHPGeo](https://github.com/mjaschen/phpgeo) - A simple geo library. @@ -452,27 +505,28 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT ### Date and Time *Libraries for working with dates and times.* -* [CalendR](http://yohan.giarel.li/CalendR/) - A calendar management library. +* [CalendR](https://yohan.giarel.li/CalendR/) - A calendar management library. * [Carbon](https://github.com/briannesbitt/Carbon) - A simple DateTime API extension. * [Chronos](https://github.com/cakephp/chronos) - A DateTime API extension supporting both mutable and immutable date/time. * [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 *Libraries that are event-driven or implement non-blocking event loops.* - * [Amp](https://github.com/amphp/amp) - An event driven non-blocking I/O library. * [Broadway](https://github.com/broadway/broadway) - An event source and CQRS library. -* [Cake Event](https://github.com/cakephp/event) - An event dispatcher library (CP). -* [Elephant.io](https://github.com/Wisembly/Elephant.io) - Yet another web socket library. +* [CakePHP Event](https://github.com/cakephp/event) - An event dispatcher library. +* [Elephant.io](https://github.com/ElephantIO/elephant.io) - Yet another web socket 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. -* [Hoa EventSource](https://github.com/hoaproject/Eventsource) - An event source library. -* [Hoa WebSocket](https://github.com/hoaproject/Websocket) - Another web socket library. +* [Fast CGI Client](https://github.com/hollodotme/fast-cgi-client) - A client to make synchronous/asynchronous requests through php-fpm socket. +* [Pawl](https://github.com/ratchetphp/Pawl) - An asynchronous web socket client. * [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. * [Ratchet](https://github.com/ratchetphp/Ratchet) - A web socket library. -* [React](https://github.com/reactphp/react) - An event driven non-blocking I/O library. +* [ReactPHP](https://github.com/reactphp/reactphp) - An event driven non-blocking I/O library. * [RxPHP](https://github.com/ReactiveX/RxPHP) - A reactive extension library. +* [Swoole](https://github.com/swoole/swoole-src) - An event-driven asynchronous and concurrent networking communication framework with high performance for PHP written in C. * [Workerman](https://github.com/walkor/Workerman) - An event driven non-blocking I/O library. ### Logging @@ -484,8 +538,10 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT *Libraries and applications for taking payments and building online e-commerce stores.* * [Money](https://github.com/moneyphp/money) - A PHP implementation of Fowler's money pattern. +* [Brick\Money](https://github.com/brick/money) - A money library for PHP, with support for contexts, cash roundings, currency conversion. * [OmniPay](https://github.com/thephpleague/omnipay) - A framework agnostic multi-gateway payment processing library. * [Payum](https://github.com/payum/payum) - A payment abstraction library. +* [Shopsys Framework](https://github.com/shopsys/shopsys/) - An open source e-commerce platform for in-house development teams. * [Shopware](https://github.com/shopware/shopware) - Highly customizable e-commerce software * [Swap](https://github.com/florianv/swap) - An exchange rates library. * [Sylius](https://sylius.com/) - An open source e-commerce solution. @@ -493,18 +549,19 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT ### PDF *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. -* [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. -* [WKHTMLToPDF](https://github.com/wkhtmltopdf/wkhtmltopdf) - A tool to convert HTML to PDF. +* [TCPDF](https://tcpdf.org/) - An open source PHP class for generating PDF documents. ### Office *Libraries for working with office suite documents.* * [PHPPowerPoint](https://github.com/PHPOffice/PHPPresentation) - A library for working with Microsoft PowerPoint Presentations. * [PHPWord](https://github.com/PHPOffice/PHPWord) - A library for working with Microsoft Word documents. -* [PHPSpreadsheet](https://github.com/PHPOffice/PhpSpreadsheet) - A pure PHP library for reading and writing spreadsheet files (successor of PHPExcel) - +* [PHPSpreadsheet](https://github.com/PHPOffice/PhpSpreadsheet) - A pure PHP library for reading and writing spreadsheet files (successor of PHPExcel). +* [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 *Libraries for interacting with databases using object-relational mapping (ORM) or datamapping techniques.* @@ -512,15 +569,15 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [Aura.Sql](https://github.com/auraphp/Aura.Sql) - Provides an extension to the native PDO along with a profiler and connection locator. * [Aura.SqlQuery](https://github.com/auraphp/Aura.SqlQuery) - Independent query builders for MySQL, PostgreSQL, SQLite, and Microsoft SQL Server. * [Baum](https://github.com/etrepat/baum) - A nested set implementation for Eloquent. -* [Cake ORM](https://github.com/cakephp/orm) - Object-Relational Mapper, implemented using the DataMapper pattern (CP). -* [Doctrine Extensions](https://github.com/Atlantic18/DoctrineExtensions) - A collection of Doctrine behavioural extensions. +* [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. +* [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. -* [Eloquent](https://github.com/illuminate/database) - A simple ORM (L5). -* [LazyRecord](https://github.com/corneltek/LazyRecord) - A fast ORM designed for simplicity, extendability and performance. +* [Laravel Eloquent](https://github.com/illuminate/database) - A simple ORM. * [Pomm](https://github.com/chanmix51/Pomm) - An Object Model Manager for PostgreSQL. -* [Propel](http://propelorm.org/) - A fast ORM, migration library and query builder. * [ProxyManager](https://github.com/Ocramius/ProxyManager) - A set of utilities to generate proxy objects for data mappers. * [RedBean](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. ### Migrations @@ -535,42 +592,41 @@ Libraries to help manage database schemas and migrations. ### NoSQL *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. -* [Predis](https://github.com/nrk/predis) - A feature complete Redis library. +* [Predis](https://github.com/predis/predis) - A feature-complete Redis library. ### Queue *Libraries for working with event and task queues.* * [Bernard](https://github.com/bernardphp/bernard) - A multibackend abstraction library. * [BunnyPHP](https://github.com/jakubkulhan/bunny) - A performant pure-PHP AMQP (RabbitMQ) sync and also async (ReactPHP) library. -* [Pheanstalk](https://github.com/pda/pheanstalk) - A Beanstalkd client library. +* [Pheanstalk](https://github.com/pheanstalk/pheanstalk) - A Beanstalkd client library. * [PHP AMQP](https://github.com/php-amqplib/php-amqplib) - A pure PHP AMQP library. * [Tarantool Queue](https://github.com/tarantool-php/queue) - PHP bindings for Tarantool Queue. * [Thumper](https://github.com/php-amqplib/Thumper) - A RabbitMQ pattern library. +* [Enqueue](https://github.com/php-enqueue/enqueue-dev) - A message queue packages for PHP that supports RabbitMQ, AMQP, STOMP, Amazon SQS, Redis and Doctrine transports. ### Search *Libraries and software for indexing and performing search queries on data.* * [Elastica](https://github.com/ruflin/Elastica) - A client library for ElasticSearch. * [ElasticSearch PHP](https://github.com/elastic/elasticsearch-php) - The official client library for [ElasticSearch](https://www.elastic.co/). -* [Solarium](http://www.solarium-project.org/) - A client library for [Solr](http://lucene.apache.org/solr/). -* [Sphinx Search](https://github.com/ripaclub/sphinxsearch) - Sphinx Search library provides SphinxQL indexing and searching features -* [SphinxQL query builder](http://foolcode.github.io/SphinxQL-Query-Builder/) - A query library for the [Sphinx](http://sphinxsearch.com/) search engine. +* [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. ### Command Line *Libraries related to the command line.* * [Aura.Cli](https://github.com/auraphp/Aura.Cli) - Provides the equivalent of request ( Context ) and response ( Stdio ) objects for the command line interface, including Getopt support, and an independent Help object for describing commands. -* [Boris](https://github.com/borisrepl/boris) - A tiny PHP REPL. * [Cilex](https://github.com/Cilex/Cilex) - A micro framework for building command line tools. * [CLI Menu](https://github.com/php-school/cli-menu) - A library for building CLI menus. * [CLIFramework](https://github.com/c9s/CLIFramework) - A command-line framework supports zsh/bash completion generation, subcommands and option constraints. It also powers phpbrew. -* [CLImate](https://github.com/thephpleague/climate) - A library for outputting colours and special formatting. +* [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. * [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. * [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. * [ShellWrap](https://github.com/MrRio/shellwrap) - A simple command line wrapper library. @@ -582,40 +638,53 @@ Libraries to help manage database schemas and migrations. * [Json Web Token](https://github.com/lcobucci/jwt) - Json Tokens to authenticate and transmit information. * [OAuth 1.0 Client](https://github.com/thephpleague/oauth1-client) - An OAuth 1.0 client library. * [OAuth 2.0 Client](https://github.com/thephpleague/oauth2-client) - An OAuth 2.0 client library. -* [OAuth2 Server](http://bshaffer.github.io/oauth2-server-php-docs/) - Another OAuth2 server implementation. -* [OAuth2 Server](http://oauth2.thephpleague.com/) - An OAuth2 authentication server, resource server and client library. +* [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. * [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](https://cartalyst.com/manual/sentinel/2.0) - A framework agnostic authentication & authorisation library. * [TwitterOAuth](https://github.com/abraham/twitteroauth) - A Twitter OAuth library. -### Markup -*Libraries for working with markup.* +### Markup and CSS +*Libraries for working with markup and CSS formats. -* [Cebe Markdown](https://github.com/cebe/markdown) - An fast and extensible Markdown parser. -* [CommonMark PHP](https://github.com/thephpleague/commonmark) - A Markdown parser which supports the full [CommonMark spec](https://spec.commonmark.org/). +* [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/). * [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. * [HTML5 PHP](https://github.com/Masterminds/html5-php) - An HTML5 parser and serializer library. * [Parsedown](https://github.com/erusev/parsedown) - Another Markdown parser. +* [PHP CSS Parser](https://github.com/MyIntervals/PHP-CSS-Parser) - A Parser for CSS Files written in PHP. * [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 *Libraries for parsing and manipulating strings.* * [Agent](https://github.com/jenssegers/agent) - A PHP desktop/mobile user agent parser, based on Mobiledetect. * [ANSI to HTML5](https://github.com/sensiolabs/ansi-to-html) - An ANSI to HTML5 converter library. -* [Color Jizz](https://github.com/mikeemoo/ColorJizz-PHP) - A library for manipulating and converting colours. +* [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. -* [Hoa String](https://github.com/hoaproject/Ustring) - Another UTF-8 string library. +* [Hyphenation](https://github.com/heiglandreas/Org_Heigl_Hyphenator) - Text-Hyphenation based on the TeX-hyphenation Algorithm * [Jieba-PHP](https://github.com/fukuball/jieba-php) - A PHP port of Python's jieba. Chinese text segmentation for natural language processing. * [Mobile-Detect](https://github.com/serbanghita/Mobile-Detect) - A lightweight PHP class for detecting mobile devices (including tablets). * [Patchwork UTF-8](https://github.com/nicolas-grekas/Patchwork-UTF8) - A portable library for working with UTF-8 strings. +* [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. * [Slugify](https://github.com/cocur/slugify) - A library to convert strings to slugs. * [SQL Formatter](https://github.com/jdorn/sql-formatter/) - A library for formatting SQL statements. -* [Stringy](https://github.com/danielstjules/Stringy) - A string manipulation library with multibyte support. +* [Stringy](https://github.com/voku/Stringy) - A string manipulation library with multibyte support. * [UA Parser](https://github.com/tobie/ua-parser/tree/master/php) - A library for parsing user agent strings. * [URLify](https://github.com/jbroadway/urlify) - A PHP port of Django's URLify.js. * [UUID](https://github.com/ramsey/uuid) - A library for generating UUIDs. @@ -623,18 +692,24 @@ Libraries to help manage database schemas and migrations. ### Numbers *Libraries for working with numbers.* +* [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. +* [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. * [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. +* [MathPHP](https://github.com/markrogoyski/math-php) - A math library for PHP. ### Filtering and Validation *Libraries for filtering and validating data.* +* [Assert](https://github.com/beberlei/assert) - A validation library with a rich set of assertions. Supports assertion chaining and lazy assertions. * [Aura.Filter](https://github.com/auraphp/Aura.Filter) - Provides tools to validate and sanitize objects and arrays. -* [Cake Validation](https://github.com/cakephp/validation) - Another validation library (CP). +* [CakePHP Validation](https://github.com/cakephp/validation) - Another validation 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. * [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. * [Upload](https://github.com/brandonsavage/Upload) - A library for handling file uploads and validation. @@ -644,41 +719,42 @@ Libraries to help manage database schemas and migrations. ### API *Libraries and web tools for developing APIs.* -* [API Platform](https://api-platform.com ) - Expose in minutes an hypermedia REST API that embraces JSON-LD, Hydra format. -* [Apigility](https://github.com/zfcampus/zf-apigility-skeleton) - An API builder built with Zend Framework 2. +* [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. * [Drest](https://github.com/leedavis81/drest) - A library for exposing Doctrine entities as REST resource endpoints. * [HAL](https://github.com/blongden/hal) - A Hypertext Application Language (HAL) builder library. * [Hateoas](https://github.com/willdurand/Hateoas) - A HATEOAS REST web service library. +* [Jane](https://github.com/janephp/janephp/) - An OpenApi client generator with validation support. * [Negotiation](https://github.com/willdurand/Negotiation) - A content negotiation library. * [Restler](https://github.com/Luracast/Restler) - A lightweight framework to expose PHP methods as RESTful web API. -* [wsdl2phpgenerator](https://github.com/wsdl2phpgenerator/wsdl2phpgenerator) - A tool to generate PHP classes from SOAP WSDL files. +* [PackageGenerator](https://github.com/WsdlToPhp/PackageGenerator) - Package Generator generates a PHP SDK from any WSDL. -### Caching -*Libraries for caching data.* +### Caching and Locking +*Libraries for caching data and acquiring locks.* -* [Alternative PHP Cache (APC)](http://php.net/manual/en/book.apc.php) - Open opcode cache for PHP. -* [APIx Cache](https://github.com/apix/cache) - A thin PSR-6 cache wrapper to various caching backends emphasising cache tagging and indexing. +* [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. -* [Cake Cache](https://github.com/cakephp/cache) - A caching library (CP). +* [CakePHP Cache](https://github.com/cakephp/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. * [Stash](https://github.com/tedious/Stash) - Another library for caching. -* [Zend Cache](https://github.com/zendframework/zend-cache) - Another caching library (ZF2). +* [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 *Libraries that implement data structure or storage techniques.* -* [Cake Collection](https://github.com/cakephp/collection) - A simple collections library (CP). -* [Collections](https://github.com/italolelis/collections) - Collections Abstraction library for PHP. +* [CakePHP Collection](https://github.com/cakephp/collection) - A simple collections library. * [Fractal](https://github.com/thephpleague/fractal) - A library for converting complex data structures to JSON output. * [Ginq](https://github.com/akanehara/ginq) - Another PHP library based on .NET's LINQ. * [JsonMapper](https://github.com/cweiske/jsonmapper) - A library that maps nested JSON structures onto PHP classes. +* [JSON Machine](https://github.com/halaxa/json-machine) - Provides iteration over huge JSONs using simple `foreach` * [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. * [PINQ](https://github.com/TimeToogo/Pinq) - A PHP library based on .NET's LINQ (Language Integrated Query). -* [Porter](https://github.com/ScriptFUSION/Porter) - Data import abstraction framework. -* [Serializer](https://github.com/schmittjoh/serializer) - A library for serialising and de-serialising data. +* [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. -* [Zend Serializer](https://github.com/zendframework/zend-serializer) - Another library for serialising and de-serialising data (ZF2). +* [Laminas Serializer](https://github.com/laminas/laminas-serializer) - Another library for serialising and de-serialising data. ### Notifications *Libraries for working with notification software.* @@ -700,59 +776,53 @@ Libraries to help manage database schemas and migrations. *Libraries for Internationalization (I18n) and Localization (L10n).* * [Aura.Intl](https://github.com/auraphp/Aura.Intl) - Provides internationalization (I18N) tools, specifically package-oriented per-locale message translation. -* [Cake I18n](https://github.com/cakephp/i18n) - Message translation and localization for dates and numbers (CP) +* [CakePHP I18n](https://github.com/cakephp/i18n) - Message translation and localization for dates and numbers. + +### Serverless +*Libraries and tools to help build serverless web applications.* + +* [Bref](https://bref.sh/) - Serverless PHP on AWS Lambda. +* [OpenWhisk](https://openwhisk.apache.org/) - An open-source serverless cloud platform. +* [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. + +## Configuration +*Libraries and tools for configuration.* + +* [PHP Dotenv](https://github.com/vlucas/phpdotenv) - Parse and load environment variables from `.env` files. +* [Symfony Dotenv](https://github.com/symfony/dotenv)- Parse and load environment variables from `.env` files. +* [Yo! Symfony TOML](https://github.com/yosymfony/toml) - A PHP parser for [TOML](https://github.com/toml-lang/toml). ### Third Party APIs *Libraries for accessing third party APIs.* * [Amazon Web Service SDK](https://github.com/aws/aws-sdk-php) - The official PHP AWS SDK library. -* [Campaign Monitor](http://campaignmonitor.github.io/createsend-php/) - The official Campaign Monitor PHP library. -* [Dropbox SDK](https://github.com/dropbox/dropbox-sdk-php) - The official PHP Dropbox SDK library. +* [AsyncAWS](https://async-aws.com/) - An unofficial asynchronous PHP AWS SDK. +* [Campaign Monitor](https://campaignmonitor.github.io/createsend-php/) - The official Campaign Monitor PHP library. * [Github](https://github.com/KnpLabs/php-github-api) - A library to interface with the Github API. * [Mailgun](https://github.com/mailgun/mailgun-php) The official Mailgun PHP API. +* [Square](https://github.com/square/connect-php-sdk) - The official Square PHP SDK for payments and other Square APIs. * [Stripe](https://github.com/stripe/stripe-php) - The official Stripe PHP library. * [Twilio](https://github.com/twilio/twilio-php) - The official Twilio PHP REST API. ### Extensions *Libraries to help build PHP extensions.* -* [PHP CPP](http://www.php-cpp.com/) - A C++ library for developing PHP extensions. -* [Zephir](https://github.com/phalcon/zephir) - A compiled language between PHP and C++ for developing PHP extensions. +* [PHP CPP](https://www.php-cpp.com/) - A C++ library for developing PHP extensions. +* [Zephir](https://github.com/zephir-lang/zephir ) - A compiled language between PHP and C++ for developing PHP extensions. ### 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). -* [BotMan](https://github.com/botman/botman) - A framework agnostic PHP library to build cross-platform chat bots. -* [Cake Utility](https://github.com/cakephp/utility) - Utility classes such as Inflector, String, Hash, Security and Xml (CP). -* [Chief](https://github.com/adamnicholson/Chief) - A command bus library. -* [ClassPreloader](https://github.com/ClassPreloader/ClassPreloader) - A library for optimising autoloading. -* [Country List](https://github.com/umpirsky/country-list) - A list of all countries with names and ISO 3166-1 codes. -* [Embera](https://github.com/mpratt/Embera) - An Oembed consumer library. -* [Essence](https://github.com/essence/essence) - A library for extracting web media. -* [Graphviz](https://github.com/alexandresalome/graphviz) - A Graphviz library. -* [Hprose-PHP](https://github.com/hprose/hprose-php) - A very newbility RPC Library, support 25+ languages now. -* [JSON Lint](https://github.com/Seldaek/jsonlint) - A JSON lint utility. -* [JSONPCallbackValidator](https://github.com/willdurand/JsonpCallbackValidator) - A library for validating JSONP callbacks. -* [Metrics](https://github.com/beberlei/metrics) - A simple metrics API library. +* [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 chatbots. +* [ClassPreloader](https://github.com/ClassPreloader/ClassPreloader) - A library for optimizing autoloading. +* [Ganesha](https://github.com/ackintosh/ganesha) - A PHP implementation of Circuit Breaker pattern. +* [Hprose-PHP](https://github.com/hprose/hprose-php) - A cross-language RPC. * [noCAPTCHA](https://github.com/ARCANEDEV/noCAPTCHA) - Helper for Google's noCAPTCHA (reCAPTCHA). -* [Nmap](https://github.com/willdurand/nmap) - A PHP wrapper around [Nmap](https://nmap.org/). * [Pagerfanta](https://github.com/whiteoctober/Pagerfanta) - A pagination library. -* [PHP PassBook](https://github.com/eymengunay/php-passbook) - A PHP library for iOS PassBook. -* [PHP-ML](https://github.com/php-ai/php-ml) - A library for Machine Learning in PHP. -* [PHPCR](https://github.com/phpcr/phpcr) - A PHP port of the Java Content Repository (JCR). -* [PHPStack](http://dunkels.com/adam/phpstack/) - A TCP/IP stack proof of concept written in PHP. -* [print_o](https://github.com/koriym/print_o) - An object graph visualizer. -* [Procrastinator](https://github.com/lstrojny/Procrastinator) - A library for running time consuming tasks. -* [Prooph Service Bus](https://github.com/prooph/service-bus) - Lightweight message bus supporting CQRS and Micro Services -* [RMT](https://github.com/liip/RMT) - A library for versioning and releasing software. -* [sabre/vobject](https://github.com/sabre-io/vobject) - A library for parsing VCard and iCalendar objects. -* [Slimdump](https://github.com/webfactory/slimdump) - An easy dumper tool for MySQL. -* [Spork](https://github.com/kriswallsmith/spork) - A process forking library. +* [Safe](https://github.com/thecodingmachine/safe) - All PHP functions, rewritten to throw exceptions instead of returning false. * [SuperClosure](https://github.com/jeremeamia/super_closure) - A library that allows Closures to be serialized. -* [Symfony VarDumper](http://symfony.com/doc/current/components/var_dumper.html) - A variable dumper component (SF). -* [Underscore](http://anahkiasen.github.io/underscore-php/) - A PHP port of the Underscore JS library. -* [Whoops](https://github.com/filp/whoops) - A pretty error handling library. # Software *Software for creating a development environment.* @@ -760,59 +830,63 @@ Libraries to help manage database schemas and migrations. ### PHP Installation *Tools to help install and manage PHP on your computer.* -* [HomeBrew](https://brew.sh/) - A package manager for OSX. * [Brew PHP Switcher](https://github.com/philcook/brew-php-switcher) - Brew PHP switcher. +* [HomeBrew](https://brew.sh/) - A package manager for OSX. +* [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 Build](https://github.com/php-build/php-build) - Another PHP version installer. -* [PHP OSX](https://php-osx.liip.ch/) - A PHP installer for OSX. -* [VirtPHP](http://virtphp.org/) - A tool for creating and managing isolated PHP environments. ### Development Environment -*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. -* [Phansible](http://phansible.com/) - A web tool for building PHP development virtual machines with Ansible. -* [Protobox](https://www.getprotobox.com/) - Another web tool for building PHP development virtual machines. -* [PuPHPet](https://puphpet.com/) - A web tool for building PHP development virtual machines. -* [Puppet](https://puppet.com/) - A server automation framework and application. -* [Vagrant](https://www.vagrantup.com/) - A portable development environment utility. +* [DDEV](https://github.com/ddev/ddev) - a local web development environment system for PHP. * [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. +* [Docksal](https://github.com/docksal/docksal) - Unified, Docker :whale: powered web development environments for macOS, Windows, and Linux. +* [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. +* [Laradock](http://laradock.io/) - A full PHP development environment based on Docker. +* [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. ### Virtual Machines *Alternative PHP virtual machines.* -* [Hack](https://hacklang.org/) - A programming language for HHVM that interoperates seamlessly with PHP. +* [Hack](https://hacklang.org/) - A programming language for HHVM. * [HHVM](https://github.com/facebook/hhvm) - A Virtual Machine, Runtime and JIT for PHP by Facebook. +* [PeachPie](https://github.com/peachpiecompiler/peachpie) - PHP compiler and runtime for .NET and .NET Core. ### Text Editors and IDEs *Text Editors and Integrated Development Environments (IDE) with support for PHP.* -* [Atom](https://atom.io/) - A hackable text editor. -* [Atom IDE](https://ide.atom.io/) - An IDE extension for Atom. * [Eclipse for PHP Developers](https://www.eclipse.org/downloads/) - A PHP IDE based on the Eclipse platform. -* [Netbeans](https://netbeans.org) - An IDE with support for PHP and HTML5. -* [PhpStorm](http://www.jetbrains.com/phpstorm/) - A commercial PHP IDE. +* [Apache NetBeans](https://netbeans.apache.org/front/main/index.html) - An IDE with support for PHP and HTML5. +* [PhpStorm](https://www.jetbrains.com/phpstorm/) - A commercial PHP IDE. * [VS Code](https://code.visualstudio.com/) - An open source code editor. ### Web Applications *Web-based applications and tools.* * [3V4L](https://3v4l.org/) - An online PHP & HHVM shell. -* [DBV](https://dbv.vizuina.com/) - A database version control application. -* [PHP Queue](https://github.com/CoderKungfu/php-queue) - An application for managing queueing backends. -* [MailCatcher](https://github.com/sj26/mailcatcher) - A web tool for capturing and viewing emails. -* [Cachet](https://github.com/cachethq/cachet) - The open source status page system. -* [phpRedisAdmin](https://github.com/ErikDubbelboer/phpRedisAdmin) - A simple web interface to manage [Redis](https://redis.io/) databases. -* [phpMyAdmin](https://github.com/phpmyadmin/phpmyadmin) - A web interface for MySQL/MariaDB. * [Adminer](https://www.adminer.org/) - Database management in a single PHP file. -* [Grav](https://github.com/getgrav/grav) - A modern flat-file CMS. +* [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. +* [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 for providing PHP applications and services.* * [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. +* [RoadRunner](https://github.com/roadrunner-server/roadrunner) - High-performance PHP application server, load-balancer and process manager. # Resources Various resources, such as books, websites and articles, for improving your PHP development skills and knowledge. @@ -821,113 +895,77 @@ Various resources, such as books, websites and articles, for improving your PHP *Useful PHP-related websites.* * [Nomad PHP](https://nomadphp.com/) - A online PHP learning resource. -* [PHP Best Practices](https://phpbestpractices.org/) - A PHP best practice guide. +* [Laravel News](https://laravel-news.com/) - The official Laravel blog. +* [PHP Annotated Monthly](https://blog.jetbrains.com/phpstorm/tag/php-annotated-monthly/) - A monthly digest of PHP news. * [PHP FIG](https://www.php-fig.org/) - The PHP Framework Interoperability Group. -* [PHP Mentoring](https://php-mentoring.org/) - Peer to peer PHP mentorship organization. * [PHP Package Development Standards](http://php-pds.com) - Package development standards for PHP. * [PHP School](https://www.phpschool.io/) - Open Source Learning for PHP. -* [PHP Security](http://phpsecurity.readthedocs.io/en/latest/index.html) - A guide to PHP security. -* [PHP The Right Way](http://www.phptherightway.com/) - A PHP best practice quick reference guide. -* [PHP UG](http://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 Weekly](http://www.phpweekly.com/archive.html) - A weekly PHP newsletter. -* [PHPTrends](https://phptrends.com/) - An overview of fastest growing PHP libraries. -* [Securing PHP](http://securingphp.com/) - A newsletter about PHP security and library recommendations. -* [Seven PHP](https://7php.com/) - A website that interviews members of the PHP community. -* [PHP Annotated Monthly](https://blog.jetbrains.com/phpstorm/category/php-annotated-monthly/) - A monthly digest of PHP news. - -### Other Websites -*Useful websites related to web development.* - -* [Atlassian Git Tutorials](https://www.atlassian.com/git) - A series of Git tutorials. -* [Hg Init](http://hginit.com/) - A series of Mercurial tutorials. -* [Learning Linux](https://linuxjourney.com/) - A website for learning Linux. -* [Semantic Versioning](https://semver.org/) - A website explaining semantic versioning. -* [Servers for Hackers](https://serversforhackers.com/) - A newsletter about server management. -* [The Open Web Application Security Project (OWASP)](https://www.owasp.org/index.php/Main_Page) - An open software security community. -* [WebSec IO](https://websec.io/) - A web security community resource. +* [PHP The Right Way](https://phptherightway.com/) - A PHP best practice quick reference guide. +* [PHP UG](https://php.ug) - A website to help people locate their nearest PHP user group (UG). +* [PHP Watch](https://php.watch/) - PHP articles, news, upcoming changes, RFCs and more. +* [Unit Testing Tips](https://testing-tips.sarvendev.com/) - Unit Testing Tips by examples in PHP. ### PHP Books *Fantastic PHP-related books.* +* [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 * [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. -* [Modern PHP New Features and Good Practices](http://shop.oreilly.com/product/0636920033868.do) - A book about new PHP features and best practices by Josh Lockhart. +* [Mastering Object-Orientated PHP](https://masteringobjectorientedphp.com/) - A book about object-orientated PHP by Brandon Savage. +* [PHP Cookbook](https://www.oreilly.com/library/view/php-cookbook/9781098121310/) - This cookbook provides code recipes to help you resolve a variety of coding issues. * [Modernizing Legacy Applications in PHP](https://leanpub.com/mlaphp) - A book about modernizing legacy PHP applications by Paul M. Jones. -* [PHP 7 Upgrade Guide](https://leanpub.com/php7) - An ebook covering all of the features and changes in PHP 7 by Colin O'Dell. -* [PHP Pandas](https://daylerees.com/php-pandas/) - A book about learning to write PHP by Dayle Rees. -* [Scaling PHP Applications](http://www.scalingphpbook.com) - An ebook about scaling PHP applications by Steve Corona. +* [Scaling PHP Applications](https://www.scalingphpbook.com) - An ebook about scaling PHP applications by Steve Corona. * [Securing PHP: Core Concepts](https://leanpub.com/securingphp-coreconcepts) - A book about common security terms and practices for PHP by Chris Cornutt. * [Signaling PHP](https://leanpub.com/signalingphp) - A book about catching PCNTL signals in CLI scripts by Cal Evans. -* [The Grumpy Programmer's Guide to Building Testable PHP Applications](https://leanpub.com/grumpy-testing) - A book about building testing PHP applications by Chris Hartjes. * [XML Parsing with PHP](https://www.phparch.com/books/xml-parsing-with-php/) - This book covers parsing and validating XML documents, leveraging XPath expressions, and working with namespaces as well as how to create and modify XML files programmatically. -* [Domain-Driven Design in PHP](https://leanpub.com/ddd-in-php) - Real examples written in PHP showcasing DDD Architectural Styles. - -### Other Books -*Books related to general computing and web development.* - -* [Elasticsearch: The Definitive Guide](https://www.elastic.co/guide/index.html) - A guide to working with Elasticsearch by Clinton Gormley and Zachary Tong. -* [Eloquent JavaScript](http://eloquentjavascript.net/) - A book about JavaScript programming by Marijn Haverbeke. -* [Head First Design Patterns](https://www.safaribooksonline.com/library/view/head-first-design/0596007124/) - A book that expains software design patterns. -* [Pro Git](https://git-scm.com/book/en/v2) - A book about Git by Scott Chacon and Ben Straub. -* [The Linux Command Line](http://linuxcommand.org/tlcl.php) - A book about the Linux command line by William Shotts. -* [The Tangled Web — Securing Web Applications](https://www.amazon.com/Tangled-Web-Securing-Modern-Applications/dp/1593273886) - A book about securing web applications by Michal Zalewski. -* [Understanding Computation](http://computationbook.com) - A book about computation theory by Tom Stuart. -* [Vagrant Cookbook](https://leanpub.com/vagrantcookbook) - A book about creating Vagrant environments by Erika Heidi. ### PHP Videos *Fantastic PHP-related videos.* -* [Nomad PHP Lightning Talks](https://www.youtube.com/c/nomadphp) - 10 to 15 minute Lightning Talks by PHP community members. -* [PHP UK Conference](https://www.youtube.com/user/phpukconference/videos) - A collection of videos from the PHP UK Conference. +* [Laracasts](https://laracasts.com) - Screencasts about Laravel, Vue JS and more. +* [Laravel YouTube Channel](https://www.youtube.com/channel/UCfO2GiQwb-cwJTb1CuRSkwg) - The official Laravel YouTube channel. * [Programming with Anthony](https://www.youtube.com/playlist?list=PLM-218uGSX3DQ3KsB5NJnuOqPqc5CW2kW) - A video series by Anthony Ferrara. -* [Taking PHP Seriously](https://www.infoq.com/presentations/php-history) - A talk outlining PHP's strengths by Keith Adams of Facebook. +* [SymfonyCasts](https://symfonycasts.com/) - Screencasts and tutorials about PHP and Symfony. + +### PHP Conferences +*PHP conferences.* + +* [Laracon EU](https://www.youtube.com/@LaraconEU) - Laracon EU is a 2-day event for people who are interested in learning Laravel and related technologies, or who want to share their knowledge with others. +* [PHP[TEK]](https://tek.phparch.com/) - The longest-running web developer conference in the United States that has a focus on the PHP programming language. +* [PHP UK Conference](https://www.youtube.com/user/phpukconference/videos) - A collection of videos from the PHP UK Conference. + ### PHP Podcasts *Podcasts with a focus on PHP topics.* +* [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. +* [Mostly Technical](https://mostlytechnical.com/) - Hosted by Ian Landsman and Aaron Francis, Mostly Technical is a lively discussion on Laravel, business, and an eclectic mix of related topics. +* [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. +* [Over Engineered](https://overengineered.fm/) - A podcast in mini-series where we explore unimportant programming questions in extreme detail. +* [PHP Internals News](https://phpinternals.news) - A podcast about PHP internals. * [PHP Town Hall](https://phptownhall.com/) - A casual PHP podcast by Ben Edmunds and Phil Sturgeon. -* [Voices of the ElePHPant](https://voicesoftheelephpant.com/) Interviews with the people that make the PHP community special. -* [PHP Roundtable](https://www.phproundtable.com/) - The PHP Roundtable is a casual gathering of developers discussing topics that PHP nerds care about. +* [php[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. +* [PHPUgly](https://www.phpugly.com/) - The ramblings of a few overworked PHP Developers. +* [The Laracasts Snippet](https://laracasts.simplecast.com) - The Laracasts snippet, each episode, offers a single thought on some aspect of web development. +* [The Laravel Podcast](https://laravelpodcast.com/) - Laravel and PHP development news and discussion. +* [The PHP Roundtable](https://phproundtable.com/) - The PHP Roundtable is a casual gathering of developers discussing topics that PHP nerds care about. +* [Voices of the ElePHPant](https://voicesoftheelephpant.com/) - Interviews with the people who make the PHP community special. + +### PHP Newsletters +*PHP-related news directly to your inbox.* + +* [PHP Weekly](https://www.phpweekly.com/) - A weekly newsletter about PHP. ### PHP Reading -*PHP-releated reading materials.* - -* [Composer Primer](https://daylerees.com/composer-primer/) - A Composer primer. -* [Composer Stability Flags](https://igor.io/2013/02/07/composer-stability-flags.html) - An article about Composer stability flags. -* [Composer Versioning](https://igor.io/2013/01/07/composer-versioning.html) - An article about Composer versioning. -* [Create Your Own PHP Framework](http://fabien.potencier.org/create-your-own-framework-on-top-of-the-symfony2-components-part-1.html) - A series of articles on how to make your own PHP framework by Fabien Potencier. -* [Don't Worry About BREACH](https://blog.ircmaxell.com/2013/08/dont-worry-about-breach.html) - An article about the BREACH hack and CSRF tokens. -* [On PHP 5.3, Lambda Functions and Closures](http://fabien.potencier.org/on-php-5-3-lambda-functions-and-closures.html) - An article about lambda functions and closures. -* [PHP Is Much Better Than You Think](http://fabien.potencier.org/php-is-much-better-than-you-think.html) - An article about the PHP language and ecosystem. -* [PHP Package Checklist](http://phppackagechecklist.com/) - A checklist for successful PHP package development. -* [PHP Sucks! But I Like It!](https://blog.ircmaxell.com/2012/04/php-sucks-but-i-like-it.html) - An article about the pros and cons of PHP. -* [Preventing CSRF Attacks](https://blog.ircmaxell.com/2013/02/preventing-csrf-attacks.html) - An article on preventing CSRF attacks. -* [Seven Ways to Screw Up BCrypt](https://blog.ircmaxell.com/2012/12/seven-ways-to-screw-up-bcrypt.html) - An article about correct BCrypt implementation. -* [The 2018 Guide to Building Secure PHP Software](https://paragonie.com/blog/2017/12/2018-guide-building-secure-php-software) - A guide to building secure PHP software. -* [Use Env](https://seancoates.com/blogs/use-env/) - An article about using the unix environment helper. +*PHP-related reading materials.* + +* [php[architect]](https://www.phparch.com/magazine/) - A monthly magazine dedicated to PHP. ### PHP Internals Reading *Reading materials related to the PHP internals or performance.* -* [Disproving the Single Quotes Myth](http://nikic.github.io/2012/01/09/Disproving-the-Single-Quotes-Performance-Myth.html) - An article about performance of single and double quoted strings. -* [How Big Are PHP Arrays (And Values) Really?](http://nikic.github.io/2011/12/12/How-big-are-PHP-arrays-really-Hint-BIG.html) - An article about array internals. -* [How Foreach Works](https://stackoverflow.com/questions/10057671/how-does-php-foreach-actually-work/14854568#14854568) - A detailed StackOverflow answer about foreach. -* [How Long is a Piece of String](http://blog.golemon.com/2006/06/how-long-is-piece-of-string.html) - An article about string internals. -* [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. * [PHP RFCs](https://wiki.php.net/rfc) - The home of PHP RFCs (Request for Comments). -* [Print vs Echo, Which One is Faster?](http://fabien.potencier.org/print-vs-echo-which-one-is-faster.html) - An article about print and echo performance. -* [The PHP Ternary Operator. Fast or Not?](http://fabien.potencier.org/the-php-ternary-operator-fast-or-not.html) - An article ternary performance. -* [Understanding OpCodes](http://blog.golemon.com/2008/01/understanding-opcodes.html) - An article about opcodes. -* [When Does Foreach Copy?](http://nikic.github.io/2011/11/11/PHP-Internals-When-does-foreach-copy.html) - An article about the internals of foreach. -* [Why Objects (Usually) Use Less Memory Than Arrays](https://gist.github.com/nikic/5015323) - An article about object and array internals. -* [You're Being Lied To](http://blog.golemon.com/2007/01/youre-being-lied-to.html) - An article about internal ZVALs. -* Collecting Garbage: [1](http://php.net/manual/en/features.gc.refcounting-basics.php) [2](http://php.net/manual/en/features.gc.collecting-cycles.php) [3](http://php.net/manual/en/features.gc.performance-considerations.php) - A series about the PHP garbage collection internals. -* PHP Source Code for Developers: [1](https://blog.ircmaxell.com/2012/03/phps-source-code-for-php-developers.html) [2](http://nikic.github.io/2012/03/16/Understanding-PHPs-internal-function-definitions.html) [3](https://blog.ircmaxell.com/2012/03/phps-source-code-for-php-developers_21.html) [4](http://nikic.github.io/2012/03/28/Understanding-PHPs-internal-array-implementation.html) - A series about the PHP source code. - -### PHP Magazines -*Fantastic PHP-related magazines.* - -* [php[architect]](https://www.phparch.com/magazine/) - A monthly magazine dedicated to PHP. +* [Externals](https://externals.io/) - PHP internal discussions. +* [PHP RFC Watch](https://github.com/beberlei/php-rfc-watch) - Watch the latest PHP [RFCs](https://wiki.php.net/rfc). +* [PHP Internals Book](https://www.phpinternalsbook.com/) - An online book about PHP internals, written by three core developers.