You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
xshop/app/Console/Commands/SeedingPrepare.php

66 lines
2.0 KiB
PHP

<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Storage;
class SeedingPrepare extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'seeding:prepare';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Download and unpack zip file for seeding.';
/**
* Execute the console command.
*/
public function handle()
{
// URL of the zip file
$zipUrl = 'https://github.com/A1Gard/xshop-installer-assets/raw/master/seeder-image.zip';
$localZipPath =__DIR__.'/../../../database/seeders/images/seeder-image.zip'; // Path where the zip will be saved
$extractPath = __DIR__.'/../../../database/seeders/images'; // Directory where the zip will be extracted
// Downloading the ZIP file
$this->info('Downloading ZIP file...');
$zipContent = file_get_contents($zipUrl);
file_put_contents($localZipPath, $zipContent);
// Check if the ZIP file was successfully downloaded
if (!file_exists($localZipPath)) {
$this->error('Failed to download the ZIP file.');
return;
}
// Unzipping the file
$this->info('Unzipping the file...');
$zip = new \ZipArchive();
if ($zip->open($localZipPath) === TRUE) {
// Create the extraction directory if it doesn't exist
if (!file_exists($extractPath)) {
mkdir($extractPath, 0777, true);
}
// Extract the ZIP file to the specified directory
$zip->extractTo($extractPath);
$zip->close();
$this->info('File unzipped successfully.');
} else {
$this->error('Failed to unzip the file.');
}
// Optionally, delete the zip file after extraction
unlink($localZipPath);
}
}