awesome-php/awesome-php.md

221 lines
20 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 Libraries
A list of amazingly awesome PHP libraries that you should consider using (and some other shiny extras).
* [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.
* [Satis](https://github.com/composer/satis) - A static Composer repository generator.
* [Symfony2](http://symfony.com/) - A framework comprised of individual components.
* [Zend Framework 2](http://framework.zend.com) - Another framework comprised of individual components.
* [Laravel 4](https://github.com/laravel/framework) - A simple PHP framework.
* [Lithium](http://lithify.me/) - Another framework of 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.
* [Silex](http://silex.sensiolabs.org/) - A micro framework built around Symfony2 components.
* [Silex Skeleton](https://github.com/fabpot/Silex-Skeleton) - A skeleton for Silex.
* [Slim](http://www.slimframework.com/) - Another simple micro framework.
* [Bullet PHP](http://bulletphp.com/) - A mico framework for building REST APIs.
* [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.
* [SwiftMailer](http://swiftmailer.org/) - A mailer solution.
* [Pimple](http://pimple.sensiolabs.org/) - A tiny dependency injection container.
* [Auryn](https://github.com/rdlowrey/Auryn) - Another dependency injection container.
* [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.
* [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.
* [Migrations](https://github.com/icomefromthenet/Migrations) - A migration management library.
* [Phinx](https://github.com/robmorgan/phinx) - Another database migration library.
* [Propel](http://www.propelorm.org/) - A fast ORM.
* [Spot](https://github.com/vlucas/Spot) - A MySQL datamapper ORM.
* [Goutte](https://github.com/fabpot/Goutte) - A simple web scraper.
* [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.
* [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.
* [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.
* [Monolog](https://github.com/Seldaek/monolog) - A comprehensive logger.
* [Behat](http://behat.org/) - A Behaviour Driven Development framework.
* [Mink](http://mink.behat.org/) - Web acceptance testing.
* [Guzzle](http://guzzlephp.org/) - A HTTP client.
* [Buzz](https://github.com/kriswallsmith/Buzz) - Another HTTP client.
* [PHPUnit](https://github.com/sebastianbergmann/phpunit) - A unit testing framework.
* [RunkitTestCase](https://github.com/kherge/RunkitTestCase) - A library for creating PHPUnit test cases that use runkit.
* [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.
* [KnpMenu](https://github.com/KnpLabs/KnpMenu) - A menu library.
* [Gaufrette](https://github.com/KnpLabs/Gaufrette) - A filesystem abstraction layer.
* [Snappy](https://github.com/KnpLabs/snappy) - A PDF and image generation library (uses [WKHTMLToPDF](https://github.com/antialize/wkhtmltopdf)).
* [Pagerfanta](https://github.com/whiteoctober/Pagerfanta) - A pagination library.
* [GeoCoder](http://geocoder-php.org/) - A geocoding library.
* [GeoTools](https://github.com/toin0u/Geotools) - A library of geo-related tools.
* [Faker](https://github.com/fzaninotto/Faker) - A fake data generator library.
* [Spork](https://github.com/kriswallsmith/spork) - A process forking library.
* [HTML Purifier](https://github.com/ezyang/htmlpurifier) - A standards compliant HTML filter.
* [React](https://github.com/reactphp/react) - An event driven non-blocking I/O library.
* [Événement](https://github.com/igorw/evenement) - An event dispatcher library.
* [FuelPHP Event](https://github.com/fuelphp/event) - Another event dispatcher library.
* [Sami](https://github.com/fabpot/Sami) - An API documentation generator.
* [PHP Documentor 2](https://github.com/phpDocumentor/phpDocumentor2) - Another documentation generator.
* [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.
* [JSON Lint](https://github.com/Seldaek/jsonlint) - A JSON lint utility.
* [PHPAss](http://www.openwall.com/phpass/) - A portable password hashing framework.
* [PHPSecLib](http://phpseclib.sourceforge.net/) - A pure PHP secure communications library.
* [PHP Password Lib](https://github.com/ircmaxell/PHP-PasswordLib) - A library for generating and validating passwords.
* [Password Compat](https://github.com/ircmaxell/password_compat) - A library that provides compatibility with the new PHP 5.5 password functions.
* [Password Policy](https://github.com/ircmaxell/password-policy) - A password policy library for PHP and JavaScript.
* [RandomLib](https://github.com/ircmaxell/RandomLib) - A library for generating random numbers and strings.
* [SecurityMultiTool](https://github.com/padraic/SecurityMultiTool) - A PHP security library.
* [Box](https://github.com/kherge/Box) - A utility to build PHAR files.
* [Wisdom](https://github.com/kherge/Wisdom) - A library for loading config data.
* [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.
* [TCrypto](https://github.com/timoh6/TCrypto) - A simple encrypted key-value storage library.
* [OmniPay](https://github.com/adrianmacneil/omnipay) - A framework agnostic multi-gateway payment processing library.
* [Ruler](https://github.com/bobthecow/Ruler) - A simple stateless production rules engine.
* [Carbon](https://github.com/briannesbitt/Carbon) - A simple DateTime API extension.
* [Datum](https://github.com/dandoescode/datum) - A fork of the Carbon DateTime API extension.
* [ExpressiveDate](https://github.com/jasonlewis/expressive-date) - Another DateTime API extension.
* [Upload](https://github.com/codeguy/Upload) - A library for handling file uploads and validation.
* [Sismo](http://sismo.sensiolabs.org/) - A continuous testing server library.
* [Fetch](https://github.com/tedivm/Fetch) - An IMAP library.
* [Email Reply Parser](https://github.com/willdurand/EmailReplyParser) - An email reply parser library.
* [Lex](https://github.com/pyrocms/lex) - A lightweight template parser.
* [Sslurp](https://github.com/EvanDotPro/Sslurp) - A library that makes dealing with SSL suck less.
* [Composition](https://github.com/bamarni/composition) - A library to check your Composer environment at runtime.
* [Entities](https://github.com/kherge/Entities) - A Doctrine ORM service provider for Silex.
* [Elf](https://github.com/kherge/Elf) - A collection of helpers for the Symfony Console component.
* [Amend](https://github.com/kherge/Amend) - A Symfony Console helper and command set for updating and upgrading applications.
* [Doctrine Extensions](https://github.com/l3pp4rd/DoctrineExtensions) - A collection of Doctrine behavioural extensions.
* [Color Jizz](https://github.com/mikeemoo/ColorJizz-PHP) - A library for manipulating and converting colours.
* [Poser](https://github.com/FrenkyNet/Poser) - A Composer class aliasing library.
* [Version](https://github.com/kherge/Version) - A parsing and comparison library for semantic versioning.
* [Respect Validate](https://github.com/Respect/Validation) - A simple validation library.
* [Valitron](https://github.com/vlucas/valitron) - Another validation library.
* [BCrypt](https://github.com/kherge/Bcrypt) - A BCrypt password hashing library.
* [ShellWrap](https://github.com/MrRio/shellwrap) - A simple command line wrapper library.
* [Streamer](https://github.com/fzaninotto/Streamer) - A simple object-orientated stream wrapper library.
* [Cron Expression](https://github.com/mtdowling/cron-expression) - A library to calculate cron run dates.
* [OPAuth](https://github.com/uzyn/opauth) - A multi-provider authentication framework.
* [Ratchet](https://github.com/cboden/Ratchet) - A web socket library.
* [Alice](https://github.com/nelmio/alice) - An expressive fixture generation library.
* [PHP Option](https://github.com/schmittjoh/php-option) An option type library.
* [Hateoas](https://github.com/willdurand/Hateoas) - A HATEOAS REST web service library.
* [Metrics](https://github.com/beberlei/metrics) - A simple metrics API library.
* [JShrink](https://github.com/tedivm/JShrink) - A JavaScript minifier library.
* [Ardent](https://github.com/morrisonlevi/Ardent) - A library of data structures.
* [HAL](https://github.com/blongden/hal) - A Hypertext Application Language (HAL) builder library.
* [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.
* [Sabre VObject](https://github.com/evert/sabre-vobject) - A library for parsing VCard and iCalendar objects.
* [OAuth2](https://github.com/lncd/OAuth2) - An OAuth2 authentication server, resource server and client library.
* [PHP oAuthLib](https://github.com/Lusitanian/PHPoAuthLib) - Another OAuth library.
* [Annotations](https://github.com/doctrine/annotations) - An annotations library (part of Doctrine).
* [Cache](https://github.com/doctrine/cache) - A caching library (part of Doctrine).
* [Stash](https://github.com/tedivm/Stash) - Another library for caching.
* [Filterus](https://github.com/ircmaxell/filterus) - A simple PHP filtering library.
* [PHP Collections](https://github.com/schmittjoh/php-collection) - A simple collections library.
* [PHP Domain Parser](https://github.com/jeremykendall/php-domain-parser) - A domain suffix parser library.
* [PHP File Locator](https://github.com/herrera-io/php-file-locator) - A library for locating files in large projects.
* [Elastica](https://github.com/ruflin/Elastica) - A client library for [Elastic Search](http://www.elasticsearch.org/).
* [Serializer](https://github.com/schmittjoh/serializer) - A library for serialising and de-serialising data.
* [Numbers PHP](https://github.com/powder96/numbers.php) - A library for working with numbers.
* [Patchwork UTF-8](https://github.com/nicolas-grekas/Patchwork-UTF8) - A portable library for working with UTF-8 strings.
* [Boris](https://github.com/d11wtq/boris) - A tiny PHP REPL.
* [LiteCQRS](https://github.com/beberlei/litecqrs-php) - A CQRS (Command Query Responsibility Separation) library.
* [NameSpacer](https://github.com/ralphschindler/Namespacer) - A library to convert from underscores to namespaces.
* [Purl](https://github.com/jwage/purl) - A URL manipulation library.
* [S3 Stream Wrapper](https://github.com/gwkunze/S3StreamWrapper) - A stream wrapper library for Amazon S3.
* [TwitterOAuth](https://github.com/ruudk/twitteroauth) - A Twitter OAuth library.
* [Damnit](https://github.com/filp/damnit) - A pretty error handling library.
* [CalendR](http://yohan.giarel.li/CalendR) - A calendar management 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.
* [Decoda](http://milesj.me/code/php/decoda) - A lightweight markup parser library.
* [PHP Markdown](https://github.com/michelf/php-markdown) - A markdown parser library.
* [Dflydev Markdown](https://github.com/dflydev/dflydev-markdown) - Another markdown parser library.
* [ANSI to HTML5](https://github.com/sensiolabs/ansi-to-html) - An ANSI to HTML5 convertor library.
# Official APIs
* [Amazon Web Service SDK](https://github.com/aws/aws-sdk-php) - The official PHP AWS SDK library.
* [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.
# Utilities
* [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 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.
* [PHP CS Fixer](https://github.com/fabpot/PHP-CS-Fixer) - A coding standard fixer library.
* [PHP Parser](https://github.com/nikic/PHP-Parser) - A PHP parser written in PHP.
* [PHP Manipulator](https://github.com/schmittjoh/php-manipulator) - A library for analysing and modifying PHP Source Code.
* [PHP Analyser](https://github.com/scrutinizer-ci/php-analyzer) - A library for analysing PHP code to find bugs and errors.
* [Zend Optimizer Plus](https://github.com/zend-dev/ZendOptimizerPlus) - A Zend engine opcode cacher and optimiser.
* [PHP Queue](https://github.com/CoderKungfu/php-queue) - An application for managing queueing backends.
* [PHPPHP](https://github.com/ircmaxell/PHPPHP) - A PHP VM implementation in PHP.
* [PHPSandbox](https://github.com/fieryprophet/php-sandbox) - A PHP sandbox environment.
* [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.
* [DBV](http://dbv.vizuina.com/) - A database version control application.
* [Country List](https://github.com/umpirsky/country-list) - A list of all countries with names and ISO 3166-1 codes.
# Resources
* [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 Standards Working Group](https://groups.google.com/group/php-standards) - The PHP standards working 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.
* [Scaling PHP Applications](http://www.scalingphpbook.com) - A paid 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.
* [Semantic Versioning](http://semver.org/) - A website explaining semantic versioning.
# Reading
* [OWASP PHP Security Cheat Sheet](https://www.owasp.org/index.php/PHP_Security_Cheat_Sheet) - A PHP security cheatsheet.
* [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.
* [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.
* [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.
* [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 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://derickrethans.nl/collecting-garbage-phps-take-on-variables.html) [2](http://derickrethans.nl/collecting-garbage-cleaning-up.html) [3](http://derickrethans.nl/collecting-garbage-performance-considerations.html) - A series about the PHP garbage collection internals.
* [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.
* [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.
* [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.
* [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.