diff --git a/.github/workflows/awesomebot.yml b/.github/workflows/awesomebot.yml index 7d0dc9f..fb70de6 100644 --- a/.github/workflows/awesomebot.yml +++ b/.github/workflows/awesomebot.yml @@ -8,11 +8,16 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - - name: Set up Ruby 2.6 + - name: Set up Ruby uses: actions/setup-ruby@v1 with: - ruby-version: 2.6.x + ruby-version: 2.7.x - name: Install Awesome Bot run: gem install awesome_bot - name: Run Awesome Bot - run: awesome_bot README.md --white-list igor.io,symfony,toranproxy.com,vagrantup.com,3v4l.org,voicesoftheelephpant.com,drupal.org + 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 105fdf2..0000000 --- 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,drupal.org -notifications: - email: false diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a9884a0..21a95e7 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 54107e7..040b3a7 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT - [Middlewares](#middlewares) - [URL](#url) - [Email](#email) - - [Files](#files) + - [Files](#Files) - [Streams](#streams) - [Dependency Injection](#dependency-injection) - [Imagery](#imagery) @@ -56,12 +56,13 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT - [Search](#search) - [Command Line](#command-line) - [Authentication and Authorization](#authentication-and-authorization) - - [Markup](#markup) + - [Markup and CSS](#markup-and-css) + - [JSON](#json) - [Strings](#strings) - [Numbers](#numbers) - [Filtering and Validation](#filtering-and-validation) - [API](#api) - - [Caching](#caching) + - [Caching and Locking](#caching-and-locking) - [Data Structure and Storage](#data-structure-and-storage) - [Notifications](#notifications) - [Deployment](#deployment) @@ -80,10 +81,10 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT - [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 Newsletters](#php-newsletters) - [PHP Reading](#php-reading) - [PHP Internals Reading](#php-internals-reading) @@ -94,81 +95,92 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [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](https://getcomposer.org/) - A package and dependency manager. -* [Melody](https://melody.sensiolabs.org/) - A tool to build one file Composer scripts. +* [Phive](https://phar.io/) - A PHAR manager. * [Pickle](https://github.com/FriendsOfPHP/pickle) - A PHP extension installer. ### 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. +* [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 normalising `composer.json` files. +* [Composer Patches](https://github.com/cweagans/composer-patches) - A plugin for Composer to apply patches. +* [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. * [Prestissimo](https://github.com/hirak/prestissimo) - A composer plugin which enables parallel install process. +* [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. +* [Tooly](https://github.com/tommy-muehle/tooly-composer-script) - A library to manage PHAR files in project using Composer. * [Toran Proxy](https://toranproxy.com) - A static Composer repository and proxy. ### Frameworks *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 6](https://laravel.com/) - Another PHP framework (L6). -* [Nette](https://nette.org) - Another framework comprised of individual components. +* [CakePHP](https://cakephp.org/) - A rapid application development framework. +* [Laminas](https://getlaminas.org/) - A framework comprised of individual components (previously Zend Framework). +* [Laravel](https://laravel.com/) - A web application framework with expressive, elegant syntax. +* [Nette](https://nette.org) - A web framework comprised of mature components. * [Phalcon](https://phalcon.io/en-us) - 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 3](https://framework.zend.com/learn) - A framework comprised of individual components (ZF3). -* [Ice](https://www.iceframework.org/) - Another simple and fast PHP framework delivered as 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](https://rad.knplabs.com/) - A set of Rapid Application Development (RAD) components for Symfony. +* [LaravelS](https://github.com/hhxsv5/laravel-s) - Glue for using Swoole in Laravel or Lumen. * [Symfony CMF](https://github.com/symfony-cmf/symfony-cmf) - A Content Management Framework to create custom CMS. +* [Livewire](https://laravel-livewire.com/) - A full-stack framework for Laravel that takes the pain out of building dynamic UIs. ### 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.concrete5.org/) - A CMS targering users with a minimum of technical skills. +* [Concrete5](https://www.concretecms.com/) - A CMS targeting users with a minimum of technical skills. +* [CraftCMS](https://github.com/craftcms/cms) - A flexible, user-friendly CMS for creating custom digital experiences on the web and beyond. * [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. * [WordPress](https://wordpress.org/) A blogging platform and CMS. * [ProcessWire](https://processwire.com) A powerful CMS with an API both CMS / CMF +* [Kirby](https://getkirby.com/) - A flat-file CMS that adapts to any project. +* [Magento](https://business.adobe.com/products/magento/magento-commerce.html) - The most popular ecommerce 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. ### 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](https://symfony.com/doc/master/components/index.html) - The components that make Symfony. -* [Zend Framework 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. +* [Laravel-Zero](https://laravel-zero.com) - A micro-framework for console applications. +* [Lumen](https://lumen.laravel.com/) - A micro-framework by Laravel. +* [Mezzio](https://getexpressive.org/) - A micro-framework by Laminas. * [Radar](https://github.com/radarphp/Radar.Adr) - An Action-Domain-Responder implementation for PHP. +* [Silly](https://github.com/mnapoli/silly) - A micro-framework for CLI applications. * [Slim](https://www.slimframework.com/) - Another simple micro framework. -* [Expressive](https://getexpressive.org/) - A micro-framework by Zend. ### 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. @@ -185,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](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. @@ -208,15 +219,18 @@ 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. * [HTTPlug](http://httplug.io) - An HTTP client abstraction without binding to a specific implementation. +* [Nyholm PSR-7](https://github.com/Nyholm/psr7) - A super lightweight PSR-7 implementation. Very strict and very fast. * [PHP VCR](https://php-vcr.github.io/) - A library for recording and replaying HTTP requests. -* [Requests](https://github.com/rmccue/Requests) - A simple HTTP library. +* [Requests](https://github.com/WordPress/Requests) - A simple HTTP library. * [Retrofit](https://github.com/tebru/retrofit-php) - A library to ease creation of REST API clients. * [Symfony HTTP Client](https://github.com/symfony/http-client) - A component to fetch HTTP resources synchronously or asynchronously. -* [zend-diactoros](https://github.com/zendframework/zend-diactoros) - PSR-7 HTTP Message implementation. +* [Laminas Diactoros](https://github.com/laminas/laminas-diactoros) - PSR-7 HTTP Message implementation. ### Scraping *Libraries for scraping websites.* +* [Chrome PHP](https://github.com/chrome-php/chrome) - Instrument headless Chrome/Chromium instances from PHP. +* [DiDOM](https://github.com/Imangazaliev/DiDOM) - A super fast HTML scrapper and parser. * [Embed](https://github.com/oscarotero/Embed) - An information extractor from any web service or page. * [Goutte](https://github.com/FriendsOfPHP/Goutte) - A simple web scraper. * [Symfony Panther](https://github.com/symfony/panther) - A browser testing and web crawling library for PHP and Symfony. @@ -225,11 +239,10 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT ### 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.* @@ -248,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](https://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/), [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](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 @@ -274,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.* @@ -295,18 +310,22 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT * [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. -* [Faker](https://github.com/fzaninotto/Faker) - A fake data generator library. +* [Faker](https://github.com/fakerphp/faker) - A fake data generator library. +* [Foundry](https://github.com/zenstruck/foundry) - A fixture factory generation library for Doctrine. * [HTTP Mock](https://github.com/InterNations/http-mock) - A library for mocking HTTP requests in unit tests. +* [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. * [ParaTest](https://github.com/paratestphp/paratest) - A parallel testing library for PHPUnit. +* [Pest](https://pestphp.com/) - A testing framework with a focus on simplicity. * [Peridot](https://github.com/peridot-php/peridot) - An event driven test framework. -* [Phake](https://github.com/mlively/Phake) - Another mock object library for testing. +* [Phake](https://github.com/phake/phake) - Another mock object library for testing. * [Pho](https://github.com/danielstjules/pho) - Another behaviour driven development testing framework. * [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. @@ -317,39 +336,41 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT *Libraries and applications for continuous integration.* * [CircleCI](https://circleci.com) - A continuous integration platform. -* [GitlabCi](https://about.gitlab.com/product/continuous-integration/) - Let GitLab CI test, build, deploy your code. TravisCi like. -* [Jenkins](https://jenkins.io/index.html) - A continuous integration platform with [PHP support](http://jenkins-php.org/index.html). +* [GitlabCi](https://about.gitlab.com/stages-devops-lifecycle/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://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://www.shippable.com/) - A Docker based continious integration platform for open source and private projects. +* [Shippable](https://jfrog.com/blog/weve-acquired-shippable-to-complete-devops-pipeline-automation-from-code-to-production/) - A Docker based continious integration platform for open source and private projects. * [Travis CI](https://travis-ci.org/) - 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 which 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). ### 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. +* [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. * [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. * [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. * [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. +* [Zap](https://owasp.org/www-project-zap/) - An integrated penetration testing tool for web applications. ### Passwords *Libraries and tools for working with and storing passwords.* @@ -368,17 +389,21 @@ 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. +* [GrumPHP](https://github.com/phpro/grumphp) - A PHP code-quality tool. * [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. ### 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://github.com/phpmd/phpmd) - A library that scans code for bugs, sub-optimal code, unused parameters and more. @@ -389,8 +414,10 @@ 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. +* [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 customisable dependency graphs. * [PHP Metrics](https://github.com/phpmetrics/PhpMetrics) - A static metric library. @@ -401,27 +428,32 @@ 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. +* [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. +* [Patchwork](https://patchwork2.org/) - A library for redefining userland functions. * [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](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. +* [Blackfire.io](https://www.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. * [PHPSpy](https://github.com/adsr/phpspy) - A low-overhead sampling profiler. +* [Symfony VarDumper](https://github.com/symfony/var-dumper) - A variable dumper component. * [Tideways.io](https://tideways.com/) - Monitoring and profiling tool. * [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](https://www.zend.com/products/z-ray) - A debug and profile tool for Zend Server. @@ -429,9 +461,10 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT ### Build Tools *Project build and automation tools.* -* [Box](https://github.com/humbug/box) - A utility to build PHAR files. +* [Box](https://github.com/box-project/box) - A utility to build PHAR files. * [Construct](https://github.com/jonathantorres/construct) - A PHP project/micro-package generator. * [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.* @@ -445,18 +478,20 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT *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.* +* [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. @@ -475,15 +510,15 @@ Please see [CONTRIBUTING](https://github.com/ziadoz/awesome-php/blob/master/CONT *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). +* [CakePHP Event](https://github.com/cakephp/event) - An event dispatcher library. * [Elephant.io](https://github.com/Wisembly/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. +* [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. @@ -497,6 +532,7 @@ 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. * [Shopware](https://github.com/shopware/shopware) - Highly customizable e-commerce software @@ -526,13 +562,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 (L6). +* [Laravel Eloquent](https://github.com/illuminate/database) - A simple ORM. * [Pomm](https://github.com/chanmix51/Pomm) - An Object Model Manager for PostgreSQL. * [ProxyManager](https://github.com/Ocramius/ProxyManager) - A set of utilities to generate proxy objects for data mappers. * [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 @@ -548,7 +586,7 @@ Libraries to help manage database schemas and migrations. *Libraries for working with "NoSQL" backends.* * [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.* @@ -559,15 +597,15 @@ Libraries to help manage database schemas and migrations. * [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](https://www.solarium-project.org/) - A client library for [Solr](https://lucene.apache.org/solr/). -* [Sphinx Search](https://github.com/ripaclub/sphinxsearch) - Sphinx Search library provides SphinxQL indexing and searching features -* [SphinxQL query builder](https://foolcode.github.io/SphinxQL-Query-Builder/) - A query library for the [Sphinx](https://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.* @@ -582,7 +620,6 @@ Libraries to help manage database schemas and migrations. * [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. @@ -597,22 +634,33 @@ Libraries to help manage database schemas and migrations. * [OAuth2 Server](https://bshaffer.github.io/oauth2-server-php-docs/) - Another OAuth2 server implementation. * [OAuth2 Server](https://oauth2.thephpleague.com/) - An OAuth2 authentication server, resource server and client library. * [Opauth](https://github.com/opauth/opauth) - A multi-provider authentication framework. +* [Paseto](https://github.com/paragonie/paseto) - Platform-Agnostic Security Tokens. * [PHP oAuthLib](https://github.com/Lusitanian/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/). +* [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/sabberworm/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.* @@ -621,13 +669,14 @@ Libraries to help manage database schemas and migrations. * [ANSI to HTML5](https://github.com/sensiolabs/ansi-to-html) - An ANSI to HTML5 converter library. * [Color Jizz](https://github.com/mikeemoo/ColorJizz-PHP) - A library for manipulating and converting colours. * [Device Detector](https://github.com/matomo-org/device-detector) - Another library for parsing user agent strings. -* [Hoa String](https://github.com/hoaproject/Ustring) - Another UTF-8 string library. * [Jieba-PHP](https://github.com/fukuball/jieba-php) - A PHP port of Python's jieba. Chinese text segmentation for natural language processing. * [Mobile-Detect](https://github.com/serbanghita/Mobile-Detect) - A lightweight PHP class for detecting mobile devices (including tablets). * [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. @@ -635,20 +684,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/spryker/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. -* [JSON Schema](https://github.com/justinrainbow/json-schema) - A [JSON Schema](http://json-schema.org) validation library. +* [JSON Schema](https://github.com/justinrainbow/json-schema) - A [JSON Schema](https://json-schema.org/) validation library. * [MetaYaml](https://github.com/romaricdrigon/MetaYaml) - A schema validation library that supports YAML, JSON and XML. * [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. @@ -659,40 +712,41 @@ Libraries to help manage database schemas and migrations. *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. +* [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. -### Caching -*Libraries for caching data.* +### Caching and Locking +*Libraries for caching data and acquiring locks.* -* [Alternative PHP Cache (APC)](https://secure.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. * [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). +* [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. * [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.* @@ -714,29 +768,32 @@ 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](http://openwhisk.apache.org/) - An open source serverless cloud platform. -* [Serverless Framework](https://serverless.com/cli/) - An open source framework for building serverless applications. +* [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.** +*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. +* [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. -* [Dropbox SDK](https://github.com/dropbox/dropbox-sdk-php) - The official PHP Dropbox SDK 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. @@ -744,42 +801,19 @@ Libraries to help manage database schemas and migrations. *Libraries to help build PHP extensions.* * [PHP CPP](https://www.php-cpp.com/) - A C++ library for developing PHP extensions. -* [Zephir](https://github.com/phalcon/zephir) - A compiled language between PHP and C++ for developing PHP extensions. +* [Zephir](https://github.com/zephir-lang/zephir ) - A compiled language between PHP and C++ for developing PHP extensions. ### Miscellaneous -*Useful libraries or tools that don't fit in the categories above.* +*Useful libraries or utilities that don't fit into the categories above.* -* [Annotations](https://github.com/doctrine/annotations) - An annotations library (part of Doctrine). +* [Annotations](https://github.com/doctrine/annotations) - An annotation library (part of Doctrine). * [BotMan](https://github.com/botman/botman) - A framework agnostic PHP library to build cross-platform chat bots. -* [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. +* [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](https://github.com/symfony/var-dumper) - A variable dumper component (SF). -* [Underscore](https://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.* @@ -787,37 +821,39 @@ 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. * [Docker](https://www.docker.com/) - A containerization platform. +* [Docker PHP Extension Installer](https://github.com/mlocati/docker-php-extension-installer) - Easily install PHP extensions in Docker containers. +* [Expose](https://github.com/beyondcode/expose) - An open source PHP tunneling service. +* [Lando](https://lando.dev/) - Push-button development environments. +* [Laravel Homestead](https://laravel.com/docs/master/homestead) - A local development environment for Laravel. +* [Laradock](http://laradock.io/) - A full PHP development environment based on Docker. +* [Puppet](https://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. * [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. +* [Apache NetBeans](https://netbeans.apache.org/) - 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. @@ -825,20 +861,22 @@ Libraries to help manage database schemas and migrations. *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. +* [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. @@ -848,36 +886,28 @@ Various resources, such as books, websites and articles, for improving your PHP * [libs.garden: PHP](https://libs.garden/php) - An overview of fastest growing PHP libraries. * [Nomad PHP](https://nomadphp.com/) - A online PHP learning resource. +* [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 Best Practices](https://phpbestpractices.org/) - A PHP best practice guide. * [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](https://phpsecurity.readthedocs.io/en/latest/index.html) - A guide to PHP security. * [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 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. -* [Securing PHP](https://www.securingphp.com/) - A newsletter about PHP security and library recommendations. +* [PHP Watch](https://php.watch/) - PHP articles, news, upcoming changes, RFCs and more. +* [PHP Weekly](https://www.phpweekly.com/archive.html) - A weekly PHP newsletter. * [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. -* [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. ### 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. +* [Modern PHP New Features and Good Practices](https://www.oreilly.com/library/view/~/9781491905173/) - A book about new PHP features and best practices by Josh Lockhart. * [Modernizing Legacy Applications in PHP](https://leanpub.com/mlaphp) - A book about modernizing legacy PHP applications by Paul M. Jones. * [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. @@ -886,19 +916,6 @@ Various resources, such as books, websites and articles, for improving your PHP * [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](https://eloquentjavascript.net/) - A book about JavaScript programming by Marijn Haverbeke. -* [Head First Design Patterns](https://www.oreilly.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](https://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.* @@ -907,51 +924,33 @@ Various resources, such as books, websites and articles, for improving your PHP * [PHP UK Conference](https://www.youtube.com/user/phpukconference/videos) - A collection of videos from the PHP UK Conference. * [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. +* [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. +* [SymfonyCasts](https://symfonycasts.com/) - Screencasts and tutorials about PHP and Symfony. ### PHP Podcasts *Podcasts with a focus on PHP topics.* +* [Laravel Podcast](https://laravelpodcast.com/) - Laravel and PHP development news and discussion. +* [PHP Internals News](https://phpinternals.news) - A podcast about PHP internals. +* [PHP Roundtable](https://phproundtable.com/) - The PHP Roundtable is a casual gathering of developers discussing topics that PHP nerds care about. * [PHP Town Hall](https://phptownhall.com/) - A casual PHP podcast by Ben Edmunds and Phil Sturgeon. * [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 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.* +*PHP-related 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](https://phppackagechecklist.com/) - A checklist for successful PHP package development. -* [PHP Sucks! But I Like It!](https://blog.ircmaxell.com/2012/04/php-sucks-but-i-like-it.html) - An article about the pros and cons of PHP. -* [Preventing CSRF Attacks](https://blog.ircmaxell.com/2013/02/preventing-csrf-attacks.html) - An article on preventing CSRF attacks. -* [Seven Ways to Screw Up BCrypt](https://blog.ircmaxell.com/2012/12/seven-ways-to-screw-up-bcrypt.html) - An article about correct BCrypt implementation. -* [The 2018 Guide to Building Secure PHP Software](https://paragonie.com/blog/2017/12/2018-guide-building-secure-php-software) - A guide to building secure PHP software. -* [Use Env](https://seancoates.com/blogs/use-env/) - An article about using the unix environment helper. +* [php[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](https://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?](https://nikic.github.io/2011/12/12/How-big-are-PHP-arrays-really-Hint-BIG.html) - An article about array internals. -* [How Foreach Works](https://stackoverflow.com/questions/10057671/how-does-php-foreach-actually-work/14854568#14854568) - A detailed StackOverflow answer about foreach. -* [How Long is a Piece of String](http://blog.golemon.com/2006/06/how-long-is-piece-of-string.html) - An article about string internals. -* [PHP Evaluation Order](https://gist.github.com/nikic/6699370) - An article about evaluation order in PHP. -* [PHP Internals Book](http://www.phpinternalsbook.com) - An online book about PHP internals, written by three core developers. * [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?](https://nikic.github.io/2011/11/11/PHP-Internals-When-does-foreach-copy.html) - An article about the internals of foreach. -* [Why Objects (Usually) Use Less Memory Than Arrays](https://gist.github.com/nikic/5015323) - An article about object and array internals. -* [You're Being Lied To](http://blog.golemon.com/2007/01/youre-being-lied-to.html) - An article about internal ZVALs. -* Collecting Garbage: [1](https://secure.php.net/manual/en/features.gc.refcounting-basics.php) [2](https://secure.php.net/manual/en/features.gc.collecting-cycles.php) [3](https://secure.php.net/manual/en/features.gc.performance-considerations.php) - A series about the PHP garbage collection internals. -* PHP Source Code for Developers: [1](https://blog.ircmaxell.com/2012/03/phps-source-code-for-php-developers.html) [2](https://nikic.github.io/2012/03/16/Understanding-PHPs-internal-function-definitions.html) [3](https://blog.ircmaxell.com/2012/03/phps-source-code-for-php-developers_21.html) [4](https://nikic.github.io/2012/03/28/Understanding-PHPs-internal-array-implementation.html) - A series about the PHP source code. - -### 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://php-rfc-watch.beberlei.de/) - 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.