Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions src/Console/Base/Output.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,12 @@ public function write($message, bool $newline = false)

public function writeln($message)
{
echo $message;
echo "\r\n";
if (is_array($message)){
var_dump($message);
} else {
echo $message;
echo "\r\n";
}

}
}
37 changes: 2 additions & 35 deletions src/Main/Application.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

namespace Stub\Framework\Main;

use Stub\Framework\Console\Base\Input;
use Stub\Framework\Console\Base\Output;
use Stub\Framework\Contracts\Main\Application as BaseApplicationContract;

/**
Expand All @@ -17,7 +15,7 @@ class Application implements BaseApplicationContract
*
* @var string
*/
const VERSION = '0.0.7';
const VERSION = '0.0.8';

/**
* Массив конфигурационных параметров заглушки
Expand All @@ -39,32 +37,17 @@ class Application implements BaseApplicationContract
*/
protected $namespace;

/**
* Поток ввода.
*
* @var Input
*/
private static $input;

/**
* Поток вывода.
*
* @var Output
*/
private static $output;

/**
* Конструктор экземпляра класса приложения
* @param $basePath
*/
public function __construct($basePath)
{
// self::$input = Input::getInstance();
// self::$output = Output::getInstance();
$this->params = include_once('./../config/config.php');
if ($basePath) {
$this->basePath = rtrim($basePath, '\/');
}
$this->params = include_once($this->basePath.'\config\config.php');
}

/**
Expand All @@ -81,22 +64,6 @@ public function version(): string
return $formattedVersionString;
}

/**
* @return Input|null
*/
public static function getInput(): Input
{
return self::$input;
}

/**
* @return Output
*/
public static function getOutput(): Output
{
return self::$output;
}

public function terminate(): string
{
return "Работа приложения завершается!";
Expand Down
54 changes: 44 additions & 10 deletions src/Main/Console/Kernel.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,11 @@
namespace Stub\Framework\Main\Console;

use DateTime;
use Stub\Framework\Contracts\Console\Input;
use Stub\Framework\Contracts\Console\Output;
use Stub\Framework\Console\Base\Command;
use Stub\Framework\Console\Base\Input;
use Stub\Framework\Console\Base\Output;
use Stub\Framework\Contracts\Console\Input as InputContract;
use Stub\Framework\Contracts\Console\Output as OutputContract;
use Stub\Framework\Contracts\Main\Application;
use Throwable;

Expand All @@ -25,6 +28,16 @@ class Kernel implements \Stub\Framework\Contracts\Console\Kernel
*/
protected $commandStartedDateTime;

/**
* @var InputContract
*/
protected $input;

/**
* @var OutputContract
*/
protected $output;

/**
* Создает новый экземпляр ядра консоли
* @param Application $app
Expand All @@ -33,25 +46,46 @@ class Kernel implements \Stub\Framework\Contracts\Console\Kernel
public function __construct(Application $app)
{
$this->app = $app;
self::hendle($app::getInput(), $app::getOutput());
$this->input = Input::getInstance();
$this->output = Output::getInstance();
self::handle();
}

public function hendle(Input $input, Output $output)
public function handle()
{
$this->commandStartedDateTime = new DateTime();
try {
echo "Из потока ввода беру набор команд т.е. конкретно то, что мне выдаст метод ";
echo "И именно под защитой данной конструкции выполняем непосредственно передачу команды
на отработку приложению";
$this->output->writeln($this->input->getArguments()[1]);
$className = "Stub\Framework\Console\Commands\\".$this->input->getArguments()[1] . 'Command';
$this->output->writeln($className);
$this->execute(new $className());
} catch (Throwable $e) {
echo "Это на случай если ошибка возникнет, ее нужно передать на обработку (оформление) добавить к ней
данные разные окружения и уже потом выдать на гора...";
$this->output->writeln("Это на случай если ошибка возникнет, ее нужно передать на обработку (оформление) добавить к ней
данные разные окружения и уже потом выдать на гора...");
}
}

protected function execute(Command $command)
{
$this->output->writeln("Выполняю конкретную команду");
$this->output->writeln($command->getName());
$this->output->writeln("Завершаю выполнение команды");
}

public function sayHello(): string
{
echo "Hello!! It is Console Kernel...";
$this->output->writeln("Hello!! It is Console Kernel...");
return "Hi!! It is Console Kernel...";
}

/**
* Завершение работы приложения вывод результата пользователю
* @param $request
* @param $response
* @return void
*/
public function terminate($request, $response)
{
exit($response);
}
}