- Implement full suite of 'phred' CLI generators and utility commands (M9). - Refactor scaffolding logic to use external stubs in 'src/stubs'. - Add security hardening via SecureHeaders, Csrf, and CORS middleware (M10). - Implement JWT token issuance and validation service with lcobucci/jwt. - Integrate 'getphred/flagpole' for feature flag support. - Introduce abstract 'Middleware' base class for standardized PSR-15 implementation. - Add robust driver validation to OrmServiceProvider. - Fix JwtTokenService claims access and validation constraints. - Update MILESTONES.md status.
36 lines
1.1 KiB
PHP
36 lines
1.1 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
use Phred\Console\Command;
|
|
use Symfony\Component\Console\Input\InputInterface as Input;
|
|
use Symfony\Component\Console\Output\OutputInterface as Output;
|
|
|
|
return new class extends Command {
|
|
protected string $command = 'db:backup';
|
|
protected string $description = 'Backup the database.';
|
|
protected array $options = [
|
|
'--path' => [
|
|
'mode' => 'option',
|
|
'valueRequired' => true,
|
|
'description' => 'Optional path to save the backup.',
|
|
],
|
|
];
|
|
|
|
public function handle(Input $input, Output $output): int
|
|
{
|
|
$path = $input->getOption('path') ?: 'storage/db_backup_' . date('Ymd_His') . '.sql';
|
|
|
|
// This is a placeholder for actual DB backup logic.
|
|
// It depends on the ORM driver and database type.
|
|
// For now, we simulate success and create an empty file.
|
|
|
|
if (!is_dir(dirname($path))) {
|
|
@mkdir(dirname($path), 0777, true);
|
|
}
|
|
@file_put_contents($path, "-- Phred DB Backup Placeholder\n");
|
|
|
|
$output->writeln("<info>Database backup successful:</info> $path");
|
|
return 0;
|
|
}
|
|
};
|