PHP code example of net_bazzline / php_component_command
1. Go to this page and download the library: Download net_bazzline/php_component_command library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
net_bazzline / php_component_command example snippets
class Zip extends Command
{
/**
* @param string $archiveName
* @param array $items
* @return array
* @throws RuntimeException
*/
public function __invoke($archiveName, array $items)
{
return $this->zip($archiveName, $items);
}
/**
* @param string $archiveName
* @param array $items
* @return array
* @throws RuntimeException
* @todo implement parameter validation
*/
public function zip($archiveName, array $items)
{
$command = '/usr/bin/zip -r ' . $archiveName . ' ' . implode(' ' , $items);
return $this->execute($command);
}
/**
* @param string $pathToArchive
* @param null|string $outputPath
* @return array
* @throws RuntimeException
* @todo implement parameter validation
*/
public function unzip($pathToArchive, $outputPath = null)
{
if (!is_null($outputPath)) {
$command = '/usr/bin/unzip ' . $pathToArchive . ' -d ' . $outputPath;
} else {
$command = '/usr/bin/unzip ' . $pathToArchive;
}
return $this->execute($command);
}
/**
* @param string $pathToArchive
* @return array
* @throws RuntimeException
* @todo implement parameter validation
*/
public function listContent($pathToArchive)
{
$command = '/usr/bin/unzip -l ' . $pathToArchive;
return $this->execute($command);
}
/**
* @throws InvalidSystemEnvironmentException
*/
public function validateSystemEnvironment()
{
if (!is_executable('/usr/bin/zip')) {
throw new InvalidSystemEnvironmentException(
'/usr/bin/zip is mandatory'
);
}
if (!is_executable('/usr/bin/unzip')) {
throw new InvalidSystemEnvironmentException(
'/usr/bin/unzip is mandatory'
);
}
}
}
$zip = new Zip();
$pathToZipArchive = '/tmp/my.zip';
$zip->validateSystemEnvironment();
echo 'list archive content' . PHP_EOL;
$lines = $zip->listContent($pathToZipArchive);
foreach ($lines as $line) {
echo $line . PHP_EOL;
}
echo 'unzip archive' . PHP_EOL;
$zip->unzip($pathToZipArchive, '/tmp/my_directory');
echo 'zip directory' . PHP_EOL;
//also valid call since we implemented __invoke
//$zip($pathToZipArchive, array('/tmp/my_directory'));
$zip->zip($pathToZipArchive, array('/tmp/my_directory'));
mkdir -p vendor/net_bazzline/php_component_command
cd vendor/net_bazzline/php_component_command
git clone https://github.com/bazzline/php_component_command .
composer