DevFlag (aka Feature Flag) enabling your Application Development to follow the CI/CD best practices.
- PHP 8.0+
- Laravel 9.x & 10.x
composer require shipsaas/dev-flag
Then hit this to get the devflag.php
to your codebase:
php artisan vendor:publish --tag=devflag
IRL projects, it is inevitable for PRs that contains a lot of changes (thousands of lines, 50+ files).
For those PRs, even you have 10 people to review, they still won't cover everything 100%. Simply because it is too much.
Everybody loves small PRs and that is the undeniable fact. But how can we achieve it?
Welcome to DevFlag!
DevFlag will help you to achieve that. Not only the tool, but also require a bit of your critical thinking.
Before starting development, you need to ensure:
- The scope, the changes that you will do (aka Technical Breakdown)
- This is the most important phase, you need to finalize the:
- Schema changes: avoid updating too much
- Code
- This is the most important phase, you need to finalize the:
- Create a DevFlag
- Start the development
Further reading for the PROs:
Open the app/devflag.php
, prepare your application's environments. Add your flag into all envs:
return [
'local' => [
'useNewFeature' => true,
],
'testing' => [
'useNewFeature' => true,
],
'staging' => [
'useNewFeature' => false,
],
'production' => [
'useNewFeature' => false,
],
];
Func-way:
function transfer(): ?Transaction
{
$useNewFeature = useDevFlag('useNewFeature');
if (!$useNewFeature) {
return null;
}
// doing awesome things
return $transaction;
}
OOP/DI-way:
use ShipSaaS\DevFlag\Contracts\DevFlagInterface;
public function __construct(private DevFlagInterface $devFlag) {}
public function transfer(): mixed
{
if (!$this->devFlag->can('useNewFeature')) {
return null;
}
// handle new things
}
Check out WIKI: https://github.com/shipsaas/dev-flag/wiki
- Follow PSR-1 & PSR-12 coding conventions
- TDD is a must
Feel free to open a PR 😉
- @sethsandaru
MIT License