PHP code example of precision-soft / symfony-console
1. Go to this page and download the library: Download precision-soft/symfony-console 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/ */
precision-soft / symfony-console example snippets
use PrecisionSoft\Symfony\Console\Command\AbstractCommand;
use PrecisionSoft\Symfony\Console\Command\Trait\MemoryLimitTrait;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
class MyCommand extends AbstractCommand
{
use MemoryLimitTrait;
protected function configure(): void
{
$this->configureMemoryLimit('512M');
}
protected function initialize(InputInterface $input, OutputInterface $output): void
{
parent::initialize($input, $output);
$this->initializeMemoryLimit();
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
foreach ($this->getItems() as $item) {
$this->processItem($item);
if (true === $this->getMemoryLimitReached()) {
break;
}
}
return self::SUCCESS;
}
}
use PrecisionSoft\Symfony\Console\Command\AbstractCommand;
use PrecisionSoft\Symfony\Console\Command\Trait\TimeLimitTrait;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
class MyCommand extends AbstractCommand
{
use TimeLimitTrait;
protected function configure(): void
{
$this->configureTimeLimit(600);
}
protected function initialize(InputInterface $input, OutputInterface $output): void
{
parent::initialize($input, $output);
$this->initializeTimeLimit();
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
foreach ($this->getItems() as $item) {
$this->processItem($item);
if (true === $this->getTimeLimitReached()) {
break;
}
}
return self::SUCCESS;
}
}
use PrecisionSoft\Symfony\Console\Command\AbstractCommand;
use PrecisionSoft\Symfony\Console\Command\Trait\MemoryAndTimeLimitsTrait;
use PrecisionSoft\Symfony\Console\Exception\LimitExceededException;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
class MyCommand extends AbstractCommand
{
use MemoryAndTimeLimitsTrait;
protected function configure(): void
{
$this->configureMemoryAndTimeLimits('512M', 600);
}
protected function initialize(InputInterface $input, OutputInterface $output): void
{
parent::initialize($input, $output);
$this->initializeMemoryAndTimeLimits();
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
try {
foreach ($this->getItems() as $item) {
$this->stopScriptIfLimitsReached();
$this->processItem($item);
}
} catch (LimitExceededException $limitExceededException) {
$this->warning($limitExceededException->getMessage());
}
return self::SUCCESS;
}
}
use PrecisionSoft\Symfony\Console\Command\AbstractCommand;
use PrecisionSoft\Symfony\Console\Command\Trait\InstancesTrait;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
class MyCommand extends AbstractCommand
{
use InstancesTrait;
protected function configure(): void
{
$this->configureInstances();
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
[$maxInstances, $instanceIndex] = $this->computeInstances();
$this->writeln($this->formatMessageWithInstances('processing'));
return self::SUCCESS;
}
}