Pop PHP Framework
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
| Pop PHP Framework | |
|---|---|
| Developer | Nick Sagona |
| Release | March 19, 2012 |
| Stable release | 7.0.0[1]
/ August 17, 2026 |
| Written in | PHP |
| Operating system | Cross-platform |
| Type | Web framework |
| License | BSD License |
| Website | popphp |
| Repository | Pop PHP Repository |
The Pop PHP Framework is a free and open source PHP Web framework that was created by Nick Sagona. It is distributed under the BSD License and hosted on GitHub. The framework is intended to be utilized for rapid application development, supporting both web and console applications.
History
[edit]Development on the Pop PHP Framework officially began in late 2011, when a set of older library components was refactored into the first version of Pop PHP, which was released on March 19, 2012. The focus was for Pop PHP to become a more modern framework with a set of supporting components to assist in building web and console applications. The older library components that it was derived from originally began life in 2009.
Over the span of that time, Pop has evolved to keep up with the times, taking advantage of new features available in PHP. The current version, Pop PHP 7 is another major refactor and modernization of the framework, adding a large number of new features and upgrades and focusing on the new features available in PHP 8.4+. Version 7.0.0 was released on August 17, 2026.
The framework has been included on a number of "best of" lists for new and up-and-coming PHP Frameworks.[2][3][4][5][6][7][8]
Release history
[edit]Version 7.0.0 is the current version that is in active development. Versions 5.5.0 and earlier have reached end of life and are no longer supported. A current changelog is maintained for a recent list of changes and how they impact continued development with Pop PHP.[9]
| Version | Release date | Notes |
|---|---|---|
| 7.0.0 | August 17, 2026 | Current production version |
| 6.0.0 | November 3, 2025 | |
| 5.5.0 | February 12, 2025 | EOL |
| 5.4.0 | September 10, 2024 | |
| 5.3.0 | April 1, 2024 | |
| 5.2.0 | March 4, 2024 | |
| 5.1.0 | December 12, 2023 | |
| 5.0.0 | November 8, 2023 | |
| 4.8.0 | September 3, 2023 | EOL |
| 4.7.0 | November 16, 2022 | |
| 4.6.0 | February 12, 2021 | |
| 4.5.0 | May 28, 2020 | |
| 4.1.0 | October 17, 2019 | |
| 4.0.3 | April 9, 2019 | |
| 4.0.2 | March 12, 2019 | |
| 4.0.1 | February 9, 2019 | |
| 3.8.9 | February 24, 2020 | EOL |
| 3.8.0 | August 25, 2018 | Final Release |
| 3.7.0 | June 28, 2018 | |
| 3.6.5 | May 15, 2018 | |
| 3.6.0 | August 31, 2017 | |
| 3.5.0 | February 27, 2017 | |
| 3.0.0 | July 9, 2016 | |
| 2.1.0 | August 31, 2017 | EOL |
| 2.1.0 | July 8, 2016 | Final Release |
| 2.0.0 | July 12, 2015 | |
| 1.7.0 | March 6, 2016 | EOL |
| 1.7.0 | December 1, 2013 | Final Release |
| 1.0.0 | March 19, 2012 |
Source: GitHub[10]
Development
[edit]While the initial development of the Pop PHP Framework was focused on building web applications, since version 3, Pop PHP fully supports console-based applications to be used on the CLI as well. Pop PHP incorporates current standards, trends and patterns in software development in an attempt to build an ecosystem that is familiar to developers. The framework is heavily unit-tested using PHPUnit, uses PHPStan for static analysis and runs through the GitHub Actions workflow platform to ensure the builds of the individual framework components are passing.[11]
Pop PHP 7.0.0 is currently written for and supports PHP 8.4+.
The Pop PHP Framework project welcomes community involvement and contribution via the current available channels.[12]
Features
[edit]The base foundation of Pop PHP is the initial set of core components that make up the application stack:
- The Application Object
- The Router (HTTP and CLI route matching)
- The Service Locator (PSR-11 container)
- The Event Manager (PSR-14 event dispatcher)
- The Middleware Manager (PSR-15 middleware and request handlers)
- The Module Manager
- The Dispatchable Core (controllers, HTTP and console dispatch, maintenance mode)
Additionally, there are a number of other components that are available for use in building an application.[13] Some of the commonly used components and what they include are:
- Database Abstraction (popphp/pop-db)
- Database adapters (MySQL, PostgreSQL, SQLite, SQL Server and PDO)
- Active record, including encoded and authentication-aware records
- Table relationships and eager loading
- Query builder and schema builder
- Migrations and seeding
- Transactions and a query profiler
- HTTP Abstraction (popphp/pop-http)
- HTTP client & server classes
- PSR-7 messages, PSR-17 factories and a PSR-18 client
- Client handlers (cURL, cURL multi and stream) and client middleware
- Promises
- Headers & Auth
- Request & response handlers
- File uploads
- Command Line Interface (popphp/pop-console, popphp/pop-kettle)
- Command routing, prompts, tables, progress bars and colored output
- The
kettleconsole application for scaffolding, migrations, a
- HTML Form Generation (popphp/pop-form)
- Simple form configuration & rendering
- HTML form validation
- PDF Generation (popphp/pop-pdf)
- PDF creation & editing
- Job Queue (popphp/pop-queue)
- Job queue management & scheduler
- Queue adapters (database, Redis, Amazon SQS, file and memory)
- Mail (popphp/pop-mail)
- Support for popular mail APIs (Google, Microsoft 365, Mailgun, SendGrid an
- SMTP support
- Mail queues
- IMAP/POP client
- Storage (popphp/pop-storage)
- Support for popular cloud-based storage APIs (Amazon S3 and Azure) as well as local storage
- Cryptography (popphp/pop-crypt)
- Password hashing (bcrypt and Argon2)
- Encryption and signature verification
- Authentication & Access Control (popphp/pop-auth, popphp/pop-acl)
- File- and JWT-based authentication
- Role- and resource-based access control with assertions and policies
- Auditing (popphp/pop-audit)
- Caching (popphp/pop-cache) — PSR-6 and PSR-16 compatible
- Debugging (popphp/pop-debug)
- Logging (popphp/pop-log) — PSR-3 compatible
- Image Manipulation (popphp/pop-image)
- Views (popphp/pop-view)
- Sessions (popphp/pop-session)
- Cookies (popphp/pop-cookie)
- Utilities (popphp/pop-utils) — collections, string, array and number
Kettle
[edit]Kettle is a CLI-based companion script available since version 4.0.1. It allows the user to quickly scaffold application files and folders together as well as manage databases, migrations, queues and more.[14]
References
[edit]- ↑ "popphp/popphp-framework: Release v7.0.0". github.com.
- ↑ "Guide to 24 PHP Frameworks". anastasionico.uk. Nico Anastasio.
- ↑ "List of Top 10 Best PHP Frameworks". catswhocode.com. Cats Who Code.
- ↑ "List of Top 10 Best PHP Frameworks". themangomedia.com. Mango Media.
- ↑ "List of 15 New Best Frameworks". codegeekz.com. Code Geekz. 17 February 2014.
- ↑ "Best MVC PHP Frameworks for Developers". bestjquery.com. Best jQuery.
- ↑ "Best PHP Frameworks". firebearstudio.com. Firebear Studios. 20 January 2015.
- ↑ "Best PHP Frameworks". indefiniteloop.com. Indefinite Loop.
- ↑ "Github: Pop PHP Framework Changelog". github.com.
- ↑ "Github: Pop PHP Framework Releases". github.com.
- ↑ "GitHub Actions". github.com/features/actions.
- ↑ "Pop PHP Development". popphp.org.
- ↑ "Pop PHP Components". github.com.
- ↑ "Kettle on GitHub". github.com.