38 KiB
Awesome PHP
A curated list of amazingly awesome PHP libraries, resources and shiny things.
- Awesome PHP
- Package Management
- Package Management Related
- Frameworks
- Framework Components
- Micro Frameworks
- Templating
- HTTP
- URL
- Files
- Streams
- Dependency Injection
- Imagery
- Testing
- Documentation
- Security
- Code Analysis
- Build Tools
- Asset Management
- Geolocation
- Date and Time
- Event
- Logging
- E-commerce
- ORM and Datamapping
- NoSQL
- Queue
- Search
- Command Line
- Authentication
- Markup
- Text and Numbers
- Filtering and Validation
- REST and API
- Caching
- Data Structure and Storage
- Notifications
- Third Party APIs
- Miscellaneous
- Development Software
- Web Tools
- Resources
- Suggestions
Package Management
Libraries for package and dependency management.
- Composer/Packagist - A package and dependency manager.
- Composer Installers - A multi framework Composer library installer.
Package Management Related
Libraries related to package management.
- Satis - A static Composer repository generator.
- Composition - A library to check your Composer environment at runtime.
- Poser - A Composer class aliasing library.
- Version - A parsing and comparison library for semantic versioning.
- NameSpacer - A library to convert from underscores to namespaces.
- Patch Installer - A library to install patches using Composer.
Frameworks
Popular PHP frameworks.
- Symfony2 - A framework comprised of individual components.
- Knp RAD Bundle - A Rapid Application Development (RAD) bundle for Symfony 2.
- Zend Framework 2 - Another framework comprised of individual components.
- Laravel 4 - A simple PHP framework.
- Lithium - Another framework of components.
- Aura PHP - A framework of independent components.
- Phalcon - A framework implemented as a C extension.
Framework Components
PHP framework components.
- Symfony2 Components - The components that make Symfony2.
- Zend Framework 2 Components - The components that make ZF2.
- Aura Components - A package of PHP 5.4 components.
Micro Frameworks
Micro frameworks and routers.
- Silex - A micro framework built around Symfony2 components.
- Silex Skeleton - A skeleton for Silex.
- Silex Web Profiler - A web debug toolbar for Silex.
- Stack - A library of stackable middleware for Silex/Symfony.
- Slim - Another simple micro framework.
- Slim Skeleton - A skeleton for Slim.
- Slim View - A collection of custom views for Slim.
- Slim Middleware - A collection of custom middleware for Slim.
- Bullet PHP - A mico framework for building REST APIs.
- Klein - A fast routing library.
Templating
Libraries and tools for templating and lexing.
- Twig - A comprehensive templating language.
- Twig Cache Extension - A template fragment cache library for Twig.
- Mustache - A PHP implementation of the Mustache template language.
- Phly Mustache - Another PHP implementation of the Mustache template language.
- MtHaml - A PHP implementation of the HAML template language.
- Plates - A native PHP templating library.
- Lex - A lightweight template parser.
- Sculpin - A library that converts Markdown and Twig into static HTML.
HTTP
Libraries for working with HTTP and scraping websites.
- Guzzle - A HTTP client.
- Buzz - Another HTTP client.
- Requests - A simple HTTP library.
- Goutte - A simple web scraper.
- PHP VCR - A library for recording and replaying HTTP requests.
URL
Libraries for parsing URLs.
- Purl - A URL manipulation library.
- PHP Domain Parser - A domain suffix parser library.
Libraries for sending and parsing email.
- SwiftMailer - A mailer solution.
- PHPMailer - Another mailer solution.
- Fetch - An IMAP library.
- Email Reply Parser - An email reply parser library.
- Stampie - A library for email services such as SendGrid, PostMark and MailGun.
Files
Libraries for file manipulation and MIME type detection.
- Gaufrette - A filesystem abstraction layer.
- Canal - A library to determine internet media types.
- Apache MIME Types - A library that parses Apache MIME types.
- Ferret - A MIME detection library.
- Hoa Mime - Another MIME detection library.
- Lurker - A resource tracking library.
- PHP File Locator - A library for locating files in large projects.
- PHP FFmpeg - A wrapper for the FFmpeg video library.
Streams
Libraries for working with streams.
- Streamer - A simple object-orientated stream wrapper library.
Dependency Injection
Libraries that implement the dependency injection design pattern.
- Pimple - A tiny dependency injection container.
- Auryn - Another dependency injection container.
- Orno Di - Another flexible dependency injection container.
- PHP DI - A dependency injection implementation using annotations.
- Acclimate - A common interface to dependency injection containers and service locators.
Imagery
Libraries for manipulating images.
- Imagine - An image manipulation library.
- PHP Image Workshop - Another image manipulation library.
- Intervention Image - Another image manipulation library.
- GIF Frame Extractor - A library to extract GIF animation frame information.
- GIF Creator - A library to create GIF animations from multiple images.
- Image With Text - A library for embedding text into images.
- Color Extractor - A library for extracting colours from images.
Testing
Libraries for testing codebases and generating test data.
- PHPUnit - A unit testing framework.
- ParaTest - A parallel testing library for PHPUnit.
- PHPSpec - A design by specification unit testing library.
- Codeception - A full stack testing framework.
- Atoum - A simple testing library.
- Mockery - A mock object library for testing.
- Phake - Another mock object library for testing.
- Parody - Yet another mock object library for testing.
- Sismo - A continuous testing server library.
- Faker - A fake data generator library.
- Samsui - Another fake data generator library.
- Alice - An expressive fixture generation library.
- Behat - A behaviour driven development (BDD) testing framework.
- Pho - Another behaviour driven development testing framework.
- Mink - Web acceptance testing.
- HTTP Mock - A library for mocking HTTP requests in unit tests.
- VFS Stream - A virtual filesystem stream wrapper for testing.
- Locust - A modern load test library written in Python.
- Travis CI - A continuous integration platform.
Documentation
Libraries for generating project documentation.
- Sami - An API documentation generator.
- PHP Documentor 2 - Another documentation generator.
Security
Libraries for generating secure random numbers, encrypting data and scanning for vulnerabilities.
- HTML Purifier - A standards compliant HTML filter.
- RandomLib - A library for generating random numbers and strings.
- True Random - A library that generates random numbers using www.random.org.
- SecurityMultiTool - A PHP security library.
- Password Compat - A compatibility library for the new PHP 5.5 password functions.
- PHPAss - A portable password hashing framework.
- PHP Password Lib - A library for generating and validating passwords.
- Password Policy - A password policy library for PHP and JavaScript.
- PHPSecLib - A pure PHP secure communications library.
- TCrypto - A simple encrypted key-value storage library.
- PHP IDS - A structured PHP security layer.
- PHP SSH - An experimental object orientated SSH wrapper library.
- IniScan - A tool that scans PHP INI files for security.
- SensioLabs Security Check - A web tool to check your Composer dependecies for security advisories.
- Scrutinizer - A web tool to scrutinise PHP code.
- Zed - An integrated penetration testing tool for web applications.
Code Analysis
Libraries and tools for analysing, parsing and manipulation codebases.
- PHP Parser - A PHP parser written in PHP.
- PHPPHP - A PHP VM implementation in PHP.
- PHPSandbox - A PHP sandbox environment.
- Dissect - A set of tools for lexical and syntactical analysis.
- PHP Mess Detector - A library that scans code for bugs, sub-optimal code, unused parameters and more.
- PHP Code Sniffer - A library that detects PHP, CSS and JS coding standard violations.
- PHPCPD - A library that detects copied and pasted code.
- PHP Analyser - A library for analysing PHP code to find bugs and errors.
- PHP CS Fixer - A coding standard fixer library.
- PHP Manipulator - A library for analysing and modifying PHP Source Code.
- PHP Refactoring Browser - A command line utility for refactoring PHP code.
- UBench - A simple micro benchmark library.
- Athletic - An annotation based benchmark framework.
- Mondrian - A code analysis tool using Graph Theory.
- PHP Debug Bar - A debugging toolbar.
- PHP Console - A web debugging console.
- PHPDBG - An interactive PHP debugger.
Build Tools
Project build and automation tools.
- Go - A simple PHP build tool.
- Bob - A simple project automation tool.
- Phake - A rake PHP clone library.
- Box - A utility to build PHAR files.
Asset Management
Tools for managing, compressing and minifying website assets.
- Assetic - An asset manager pipeline library.
- Pipe - Another asset manager pipeline library.
- Munee - An asset optimiser library.
- JShrink - A JavaScript minifier library.
Geolocation
Libraries for geocoding addresses and working with latitudes and longitudes.
- GeoCoder - A geocoding library.
- GeoTools - A library of geo-related tools.
- PHPGeo - A simple geo library.
- GeoJSON - A GeoJSON implementation.
Date and Time
Libraries for working with dates and times.
- Carbon - A simple DateTime API extension.
- ExpressiveDate - Another DateTime API extension.
- CalendR - A calendar management library.
Event
Libraries that are event-driven or implement non-blocking event loops.
- React - An event driven non-blocking I/O library.
- Rx.PHP - A reactive extension library.
- Ratchet - A web socket library.
- Hoa WebSocket - Another web socket library.
- Hoa EventSource - An event source library.
- Evenement - An event dispatcher library.
- FuelPHP Event - Another event dispatcher library.
Logging
Libraries for generating and working with log files.
- Monolog - A comprehensive logger.
E-commerce
Libraries and applications for taking payments and building online e-commerce stores.
- OmniPay - A framework agnostic multi-gateway payment processing library.
- Payum - A payment abstraction library.
- Sylius - An open source e-commerce solution.
- Thelia - Another open source e-commerce solution.
- Money - A PHP implementation of Fowler's money pattern.
Libraries and software for working with PDF files.
- Snappy - A PDF and image generation library.
- WKHTMLToPDF - A tool to convert HTML to PDF.
ORM and Datamapping
Libraries that implement object-relational mapping or datamapping techniques.
- Doctrine - A comprehensive DBAL and ORM.
- Doctrine Migrations - A migration library for Doctrine.
- Doctrine Extensions - A collection of Doctrine behavioural extensions.
- Propel - A fast ORM.
- Eloquent - The Laravel 4 ORM.
- Baum - A nested set implementation for Eloquent.
- Spot - A MySQL datamapper ORM.
- PHP ActiveRecord - A PHP Active Record implementation.
- Paris and Idiorm - A minimalist database library.
- Pomm - An Object Model Manager for PostgreSQL.
- Migrations - A migration management library.
- PHPMig - Another migration management library.
- Phinx - Another database migration library.
- Entities - A Doctrine ORM service provider for Silex.
NoSQL
Libraries for working with "NoSQL" backends.
- MongoQB - A MongoDB query builder library.
- Monga - A MongoDB abstraction library.
- Predis - A feature complete Redis library.
Queue
Libraries for working with event and task queues.
- Pheanstalk - A Beanstalkd client library.
- PHP AMPQ - An AMPQ library.
- Thumper - A RabbitMQ pattern library.
- Bernard - A multibackend abstraction library.
Search
Libraries and software for indexing and performing search queries on data.
- ElasticSearch PHP - The official client library for ElasticSearch.
- Elastica - A client library for ElasticSearch.
- Solarium - A client library for Solar.
Command Line
Libraries for building command line utilities.
- Boris - A tiny PHP REPL.
- PsySh - Another PHP REPL.
- GetOpt - A command line opt parser.
- OptParse - Another command line opt parser.
- Commando - Another simple command line opt parser.
- GetOptionKit - Another command line opt parser.
- Cron Expression - A library to calculate cron run dates.
- ShellWrap - A simple command line wrapper library.
- Hoa Console - Another command line library.
- Shunt - A library for running commands in parallel on multiple remote machines.
Authentication
Libraries for implementing authentications schemes.
- Sentry - A framework agnostic authentication & authorisation library.
- Sentry Social - A library for social network authentication.
- OPAuth - A multi-provider authentication framework.
- OAuth2 - An OAuth2 authentication server, resource server and client library.
- PHP oAuthLib - Another OAuth library.
- TwitterOAuth - A Twitter OAuth library.
- Hawk - A Hawk HTTP authentication library.
Markup
Libraries for working with markup.
- Decoda - A lightweight markup parser library.
- PHP Markdown - A Markdown parser.
- Dflydev Markdown - Another Markdown parser.
- Parsedown - Another Markdown parser.
- Ciconia - Another Markdown parser that supports Github flavoured Markdown.
- HTML5 PHP - An HTML5 parser and serializer library.
Text and Numbers
Libraries for parsing and manipulating text and numbers.
- ANSI to HTML5 - An ANSI to HTML5 convertor library.
- Patchwork UTF-8 - A portable library for working with UTF-8 strings.
- Hoa String - Another UTF-8 string library.
- Numbers PHP - A library for working with numbers.
- Math - A library for working with large numbers.
- Color Jizz - A library for manipulating and converting colours.
- UUID - A library for generating UUIDs.
- Slugify - A library to convert strings to slugs.
- Urlify - A PHP port of Django's URLify.js.
- Text - A text manipulation library.
- PHP Units of Measure - A library for converting between units of measure.
- SQL Formatter - A library for formatting SQL statements.
Filtering and Validation
Libraries for filtering and validating data.
- Filterus - A simple PHP filtering library.
- Respect Validate - A simple validation library.
- Valitron - Another validation library.
- Upload - A library for handling file uploads and validation.
- DMS Filter - An annotation filtering library.
REST and API
Libraries and web tools for developing REST-ful APIs.
- Apigility - An API builder built with Zend Framework 2.
- Hateoas - A HATEOAS REST web service library.
- HAL - A Hypertext Application Language (HAL) builder library.
- Negotiation - A content negotiation library.
Caching
Libraries for caching data.
Data Structure and Storage
Libraries that implement data structure or storage techniques.
- Ardent - A library of data structures.
- PHP Collections - A simple collections library.
- Serializer - A library for serialising and de-serialising data.
- PHP Object Storage - A library for object storage.
Notifications
Libraries for working with notification software.
- Nod - A notification library (e.g. Growl).
- Notificato - A library for handling push notifications.
- Notification Pusher - A standalone library for device push notifications.
- Notificator - A lightweight notification library.
Third Party APIs
Libraries for accessing third party APIs.
- Amazon Web Service SDK - The official PHP AWS SDK library.
- S3 Stream Wrapper - A stream wrapper library for Amazon S3.
- Stripe - The official Stripe PHP library.
- Campaign Monitor - The official Campaign Monitor PHP library.
- Digital Ocean - A library to interface with the Digital Ocean API.
- Github - A library to interface with the Github API.
Miscellaneous
Useful libraries or tools that don't fit in the categories above.
- Spork - A process forking library.
- JSON Lint - A JSON lint utility.
- JSONPCallbackValidator - A library for validating JSONP callbacks.
- KnpMenu - A menu library.
- Pagerfanta - A pagination library.
- Ruler - A simple stateless production rules engine.
- LiteCQRS - A CQRS (Command Query Responsibility Separation) library.
- Sslurp - A library that makes dealing with SSL suck less.
- PHP Option An option type library.
- Metrics - A simple metrics API library.
- Sabre VObject - A library for parsing VCard and iCalendar objects.
- Annotations - An annotations library (part of Doctrine).
- Whoops - A pretty error handling library.
- Finite - A simple PHP finite state machine.
- LadyBug - A dumper library.
- Plum - A deployer library.
- Procrastinator - A library for running time consuming tasks.
- Compose - A function composition library.
- SuperClosure - A library that allows Closures to be serialized.
- Jumper - A remote service executor library.
- Underscore - A PHP port of the Underscore JS library.
- PHP PassBook - A PHP library for iOS PassBook.
- PHP Expression - A PHP expression language.
- RMT - A library for versioning and releasing software.
- Wise - A configuration manager.
- Opengraph - An opengraph library.
- Essence - A library for extracting web media.
- Embera - An Oembed consumer library.
- Graphviz - A Graphviz library.
- Monad PHP - A simple Monad library.
- Flux - A regular expression building library.
- Patchwork - A library for redefining userland functions.
- Galapagos - Evolutionary language transformation.
- Design Patterns PHP - A repository of software patterns implemented in PHP.
- PHPCR - A PHP port of the Java Content Repository (JCR).
- Functional PHP - A functional programming library.
- ClassPreloader - A library for optimising autoloading.
- Lib Country - A library for country and subdivision data.
- Lib Accessor - A library for simplifying accessors.
- PHPStack - A TCP/IP stack proof of concept written in PHP.
- Nmap - A PHP wrapper around Nmap.
- Country List - A list of all countries with names and ISO 3166-1 codes.
Development Software
Software for creating a development environment.
- HomeBrew - A package manager for OSX.
- HomeBrew PHP - A PHP tap for HomeBrew.
- PHP OSX - A PHP installer for OSX.
- HipHop PHP - A Virtual Machine, Runtime and JIT for PHP by Facebook.
- Vagrant - A portable development environment utility.
- Ansible - A radically simple orchestration framework.
- Puppet - A server automation framework and application.
- Chef - A systems integration framework.
- SaltStack - An infrastructure management tool.
- PuPHPet - A web tool for building PHP development virtual machines.
- PHP Brew - A PHP version manager and installer.
- PHP Env - Another PHP version manager.
- PHP Switch - Another version manager.
- PHP Build - Another PHP version installer.
- CodeKit - A general web development tool.
- HTTPie - A command line alternative to cURL written in Python.
- Backup - A server backup tool written in Ruby.
Web Tools
Web-based tools.
- 3V4L - An online PHP shell.
- DBV - A database version control application.
- 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 - A PHP best practice quick reference guide.
- PHP Best Practices - A PHP best practice guide.
- PHP Weekly - A weekly PHP newsletter.
- PHP Security - A guide to PHP security.
- PHP Internals - A book about the PHP internals.
- PHP FIG - The PHP Framework Interoperability Group.
- The Open Web Application Security Project (OWASP) - An open software security community.
- WebSec IO - A web security community resource.
- Web Advent - An advent calendar for web developers.
- Programming with Anthony - A video series by Anthony Ferrara.
E-Books
Fantastic e-books.
- Scaling PHP Applications - An ebook about scaling PHP applications by Steve Corona.
- 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 - A PHP security cheatsheet.
- C is for Cookie, H is for Hacker - An article about cookies and security.
- You Blew It Loading Your Login Form Over HTTP - An article about using HTTPS correctly with login forms.
- How HTTPS Secures Your Connection - An article explaining how TLS/SSL secures your connection.
- How to Build a Secure Remember Me Feature - An article on how to build a secure remember me feature.
- A Beginners Guide to HTTP Cache Headers - An article about HTTP cache headers.
- Semantic Versioning - A website explaining semantic versioning.
- Atlassian Git Tutorials - A series of Git tutorials.
- Hg Init - A Mercurial tutorial.
PHP Reading
PHP-releated reading materials.
- Seven Ways to Screw Up BCrypt - An article about correct BCrypt implementation.
- Preventing CSRF Attacks - An article on preventing CSRF attacks.
- Don't Worry About BREACH - An article about the BREACH hack and CSRF tokens.
- On PHP 5.3, Lamda Functions and Closures - An article about lambda functions and closures.
- Use Env - An article about using the unix environment helper.
- Composer Primer - A Composer primer.
- Composer Versioning - An article about Composer versioning.
- Composer Stability Flags - An article about Composer stability flags.
- Innocent Villagefolk or a Pillagin’ Pirate? - An article about PHP taking ideas from other language.
- Predicting Random Numbers in PHP - An article about generating random numbers.
- A 20 Point List for Preventing XSS in PHP - An article about preventing XSS.
- PHP Sucks! But I Like It! - An article about the pros and cons of PHP.
- 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? - An article about print and echo performance.
- The PHP Ternary Operator. Fast or Not? - An article ternary performance.
- Disproving the Single Quotes Myth - An article about performance of single and double quoted strings.
- You're Being Lied To - An article about internal ZVALs.
- How Long is a Piece of String - An article about string internals.
- Understanding OpCodes - An article about opcodes.
- How Foreach Works - A detailed StackOverflow answer about foreach.
- When Does Foreach Copy? - An article about the internals of foreach.
- How Big Are PHP Arrays (And Values) Really? - An article about array internals.
- PHP Evaluation Order - An article about evaluation order in PHP.
- PHP Source Code for Developers: 1 2 3 4 - A series about the PHP source code.
- Collecting Garbage: 1 2 3 - A series about the PHP garbage collection internals.
Suggestions
Please open an issue for any new suggestions or send a tweet to @jamieyork.