| 
<?php/**
 * *
 *  * please don't remove this comment block
 *  *
 *  * @author phptricks Team - Mohammad Anzawi
 *  * @author_uri https://phptricks.org
 *  * @uri https://github.com/anzawi/php-database-class
 *  * @version 5.0.0
 *  * @licence MIT -> https://opensource.org/licenses/MIT
 *  * @package PHPtricks\Orm
 *
 */
 
 namespace PHPtricks\Orm\Command;
 
 
 use Symfony\Component\Console\Command\Command;
 use Symfony\Component\Console\Input\InputArgument;
 use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Input\InputOption;
 use Symfony\Component\Console\Output\OutputInterface;
 
 
 class Model extends Command
 {
 
 /**
 * @var string
 */
 private $_dir;
 
 
 public function __construct(string $name = null)
 {
 parent::__construct($name);
 $this->_dir = config('directories.models');
 }
 
 protected function configure()
 {
 $this
 ->setName('model')
 ->setDescription('Create New Model Class.')
 ->addArgument('class', InputArgument::REQUIRED,
 'Class Name | File Name')
 ->addOption('table', 't', InputOption::VALUE_OPTIONAL, 'table name',
 'change_this_to_table_name');
 }
 
 /**
 * @param  \Symfony\Component\Console\Input\InputInterface  $input
 * @param  \Symfony\Component\Console\Output\OutputInterface  $output
 *
 * @return int
 */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
 $table  = str_replace('=', '', $input->getOption('table'));
 $name   = $input->getArgument('class');
 $path = rtrim($this->_dir, '/');
 $path = $path."/$name.php";
 @mkdir(dirname($path), 0755, true);
 $tempContent = file_get_contents(__DIR__."/Templates/model.template");
 $tempContent = str_replace('{%CLASS_NAME%}', $name, $tempContent);
 $tempContent = str_replace('{%TABLE_NAME%}', $table, $tempContent);
 file_put_contents($path, $tempContent);
 
 $output->writeln("<info>Model Created Successfully</info>");
 $output->writeln("===========");
 $output->writeln("");
 
 return Command::SUCCESS;
 }
 
 }
 |