awesome-php/README.md
2013-11-28 19:27:53 +05:30

608 lines
39 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Awesome PHP
A curated list of amazingly awesome PHP libraries, resources and shiny things.
- [Awesome PHP](#awesome-php)
- [Package Management](#package-management)
- [Package Management Related](#package-management-related)
- [Frameworks](#frameworks)
- [Framework Components](#framework-components)
- [Micro Frameworks](#micro-frameworks)
- [Content Management Systems](#content-management-systems)
- [Templating](#templating)
- [HTTP](#http)
- [URL](#url)
- [Email](#email)
- [Files](#files)
- [Streams](#streams)
- [Dependency Injection](#dependency-injection)
- [Imagery](#imagery)
- [Testing](#testing)
- [Documentation](#documentation)
- [Security](#security)
- [Code Analysis](#code-analysis)
- [Build Tools](#build-tools)
- [Asset Management](#asset-management)
- [Geolocation](#geolocation)
- [Date and Time](#date-and-time)
- [Event](#event)
- [Logging](#logging)
- [E-commerce](#e-commerce)
- [PDF](#pdf)
- [ORM and Datamapping](#orm-and-datamapping)
- [NoSQL](#nosql)
- [Queue](#queue)
- [Search](#search)
- [Command Line](#command-line)
- [Authentication](#authentication)
- [Markup](#markup)
- [Text and Numbers](#text-and-numbers)
- [Filtering and Validation](#filtering-and-validation)
- [REST and API](#rest-and-api)
- [Caching](#caching)
- [Data Structure and Storage](#data-structure-and-storage)
- [Notifications](#notifications)
- [Third Party APIs](#third-party-apis)
- [Miscellaneous](#miscellaneous)
- [Development Software](#development-software)
- [Web Tools](#web-tools)
- [Resources](#resources)
- [Websites](#websites)
- [E-Books](#e-books)
- [Web Reading](#web-reading)
- [PHP Reading](#php-reading)
- [PHP Internals Reading](#php-internals-reading)
- [Suggestions](#suggestions)
## Package Management
*Libraries for package and dependency management.*
* [Composer](http://getcomposer.org/)/[Packagist](http://packagist.org/) - A package and dependency manager.
* [Composer Installers](https://github.com/composer/installers) - A multi framework Composer library installer.
## Package Management Related
*Libraries related to package management.*
* [Satis](https://github.com/composer/satis) - A static Composer repository generator.
* [Composition](https://github.com/bamarni/composition) - A library to check your Composer environment at runtime.
* [Poser](https://github.com/FrenkyNet/Poser) - A Composer class aliasing library.
* [Version](https://github.com/herrera-io/php-version) - A parsing and comparison library for semantic versioning.
* [NameSpacer](https://github.com/ralphschindler/Namespacer) - A library to convert from underscores to namespaces.
* [Patch Installer](https://github.com/goatherd/patch-installer) - A library to install patches using Composer.
## Frameworks
*Popular PHP frameworks.*
* [Symfony2](http://symfony.com/) - A framework comprised of individual components.
* [Knp RAD Bundle](http://rad.knplabs.com/) - A Rapid Application Development (RAD) bundle for Symfony 2.
* [Zend Framework 2](http://framework.zend.com) - Another framework comprised of individual components.
* [Laravel 4](http://laravel.com/) - A simple PHP framework.
* [Lithium](http://lithify.me/) - Another framework of components.
* [Aura PHP](http://auraphp.com/) - A framework of independent components.
* [Phalcon](http://phalconphp.com/en/) - A framework implemented as a C extension.
## Framework Components
*PHP framework components.*
* [Symfony2 Components](http://symfony.com/doc/master/components/index.html) - The components that make Symfony2.
* [Zend Framework 2 Components](https://packages.zendframework.com/) - The components that make ZF2.
* [Aura Components](http://auraphp.github.com/) - A package of PHP 5.4 components.
## Micro Frameworks
*Micro frameworks and routers.*
* [Silex](http://silex.sensiolabs.org/) - A micro framework built around Symfony2 components.
* [Silex Skeleton](https://github.com/fabpot/Silex-Skeleton) - A skeleton for Silex.
* [Silex Web Profiler](https://github.com/silexphp/Silex-WebProfiler) - A web debug toolbar for Silex.
* [Stack](https://github.com/stackphp) - A library of stackable middleware for Silex/Symfony.
* [Slim](http://www.slimframework.com/) - Another simple micro framework.
* [Slim Skeleton](https://github.com/codeguy/Slim-Skeleton) - A skeleton for Slim.
* [Slim View](https://github.com/codeguy/Slim-Views) - A collection of custom views for Slim.
* [Slim Middleware](https://github.com/codeguy/Slim-Middleware) - A collection of custom middleware for Slim.
* [Bullet PHP](http://bulletphp.com/) - A mico framework for building REST APIs.
* [Klein](https://github.com/chriso/klein.php) - A fast routing library.
## Content Management Systems
*Modern content management systems.*
* [Bolt](https://github.com/bolt/bolt) - A simple CMS built with Silex and Twig.
## Templating
*Libraries and tools for templating and lexing.*
* [Twig](http://twig.sensiolabs.org/) - A comprehensive templating language.
* [Twig Cache Extension](https://github.com/asm89/twig-cache-extension) - A template fragment cache library for Twig.
* [Mustache](https://github.com/bobthecow/mustache.php) - A PHP implementation of the Mustache template language.
* [Phly Mustache](https://github.com/weierophinney/phly_mustache) - Another PHP implementation of the Mustache template language.
* [MtHaml](https://github.com/arnaud-lb/MtHaml) - A PHP implementation of the HAML template language.
* [Plates](http://platesphp.com/) - A native PHP templating library.
* [Lex](https://github.com/pyrocms/lex) - A lightweight template parser.
* [Sculpin](http://symfony.com/projects/sculpin) - A library that converts Markdown and Twig into static HTML.
## HTTP
*Libraries for working with HTTP and scraping websites.*
* [Guzzle](http://guzzlephp.org/) - A HTTP client.
* [Buzz](https://github.com/kriswallsmith/Buzz) - Another HTTP client.
* [Requests](https://github.com/rmccue/Requests) - A simple HTTP library.
* [Goutte](https://github.com/fabpot/Goutte) - A simple web scraper.
* [PHP VCR](http://php-vcr.github.io/) - A library for recording and replaying HTTP requests.
## URL
*Libraries for parsing URLs.*
* [Purl](https://github.com/jwage/purl) - A URL manipulation library.
* [PHP Domain Parser](https://github.com/jeremykendall/php-domain-parser) - A domain suffix parser library.
## Email
*Libraries for sending and parsing email.*
* [SwiftMailer](http://swiftmailer.org/) - A mailer solution.
* [PHPMailer](https://github.com/PHPMailer/PHPMailer) - Another mailer solution.
* [Fetch](https://github.com/tedivm/Fetch) - An IMAP library.
* [Email Reply Parser](https://github.com/willdurand/EmailReplyParser) - An email reply parser library.
* [Stampie](https://github.com/henrikbjorn/Stampie) - A library for email services such as [SendGrid](http://sendgrid.com), [PostMark](http://postmarkapp.com) and [MailGun](http://www.mailgun.com).
## Files
*Libraries for file manipulation and MIME type detection.*
* [Gaufrette](https://github.com/KnpLabs/Gaufrette) - A filesystem abstraction layer.
* [Canal](https://github.com/dflydev/dflydev-canal) - A library to determine internet media types.
* [Apache MIME Types](https://github.com/dflydev/dflydev-apache-mime-types) - A library that parses Apache MIME types.
* [Ferret](https://github.com/versionable/Ferret) - A MIME detection library.
* [Hoa Mime](https://github.com/hoaproject/Mime) - Another MIME detection library.
* [Lurker](https://github.com/henrikbjorn/Lurker) - A resource tracking library.
* [PHP File Locator](https://github.com/herrera-io/php-file-locator) - A library for locating files in large projects.
* [PHP FFmpeg](https://github.com/alchemy-fr/PHP-FFmpeg/) - A wrapper for the [FFmpeg](http://www.ffmpeg.org/) video library.
## Streams
*Libraries for working with streams.*
* [Streamer](https://github.com/fzaninotto/Streamer) - A simple object-orientated stream wrapper library.
## Dependency Injection
*Libraries that implement the dependency injection design pattern.*
* [Pimple](http://pimple.sensiolabs.org/) - A tiny dependency injection container.
* [Auryn](https://github.com/rdlowrey/Auryn) - Another dependency injection container.
* [Orno Di](https://github.com/orno/di) - Another flexible dependency injection container.
* [PHP DI](http://mnapoli.github.com/PHP-DI/) - A dependency injection implementation using annotations.
* [Acclimate](https://github.com/jeremeamia/acclimate) - A common interface to dependency injection containers and service locators.
## Imagery
*Libraries for manipulating images.*
* [Imagine](http://imagine.readthedocs.org/en/latest/index.html) - An image manipulation library.
* [PHP Image Workshop](https://github.com/Sybio/ImageWorkshop) - Another image manipulation library.
* [Intervention Image](https://github.com/Intervention/image) - Another image manipulation library.
* [GIF Frame Extractor](https://github.com/Sybio/GifFrameExtractor) - A library to extract GIF animation frame information.
* [GIF Creator](https://github.com/Sybio/GifCreator) - A library to create GIF animations from multiple images.
* [Image With Text](https://github.com/nmcteam/image-with-text) - A library for embedding text into images.
* [Color Extractor](https://github.com/php-loep/color-extractor) - A library for extracting colours from images.
## Testing
*Libraries for testing codebases and generating test data.*
* [PHPUnit](https://github.com/sebastianbergmann/phpunit) - A unit testing framework.
* [ParaTest](https://github.com/brianium/paratest) - A parallel testing library for PHPUnit.
* [PHPSpec](https://github.com/phpspec/phpspec2) - A design by specification unit testing library.
* [Codeception](https://github.com/Codeception/Codeception) - A full stack testing framework.
* [Atoum](https://github.com/atoum/atoum) - A simple testing library.
* [Mockery](https://github.com/padraic/mockery) - A mock object library for testing.
* [Phake](https://github.com/mlively/Phake) - Another mock object library for testing.
* [Parody](https://github.com/dotink/Parody) - Yet another mock object library for testing.
* [Sismo](http://sismo.sensiolabs.org/) - A continuous testing server library.
* [Faker](https://github.com/fzaninotto/Faker) - A fake data generator library.
* [Samsui](https://github.com/mauris/samsui) - Another fake data generator library.
* [Alice](https://github.com/nelmio/alice) - An expressive fixture generation library.
* [Behat](http://behat.org/) - A behaviour driven development (BDD) testing framework.
* [Pho](https://github.com/danielstjules/pho) - Another behaviour driven development testing framework.
* [Mink](http://mink.behat.org/) - Web acceptance testing.
* [HTTP Mock](https://github.com/InterNations/http-mock) - A library for mocking HTTP requests in unit tests.
* [VFS Stream](https://github.com/mikey179/vfsStream) - A virtual filesystem stream wrapper for testing.
* [Locust](http://locust.io/) - A modern load test library written in Python.
* [Travis CI](https://travis-ci.org/) - A continuous integration platform.
## Documentation
*Libraries for generating project documentation.*
* [Sami](https://github.com/fabpot/Sami) - An API documentation generator.
* [PHP Documentor 2](https://github.com/phpDocumentor/phpDocumentor2) - Another documentation generator.
## Security
*Libraries for generating secure random numbers, encrypting data and scanning for vulnerabilities.*
* [OWASP PHP Security Project](https://github.com/owasp/phpsec) - Security tools & libraries as well as a demonstrative framework.
* [HTML Purifier](https://github.com/ezyang/htmlpurifier) - A standards compliant HTML filter.
* [RandomLib](https://github.com/ircmaxell/RandomLib) - A library for generating random numbers and strings.
* [True Random](https://github.com/pixeloution/true-random) - A library that generates random numbers using [www.random.org](http://www.random.org/).
* [SecurityMultiTool](https://github.com/padraic/SecurityMultiTool) - A PHP security library.
* [Password Compat](https://github.com/ircmaxell/password_compat) - A compatibility library for the new PHP 5.5 password functions.
* [PHPAss](http://www.openwall.com/phpass/) - A portable password hashing framework.
* [PHP Password Lib](https://github.com/ircmaxell/PHP-PasswordLib) - A library for generating and validating passwords.
* [Password Policy](https://github.com/ircmaxell/password-policy) - A password policy library for PHP and JavaScript.
* [PHPSecLib](http://phpseclib.sourceforge.net/) - A pure PHP secure communications library.
* [TCrypto](https://github.com/timoh6/TCrypto) - A simple encrypted key-value storage library.
* [PHP IDS](https://github.com/PHPIDS/PHPIDS) - A structured PHP security layer.
* [PHP SSH](https://github.com/Herzult/php-ssh) - An experimental object orientated SSH wrapper library.
* [IniScan](https://github.com/psecio/iniscan) - A tool that scans PHP INI files for security.
* [SensioLabs Security Check](https://security.sensiolabs.org/) - A web tool to check your Composer dependecies for security advisories.
* [Scrutinizer](https://scrutinizer-ci.com/) - A web tool to scrutinise PHP code.
* [Zed](https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project) - An integrated penetration testing tool for web applications.
## Code Analysis
*Libraries and tools for analysing, parsing and manipulation codebases.*
* [PHP Parser](https://github.com/nikic/PHP-Parser) - A PHP parser written in PHP.
* [PHPPHP](https://github.com/ircmaxell/PHPPHP) - A PHP VM implementation in PHP.
* [PHPSandbox](https://github.com/fieryprophet/php-sandbox) - A PHP sandbox environment.
* [Dissect](https://github.com/jakubledl/dissect) - A set of tools for lexical and syntactical analysis.
* [PHP Mess Detector](http://phpmd.org/) - A library that scans code for bugs, sub-optimal code, unused parameters and more.
* [PHP Code Sniffer](https://github.com/squizlabs/PHP_CodeSniffer) - A library that detects PHP, CSS and JS coding standard violations.
* [PHPCPD](https://github.com/sebastianbergmann/phpcpd) - A library that detects copied and pasted code.
* [PHP Analyser](https://github.com/scrutinizer-ci/php-analyzer) - A library for analysing PHP code to find bugs and errors.
* [PHP CS Fixer](https://github.com/fabpot/PHP-CS-Fixer) - A coding standard fixer library.
* [PHP Manipulator](https://github.com/schmittjoh/php-manipulator) - A library for analysing and modifying PHP Source Code.
* [PHP Refactoring Browser](https://github.com/QafooLabs/php-refactoring-browser) - A command line utility for refactoring PHP code.
* [UBench](https://github.com/devster/ubench) - A simple micro benchmark library.
* [Athletic](https://github.com/polyfractal/athletic) - An annotation based benchmark framework.
* [Mondrian](https://github.com/Trismegiste/Mondrian) - A code analysis tool using Graph Theory.
* [PHP Debug Bar](http://phpdebugbar.com/) - A debugging toolbar.
* [PHP Console](https://github.com/Seldaek/php-console) - A web debugging console.
* [PHPDBG](http://phpdbg.com/) - An interactive PHP debugger.
## Build Tools
*Project build and automation tools.*
* [Go](https://github.com/herrera-io/php-go) - A simple PHP build tool.
* [Bob](https://github.com/CHH/bob) - A simple project automation tool.
* [Phake](https://github.com/jaz303/phake) - A rake PHP clone library.
* [Box](https://github.com/kherge/Box) - A utility to build PHAR files.
## Asset Management
*Tools for managing, compressing and minifying website assets.*
* [Assetic](https://github.com/kriswallsmith/assetic) - An asset manager pipeline library.
* [Pipe](https://github.com/CHH/pipe) - Another asset manager pipeline library.
* [Munee](https://github.com/meenie/munee) - An asset optimiser library.
* [JShrink](https://github.com/tedivm/JShrink) - A JavaScript minifier library.
## Geolocation
*Libraries for geocoding addresses and working with latitudes and longitudes.*
* [GeoCoder](http://geocoder-php.org/) - A geocoding library.
* [GeoTools](https://github.com/php-loep/Geotools) - A library of geo-related tools.
* [PHPGeo](https://github.com/mjaschen/phpgeo) - A simple geo library.
* [GeoJSON](https://github.com/jmikola/geojson) - A GeoJSON implementation.
## Date and Time
*Libraries for working with dates and times.*
* [Carbon](https://github.com/briannesbitt/Carbon) - A simple DateTime API extension.
* [ExpressiveDate](https://github.com/jasonlewis/expressive-date) - Another DateTime API extension.
* [CalendR](http://yohan.giarel.li/CalendR) - A calendar management library.
## Event
*Libraries that are event-driven or implement non-blocking event loops.*
* [React](https://github.com/reactphp/react) - An event driven non-blocking I/O library.
* [Rx.PHP](https://github.com/asm89/Rx.PHP) - A reactive extension library.
* [Ratchet](https://github.com/cboden/Ratchet) - A web socket library.
* [Hoa WebSocket](https://github.com/hoaproject/Websocket) - Another web socket library.
* [Hoa EventSource](https://github.com/hoaproject/Eventsource) - An event source library.
* [Evenement](https://github.com/igorw/evenement) - An event dispatcher library.
* [FuelPHP Event](https://github.com/fuelphp/event) - Another event dispatcher library.
## Logging
*Libraries for generating and working with log files.*
* [Monolog](https://github.com/Seldaek/monolog) - A comprehensive logger.
## E-commerce
*Libraries and applications for taking payments and building online e-commerce stores.*
* [OmniPay](https://github.com/adrianmacneil/omnipay) - A framework agnostic multi-gateway payment processing library.
* [Payum](https://github.com/payum/payum) - A payment abstraction library.
* [Sylius](http://www.sylius.com/) - An open source e-commerce solution.
* [Thelia](http://thelia.net/v2/) - Another open source e-commerce solution.
* [Money](https://github.com/bussnet/money) - A PHP implementation of Fowler's money pattern.
## PDF
*Libraries and software for working with PDF files.*
* [Snappy](https://github.com/KnpLabs/snappy) - A PDF and image generation library.
* [WKHTMLToPDF](https://github.com/antialize/wkhtmltopdf) - A tool to convert HTML to PDF.
## ORM and Datamapping
*Libraries that implement object-relational mapping or datamapping techniques.*
* [Doctrine](http://www.doctrine-project.org/) - A comprehensive DBAL and ORM.
* [Doctrine Migrations](http://docs.doctrine-project.org/projects/doctrine-migrations/en/latest/toc.html) - A migration library for Doctrine.
* [Doctrine Extensions](https://github.com/l3pp4rd/DoctrineExtensions) - A collection of Doctrine behavioural extensions.
* [Propel](http://www.propelorm.org/) - A fast ORM.
* [Eloquent](https://github.com/illuminate/database) - The Laravel 4 ORM.
* [Baum](https://github.com/etrepat/baum) - A nested set implementation for Eloquent.
* [Spot](https://github.com/vlucas/Spot) - A MySQL datamapper ORM.
* [PHP ActiveRecord](https://github.com/kla/php-activerecord) - A PHP Active Record implementation.
* [Paris and Idiorm](http://j4mie.github.io/idiormandparis/) - A minimalist database library.
* [Pomm](https://github.com/chanmix51/Pomm) - An Object Model Manager for PostgreSQL.
* [Migrations](https://github.com/icomefromthenet/Migrations) - A migration management library.
* [PHPMig](https://github.com/davedevelopment/phpmig) - Another migration management library.
* [Phinx](https://github.com/robmorgan/phinx) - Another database migration library.
## NoSQL
*Libraries for working with "NoSQL" backends.*
* [MongoQB](https://github.com/alexbilbie/MongoQB) - A MongoDB query builder library.
* [Monga](https://github.com/FrenkyNet/Monga) - A MongoDB abstraction library.
* [Predis](https://github.com/nrk/predis) - A feature complete Redis library.
## Queue
*Libraries for working with event and task queues.*
* [Pheanstalk](https://github.com/pda/pheanstalk) - A Beanstalkd client library.
* [PHP AMPQ](https://github.com/videlalvaro/php-amqplib) - An AMPQ library.
* [Thumper](https://github.com/videlalvaro/Thumper) - A RabbitMQ pattern library.
* [Bernard](https://github.com/bernardphp/bernard) - A multibackend abstraction library.
## Search
*Libraries and software for indexing and performing search queries on data.*
* [ElasticSearch PHP](https://github.com/elasticsearch/elasticsearch-php) - The official client library for [ElasticSearch](http://www.elasticsearch.org/).
* [Elastica](https://github.com/ruflin/Elastica) - A client library for ElasticSearch.
* [Solarium](http://www.solarium-project.org/) - A client library for [Solar](http://lucene.apache.org/solr/).
## Command Line
*Libraries for building command line utilities.*
* [Boris](https://github.com/d11wtq/boris) - A tiny PHP REPL.
* [PsySh](https://github.com/bobthecow/psysh) - Another PHP REPL.
* [GetOpt](https://github.com/ulrichsg/getopt-php) - A command line opt parser.
* [OptParse](https://github.com/CHH/optparse) - Another command line opt parser.
* [Commando](https://github.com/nategood/commando) - Another simple command line opt parser.
* [GetOptionKit](https://github.com/c9s/php-GetOptionKit) - Another command line opt parser.
* [Cron Expression](https://github.com/mtdowling/cron-expression) - A library to calculate cron run dates.
* [ShellWrap](https://github.com/MrRio/shellwrap) - A simple command line wrapper library.
* [Hoa Console](https://github.com/hoaproject/Console) - Another command line library.
* [Shunt](https://github.com/php-loep/shunt) - A library for running commands in parallel on multiple remote machines.
## Authentication
*Libraries for implementing authentications schemes.*
* [Sentry](https://github.com/cartalyst/sentry) - A framework agnostic authentication & authorisation library.
* [Sentry Social](http://docs.cartalyst.com/sentry-social-2/introduction) - A library for social network authentication.
* [OPAuth](https://github.com/opauth/opauth) - A multi-provider authentication framework.
* [OAuth2](https://github.com/php-loep/oauth2-server) - An OAuth2 authentication server, resource server and client library.
* [PHP oAuthLib](https://github.com/Lusitanian/PHPoAuthLib) - Another OAuth library.
* [TwitterOAuth](https://github.com/ruudk/twitteroauth) - A Twitter OAuth library.
* [Hawk](https://github.com/dflydev/dflydev-hawk) - A Hawk HTTP authentication library.
## Markup
*Libraries for working with markup.*
* [Decoda](http://milesj.me/code/php/decoda) - A lightweight markup parser library.
* [PHP Markdown](https://github.com/michelf/php-markdown) - A Markdown parser.
* [Dflydev Markdown](https://github.com/dflydev/dflydev-markdown) - Another Markdown parser.
* [Parsedown](https://github.com/erusev/parsedown) - Another Markdown parser.
* [Ciconia](https://github.com/kzykhys/Ciconia) - Another Markdown parser that supports Github flavoured Markdown.
* [HTML5 PHP](https://github.com/Masterminds/html5-php) - An HTML5 parser and serializer library.
## Text and Numbers
*Libraries for parsing and manipulating text and numbers.*
* [ANSI to HTML5](https://github.com/sensiolabs/ansi-to-html) - An ANSI to HTML5 convertor library.
* [Patchwork UTF-8](https://github.com/nicolas-grekas/Patchwork-UTF8) - A portable library for working with UTF-8 strings.
* [Hoa String](https://github.com/hoaproject/String) - Another UTF-8 string library.
* [Stringy](https://github.com/danielstjules/Stringy) - A string manipulation library with multibyte support.
* [Numbers PHP](https://github.com/powder96/numbers.php) - A library for working with numbers.
* [Math](https://github.com/moontoast/math) - A library for working with large numbers.
* [Color Jizz](https://github.com/mikeemoo/ColorJizz-PHP) - A library for manipulating and converting colours.
* [UUID](https://github.com/ramsey/uuid) - A library for generating UUIDs.
* [Slugify](https://github.com/cocur/slugify) - A library to convert strings to slugs.
* [Urlify](https://github.com/jbroadway/urlify) - A PHP port of Django's URLify.js.
* [Text](https://github.com/kzykhys/Text) - A text manipulation library.
* [PHP Units of Measure](https://github.com/triplepoint/php-units-of-measure) - A library for converting between units of measure.
* [PHP Conversion](https://github.com/Crisu83/php-conversion) - Another library for converting between units of measure.
* [SQL Formatter](https://github.com/jdorn/sql-formatter/) - A library for formatting SQL statements.
* [Byte](https://github.com/jschaedl/Byte) - A simple byte conversion library.
## Filtering and Validation
*Libraries for filtering and validating data.*
* [Filterus](https://github.com/ircmaxell/filterus) - A simple PHP filtering library.
* [Respect Validate](https://github.com/Respect/Validation) - A simple validation library.
* [Valitron](https://github.com/vlucas/valitron) - Another validation library.
* [Upload](https://github.com/codeguy/Upload) - A library for handling file uploads and validation.
* [DMS Filter](https://github.com/rdohms/DMS-Filter) - An annotation filtering library.
## REST and API
*Libraries and web tools for developing REST-ful APIs.*
* [Apigility](https://github.com/zfcampus/zf-apigility-skeleton) - An API builder built with Zend Framework 2.
* [Hateoas](https://github.com/willdurand/Hateoas) - A HATEOAS REST web service library.
* [HAL](https://github.com/blongden/hal) - A Hypertext Application Language (HAL) builder library.
* [Negotiation](https://github.com/willdurand/Negotiation) - A content negotiation library.
## Caching
*Libraries for caching data.*
* [Cache](https://github.com/doctrine/cache) - A caching library (part of Doctrine).
* [Stash](https://github.com/tedivm/Stash) - Another library for caching.
## Data Structure and Storage
*Libraries that implement data structure or storage techniques.*
* [Ardent](https://github.com/morrisonlevi/Ardent) - A library of data structures.
* [PHP Collections](https://github.com/schmittjoh/php-collection) - A simple collections library.
* [Serializer](https://github.com/schmittjoh/serializer) - A library for serialising and de-serialising data.
* [PHP Object Storage](https://github.com/herrera-io/php-object-storage) - A library for object storage.
## Notifications
*Libraries for working with notification software.*
* [Nod](https://github.com/filp/nod) - A notification library (e.g. Growl).
* [Notificato](https://github.com/wrep/notificato) - A library for handling push notifications.
* [Notification Pusher](https://github.com/Ph3nol/NotificationPusher) - A standalone library for device push notifications.
* [Notificator](https://github.com/namshi/notificator) - A lightweight notification library.
## 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.
* [S3 Stream Wrapper](https://github.com/gwkunze/S3StreamWrapper) - A stream wrapper library for Amazon S3.
* [Stripe](https://github.com/stripe/stripe-php) - The official Stripe PHP library.
* [Campaign Monitor](http://campaignmonitor.github.com/createsend-php/) - The official Campaign Monitor PHP library.
* [Digital Ocean](https://github.com/toin0u/DigitalOcean) - A library to interface with the Digital Ocean API.
* [Github](https://github.com/dsyph3r/github-api3-php) - A library to interface with the Github API.
## Miscellaneous
*Useful libraries or tools that don't fit in the categories above.*
* [Spork](https://github.com/kriswallsmith/spork) - A process forking library.
* [JSON Lint](https://github.com/Seldaek/jsonlint) - A JSON lint utility.
* [JSONPCallbackValidator](https://github.com/willdurand/JsonpCallbackValidator) - A library for validating JSONP callbacks.
* [KnpMenu](https://github.com/KnpLabs/KnpMenu) - A menu library.
* [Pagerfanta](https://github.com/whiteoctober/Pagerfanta) - A pagination library.
* [Ruler](https://github.com/bobthecow/Ruler) - A simple stateless production rules engine.
* [LiteCQRS](https://github.com/beberlei/litecqrs-php) - A CQRS (Command Query Responsibility Separation) library.
* [Sslurp](https://github.com/EvanDotPro/Sslurp) - A library that makes dealing with SSL suck less.
* [PHP Option](https://github.com/schmittjoh/php-option) An option type library.
* [Metrics](https://github.com/beberlei/metrics) - A simple metrics API library.
* [Sabre VObject](https://github.com/evert/sabre-vobject) - A library for parsing VCard and iCalendar objects.
* [Annotations](https://github.com/doctrine/annotations) - An annotations library (part of Doctrine).
* [Whoops](https://github.com/filp/whoops) - A pretty error handling library.
* [Finite](http://yohan.giarel.li/Finite) - A simple PHP finite state machine.
* [LadyBug](https://github.com/raulfraile/Ladybug) - A dumper library.
* [Plum](https://github.com/aerialls/Plum) - A deployer library.
* [Procrastinator](https://github.com/lstrojny/Procrastinator) - A library for running time consuming tasks.
* [Compose](https://github.com/igorw/compose) - A function composition library.
* [SuperClosure](https://github.com/jeremeamia/super_closure) - A library that allows Closures to be serialized.
* [Jumper](https://github.com/kakawait/Jumper) - A remote service executor library.
* [Underscore](http://brianhaveri.github.io/Underscore.php/) - A PHP port of the Underscore JS library.
* [PHP PassBook](https://github.com/eymengunay/php-passbook) - A PHP library for iOS PassBook.
* [PHP Expression](https://github.com/Kitano/php-expression) - A PHP expression language.
* [RMT](https://github.com/liip/RMT) - A library for versioning and releasing software.
* [Wise](https://github.com/herrera-io/php-wise) - A configuration manager.
* [Opengraph](https://github.com/euskadi31/Opengraph) - An opengraph library.
* [Essence](https://github.com/felixgirault/essence) - A library for extracting web media.
* [Embera](https://github.com/mpratt/Embera) - An Oembed consumer library.
* [Graphviz](https://github.com/alexandresalome/graphviz) - A Graphviz library.
* [Monad PHP](https://github.com/ircmaxell/monad-php) - A simple Monad library.
* [Flux](https://github.com/selvinortiz/flux) - A regular expression building library.
* [Patchwork](http://antecedent.github.io/patchwork/) - A library for redefining userland functions.
* [Galapagos](https://github.com/igorw/galapagos) - Evolutionary language transformation.
* [Design Patterns PHP](https://github.com/domnikl/DesignPatternsPHP) - A repository of software patterns implemented in PHP.
* [PHPCR](https://github.com/phpcr/phpcr) - A PHP port of the Java Content Repository (JCR).
* [Functional PHP](https://github.com/lstrojny/functional-php) - A functional programming library.
* [ClassPreloader](https://github.com/mtdowling/ClassPreloader) - A library for optimising autoloading.
* [Lib Country](https://github.com/phine/lib-country) - A library for country and subdivision data.
* [Lib Accessor](https://github.com/phine/lib-accessor) - A library for simplifying accessors.
* [PHPStack](http://dunkels.com/adam/phpstack/) - A TCP/IP stack proof of concept written in PHP.
* [Nmap](https://github.com/willdurand/nmap) - A PHP wrapper around [Nmap](http://nmap.org/).
* [Code Mover](https://github.com/dantleech/code-mover) - A library for moving code.
* [Country List](https://github.com/umpirsky/country-list) - A list of all countries with names and ISO 3166-1 codes.
## Development Software
*Software for creating a development environment.*
* [HomeBrew](http://mxcl.github.com/homebrew/) - A package manager for OSX.
* [HomeBrew PHP](https://github.com/josegonzalez/homebrew-php) - A PHP tap for HomeBrew.
* [PHP OSX](http://php-osx.liip.ch/) - A PHP installer for OSX.
* [HipHop PHP](https://github.com/facebook/hiphop-php) - A Virtual Machine, Runtime and JIT for PHP by Facebook.
* [Vagrant](http://www.vagrantup.com/) - A portable development environment utility.
* [Ansible](http://www.ansibleworks.com/) - A radically simple orchestration framework.
* [Puppet](http://puppetlabs.com/) - A server automation framework and application.
* [Chef](https://github.com/opscode/chef) - A systems integration framework.
* [SaltStack](http://saltstack.com/community.html) - An infrastructure management tool.
* [PuPHPet](https://puphpet.com/) - A web tool for building PHP development virtual machines.
* [PHP Brew](https://github.com/c9s/phpbrew) - A PHP version manager and installer.
* [PHP Env](https://github.com/CHH/phpenv) - Another PHP version manager.
* [PHP Switch](https://github.com/jubianchi/phpswitch) - Another version manager.
* [PHP Build](https://github.com/CHH/php-build) - Another PHP version installer.
* [CodeKit](http://incident57.com/codekit/) - A general web development tool.
* [HTTPie](https://github.com/jkbr/httpie) - A command line alternative to cURL written in Python.
* [Backup](https://github.com/meskyanichi/backup) - A server backup tool written in Ruby.
## Web Tools
*Web-based tools.*
* [3V4L](http://3v4l.org/) - An online PHP shell.
* [DBV](http://dbv.vizuina.com/) - A database version control application.
* [PHP Queue](https://github.com/CoderKungfu/php-queue) - An application for managing queueing backends.
# Resources
Various resources, such as books, websites and articles, for improving your PHP development skills and knowledge.
## Websites
*Useful PHP-related websites and newsletters.*
* [PHP The Right Way](http://www.phptherightway.com/) - A PHP best practice quick reference guide.
* [PHP Best Practices](http://phpbestpractices.org/) - A PHP best practice guide.
* [PHP Weekly](http://phpweekly.info/archive/) - A weekly PHP newsletter.
* [PHP Security](http://phpsecurity.readthedocs.org/en/latest/index.html) - A guide to PHP security.
* [PHP Internals](http://www.phpinternalsbook.com/) - A book about the PHP internals.
* [PHP FIG](http://www.php-fig.org/) - The PHP Framework Interoperability Group.
* [The Open Web Application Security Project (OWASP)](https://www.owasp.org/index.php/Main_Page) - An open software security community.
* [WebSec IO](http://websec.io/) - A web security community resource.
* [Web Advent](http://webadvent.org) - An advent calendar for web developers.
* [Programming with Anthony](http://www.youtube.com/playlist?list=PLM-218uGSX3DQ3KsB5NJnuOqPqc5CW2kW) - A video series by Anthony Ferrara.
## E-Books
*Fantastic e-books.*
* [Scaling PHP Applications](http://www.scalingphpbook.com) - An ebook about scaling PHP applications by Steve Corona.
* [Grumpy PHPUnit](https://leanpub.com/grumpy-phpunit) - A book about unit testing with PHPUnit by Chris Hartjes.
## Web Reading
*General web-development-related reading materials.*
* [OWASP PHP Security Cheat Sheet](https://www.owasp.org/index.php/PHP_Security_Cheat_Sheet) - A PHP security cheatsheet.
* [C is for Cookie, H is for Hacker](http://www.troyhunt.com/2013/03/c-is-for-cookie-h-is-for-hacker.html) - An article about cookies and security.
* [You Blew It Loading Your Login Form Over HTTP](http://www.troyhunt.com/2013/05/your-login-form-posts-to-https-but-you.html) - An article about using HTTPS correctly with login forms.
* [How HTTPS Secures Your Connection](http://blog.hartleybrody.com/https-certificates/) - An article explaining how TLS/SSL secures your connection.
* [How to Build a Secure Remember Me Feature](http://www.troyhunt.com/2013/07/how-to-build-and-how-not-to-build.html) - An article on how to build a secure remember me feature.
* [A Beginners Guide to HTTP Cache Headers](http://www.mobify.com/blog/beginners-guide-to-http-cache-headers/) - An article about HTTP cache headers.
* [Semantic Versioning](http://semver.org/) - A website explaining semantic versioning.
* [Atlassian Git Tutorials](https://www.atlassian.com/git) - A series of Git tutorials.
* [Hg Init](http://hginit.com/) - A Mercurial tutorial.
## PHP Reading
*PHP-releated reading materials.*
* [Seven Ways to Screw Up BCrypt](http://blog.ircmaxell.com/2012/12/seven-ways-to-screw-up-bcrypt.html) - An article about correct BCrypt implementation.
* [Preventing CSRF Attacks](http://blog.ircmaxell.com/2013/02/preventing-csrf-attacks.html) - An article on preventing CSRF attacks.
* [Don't Worry About BREACH](http://blog.ircmaxell.com/2013/08/dont-worry-about-breach.html) - An article about the BREACH hack and CSRF tokens.
* [On PHP 5.3, Lamda Functions and Closures](http://fabien.potencier.org/article/17/on-php-5-3-lambda-functions-and-closures) - An article about lambda functions and closures.
* [Use Env](http://seancoates.com/blogs/use-env) - An article about using the unix environment helper.
* [Composer Primer](http://daylerees.com/composer-primer) - A Composer primer.
* [Composer Versioning](https://igor.io/2013/01/07/composer-versioning.html) - An article about Composer versioning.
* [Composer Stability Flags](https://igor.io/2013/02/07/composer-stability-flags.html) - An article about Composer stability flags.
* [Innocent Villagefolk or a Pillagin Pirate?](http://blog.astrumfutura.com/2012/04/php-innocent-villagefolk-or-a-pillagin-pirate/) - An article about PHP taking ideas from other language.
* [Predicting Random Numbers in PHP](http://blog.astrumfutura.com/2013/03/predicting-random-numbers-in-php-its-easier-than-you-think/) - An article about generating random numbers.
* [A 20 Point List for Preventing XSS in PHP](http://blog.astrumfutura.com/2013/04/20-point-list-for-preventing-cross-site-scripting-in-php/) - An article about preventing XSS.
* [PHP Sucks! But I Like It!](http://blog.ircmaxell.com/2012/04/php-sucks-but-i-like-it.html) - An article about the pros and cons of PHP.
* [PHP Is Much Better Than You Think](http://fabien.potencier.org/article/64/php-is-much-better-than-you-think) - An article about the PHP lanaguage and ecosystem.
## PHP Internals Reading
*Reading materials related to the PHP internals or performance.*
* [Print vs Echo, Which One is Faster?](http://fabien.potencier.org/article/8/print-vs-echo-which-one-is-faster) - An article about print and echo performance.
* [The PHP Ternary Operator. Fast or Not?](http://fabien.potencier.org/article/48/the-php-ternary-operator-fast-or-not) - An article ternary performance.
* [Disproving the Single Quotes Myth](http://nikic.github.com/2012/01/09/Disproving-the-Single-Quotes-Performance-Myth.html) - An article about performance of single and double quoted strings.
* [You're Being Lied To](http://blog.golemon.com/2007/01/youre-being-lied-to.html) - An article about internal ZVALs.
* [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.
* [Understanding OpCodes](http://blog.golemon.com/2008/01/understanding-opcodes.html) - An article about opcodes.
* [How Foreach Works](http://stackoverflow.com/questions/10057671/how-foreach-actually-works/14854568#14854568) - A detailed StackOverflow answer about foreach.
* [When Does Foreach Copy?](http://nikic.github.com/2011/11/11/PHP-Internals-When-does-foreach-copy.html) - An article about the internals of foreach.
* [How Big Are PHP Arrays (And Values) Really?](http://nikic.github.com/2011/12/12/How-big-are-PHP-arrays-really-Hint-BIG.html) - An article about array internals.
* [PHP Evaluation Order](https://gist.github.com/nikic/6699370) - An article about evaluation order in PHP.
* PHP Source Code for Developers: [1](http://blog.ircmaxell.com/2012/03/phps-source-code-for-php-developers.html) [2](http://nikic.github.com/2012/03/16/Understanding-PHPs-internal-function-definitions.html) [3](http://blog.ircmaxell.com/2012/03/phps-source-code-for-php-developers_21.html) [4](http://nikic.github.com/2012/03/28/Understanding-PHPs-internal-array-implementation.html) - A series about the PHP source code.
* Collecting Garbage: [1](http://www.php.net/manual/en/features.gc.refcounting-basics.php) [2](http://www.php.net/manual/en/features.gc.collecting-cycles.php) [3](http://www.php.net/manual/en/features.gc.performance-considerations.php) - A series about the PHP garbage collection internals.
# Suggestions
Please open an issue for any new suggestions or send a tweet to [@jamieyork](https://twitter.com/jamieyork).