Browse Source

dev 2020-11

Max F 5 years ago
parent
commit
06357fa1ba

+ 29 - 0
src/Commands/ControllerCommand.php

@@ -0,0 +1,29 @@
+<?php
+
+namespace KarmaFW\Commands;
+
+//use \KarmaFW\App;
+use \KarmaFW\Http\Request;
+use \KarmaFW\Http\Response;
+
+
+class ControllerCommand
+{
+	protected $request;
+	protected $response;
+
+
+	public function __construct(Request $request, Response $response) 
+	{
+		$this->request = $request;
+		$this->response = $response;
+	}
+
+
+	public function execute($arguments=[]) 
+	{
+
+		
+	}
+	
+}

+ 2 - 2
src/Commands/HelpCommand.php

@@ -3,8 +3,8 @@
 namespace KarmaFW\Commands;
 
 //use \KarmaFW\App;
-use \KarmaFW\App\Request;
-use \KarmaFW\App\Response;
+use \KarmaFW\Http\Request;
+use \KarmaFW\Http\Response;
 
 
 class HelpCommand

+ 35 - 0
src/Commands/MigrationCommand.php

@@ -0,0 +1,35 @@
+<?php
+
+namespace KarmaFW\Commands;
+
+//use \KarmaFW\App;
+use \KarmaFW\Http\Request;
+use \KarmaFW\Http\Response;
+
+
+class MigrationCommand
+{
+	protected $request;
+	protected $response;
+
+
+	public function __construct(Request $request, Response $response) 
+	{
+		$this->request = $request;
+		$this->response = $response;
+	}
+
+
+	public function execute($arguments=[]) 
+	{
+		echo "PHP Console script" . PHP_EOL;
+		echo PHP_EOL;
+		echo "Usage: php console.php migration [migration_name]" . PHP_EOL;
+		echo PHP_EOL;
+		echo "Example: php console.php migration add_column_age_into_table_users" . PHP_EOL;
+		echo PHP_EOL;
+
+		
+	}
+	
+}

+ 90 - 0
src/Commands/ModelCommand.php

@@ -0,0 +1,90 @@
+<?php
+
+namespace KarmaFW\Commands;
+
+use \KarmaFW\App;
+use \KarmaFW\Http\Request;
+use \KarmaFW\Http\Response;
+
+
+class ModelCommand
+{
+	protected $request;
+	protected $response;
+
+
+	public function __construct(Request $request, Response $response) 
+	{
+		$this->request = $request;
+		$this->response = $response;
+	}
+
+
+	public function execute($arguments=[]) 
+	{
+		if (empty($arguments)) {
+			echo "PHP Console script" . PHP_EOL;
+			echo PHP_EOL;
+			echo "Usage: php console.php model [model_name]" . PHP_EOL;
+			echo PHP_EOL;
+			echo "Example: php console.php model users" . PHP_EOL;
+			echo PHP_EOL;
+			return;
+		}
+
+		$table_name = $arguments[0];
+
+		$class_name = $table_name;
+		$class_name = strtolower($class_name);
+		$class_name = rtrim($class_name, 's');
+		$class_name = ucwords($class_name, "_ \t\r\n\f\v");
+		$class_name = str_replace('s_', '', $class_name);
+		$class_name = str_replace('_', '', $class_name);
+		//echo $class_name . PHP_EOL; exit;
+
+		$db = App::getDb();
+
+		$columns = $db->listTableColumns($table_name);
+		//print_r($columns);
+		$infos = [];
+		foreach ($columns as $column) {
+			$infos[] = '- ' . $column['Field'] . ' => ' . $column['Type'];
+		}
+
+		$indexes = $db->listTableIndexes($table_name);
+		$primary_key = [];
+		foreach ($indexes as $index) {
+			if ($index['Key_name'] == 'PRIMARY') {
+				$seq = $index['Seq_in_index'];
+				$primary_key[$seq] = $index['Column_name'];
+			}
+		}
+		ksort($primary_key);
+		$primary_key = array_values($primary_key);
+		//print_r($primary_key);
+
+		$tpl = '<' . '?php
+
+namespace App\Models;
+
+use \KarmaFW\Database\Sql\SqlTableModel;
+
+
+/*
+Fields:
+' . implode(PHP_EOL, $infos) . '
+*/
+
+
+class ' . $class_name . ' extends SqlTableModel
+{
+	public static $table_name = "' . $table_name . '";
+	public static $primary_key = ["' . implode('", "', $primary_key) . '"];
+
+}
+';
+
+		echo $tpl;		
+	}
+	
+}

+ 2 - 2
src/Commands/TestCommand.php

@@ -3,8 +3,8 @@
 namespace KarmaFW\Commands;
 
 //use \KarmaFW\App;
-use \KarmaFW\App\Request;
-use \KarmaFW\App\Response;
+use \KarmaFW\Http\Request;
+use \KarmaFW\Http\Response;
 
 
 class TestCommand