<?php
require_once 'init.php';
$directoryName = 'Entity';
// error_reporting(E_ALL);
// ini_set('display_errors', 1);
// ini_set('display_startup_errors', 1);
ini_set('max_execution_time', 0);
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$databaseRepository = new EntityGenerator\Database\DatabaseRepository($connection);
$database = filter_input(INPUT_POST,'database');
$tables = explode(',',filter_input(INPUT_POST,'tables'));
if(empty($databases) == true && isset($tables[0]) && $tables[0] == ''){
header("Location:index.php?error=Select database and tables");
return false;
}
$connection->exec("USE $database");
foreach($tables as $table){
$coloumnNames = $databaseRepository->getColoumnNamesOfTable($table);
generateEntityClass($table, $coloumnNames, $database);
}
header("Location:index.php?success=Successfully Generated Entities");
}else{
header("Location:index.php?error=Oops! Error in generating entities.");
}
function generateEntityClass($tableName, $coloumnNames, $database){
global $directoryName;
$studlyTableName = EntityGenerator\Helper\HelperFunctions::studlyCaps($tableName);
$entityClass =
"
<?php
namespace {$directoryName};\n
class {$studlyTableName}{
";
foreach($coloumnNames as $coloumnName){
$entityClass .= " private \$".EntityGenerator\Helper\HelperFunctions::camelCase($coloumnName['Field']).";\n";
if($coloumnName['Key'] == 'PRI' || $coloumnName['Key'] == 'PRIMARY'){
$entityClass .= getGetter($coloumnName['Field']);
continue;
}else{
$entityClass .= getGetter($coloumnName['Field']);
$entityClass .= getSetter($coloumnName['Field']);
}
}
$entityClass .= "}";
writeFile($database,$studlyTableName.'.php', $entityClass);
}
function getGetter($coloumnName){
$studlyColoumnName = EntityGenerator\Helper\HelperFunctions::studlyCaps($coloumnName);
$camelColoumnName = EntityGenerator\Helper\HelperFunctions::camelCase($coloumnName);
$getter =
"
public function get{$studlyColoumnName}(){
return \$this->{$camelColoumnName};
}
\n";
return $getter;
}
function getSetter($coloumnName){
$studlyColoumnName = EntityGenerator\Helper\HelperFunctions::studlyCaps($coloumnName);
$camelColoumnName = EntityGenerator\Helper\HelperFunctions::camelCase($coloumnName);
$setter =
"
public function set{$studlyColoumnName}(\${$camelColoumnName}){
\$this->{$camelColoumnName} = \${$camelColoumnName};
return \$this;
}
\n";
return $setter;
}
function writeFile($database,$fileName, $content){
global $directoryName;
$database = EntityGenerator\Helper\HelperFunctions::studlyCaps($database);
if (!file_exists(__DIR__."/{$directoryName}/{$database}/")) {
mkdir(__DIR__."/{$directoryName}/{$database}/", 0777, true);
}
if(!defined('FILE_WRITE_PATH')){
define('FILE_WRITE_PATH', __DIR__."/{$directoryName}/{$database}/");
}
if($fh = fopen(FILE_WRITE_PATH.$fileName,'w+')){
if(is_writable(FILE_WRITE_PATH.$fileName)){
fwrite($fh, $content);
}else{
exit('Please provide Read and Write permissions for directory');
}
}else{
exit('Please provide Read and Write permissions for directory');
}
}
|