Following the launch of PHP-Prefixer, we’re excited to share the first tutorial “Getting Started”!
If you develop PHP projects with Composer, you’ll feel at home with this new guide. It walks you through the fundamentals of Composer project development by creating a simple project step-by-step. After completing the tutorial, you’ll prefix the “Getting Started” project to create the prefixed project’s codebase.
The sample project calls the Monolog library to log a warning message in a log file:
$log = new \Monolog\Logger('name');
$log->pushHandler(new \Monolog\Handler\StreamHandler('app.log', \Monolog\Logger::WARNING));
$log->addWarning('Foo');
After the PHP-Prefixer service does its magic, the source code and all the associated files are prefixed in this way:
$log = new \PPP\Monolog\Logger('name');
$log->pushHandler(new \PPP\Monolog\Handler\StreamHandler('app.log', \PPP\Monolog\Logger::WARNING));
$log->addWarning('Foo');
Find the source code of the project in this repository: https://github.com/PHP-Prefixer/Getting-Started
Find the result of the prefixing process of the project in this repository: https://github.com/PHP-Prefixer/Getting-Started_prefixed
What We’ll Build
The “Getting Started” project includes the configuration of the prefixer to process the project files and the Monolog library.
Highlights:
- The original code of a project,
- The
composer.json
configuration to apply the prefix PPP with the PHP-Prefixer processing service, - The produced source code where the
PPP
has been processed.
Simple and Stable
In January 2019, when we started to prefix our PHP code, we faced many roadblocks, but it was worth the effort because; our code worked. Our idea had turned into reality!
After almost two years of development, we have created a rule-based expert system and service for simplifying the continuous operation of the PHP prefixer engine.
For example, in the “Getting Started” guide, the same test code demonstrates how the sample routine works fine. Additionally, the prefixed Monolog library is tested with the original test cases to confirm that it meets the original requirements.
~/vendor_prefixed/monolog/monolog$ phpunit
PHPUnit 5.7.27 by Sebastian Bergmann and contributors.
................................................................. 65 / 97 ( 67%)
................................ 97 / 97 (100%)
Time: 116 ms, Memory: 6.00MB
Bottom line: If you’re looking for a practical, hands-on tutorial to prefix PHP source code, look no further.
Try the Tutorial
Do you want to learn PHP-Prefixer? Follow the tutorial here and build your first prefixed project!
Photo by Luca Bravo on Unsplash