|
@@ -27,7 +27,7 @@ class GenerateTreeCommand extends Command
|
|
|
{
|
|
|
|
|
|
$lines = ['<?php', '', 'use Illuminate\Support\Facades\Route;', '', ''];
|
|
|
- file_put_contents(base_path("routes/generated.php"), implode("\n", $lines));
|
|
|
+ GenerateTreeCommand::save(base_path("routes/generated.php"), implode("\n", $lines));
|
|
|
|
|
|
$sideLinks = [];
|
|
|
|
|
@@ -320,7 +320,7 @@ class GenerateTreeCommand extends Command
|
|
|
echo "Saved " . base_path("routes/generated.php") . "\n";
|
|
|
|
|
|
// save side links
|
|
|
- file_put_contents(resource_path("views/layouts/generated-links.blade.php"), implode("\n", $sideLinks));
|
|
|
+ GenerateTreeCommand::save(resource_path("views/layouts/generated-links.blade.php"), implode("\n", $sideLinks));
|
|
|
echo "Saved " . resource_path("views/layouts/generated-links.blade.php") . "\n";
|
|
|
|
|
|
$this->humanizeRoutes();
|
|
@@ -413,11 +413,45 @@ class GenerateTreeCommand extends Command
|
|
|
$lines[] = "";
|
|
|
}
|
|
|
|
|
|
- file_put_contents($path, implode("\n", $lines));
|
|
|
+ GenerateTreeCommand::save($path, implode("\n", $lines));
|
|
|
|
|
|
echo "Cleaned " . base_path("routes/generated.php") . "\n";
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ public static function save($dir, $contents, $flags = FALSE){
|
|
|
+
|
|
|
+ // if file exists, check if it has "DO NOT GENERATE" as the first line
|
|
|
+ if(file_exists($dir) && is_file($dir)) {
|
|
|
+ $file = fopen($dir, "r");
|
|
|
+ $lines = [];
|
|
|
+ $line = rtrim(fgets($file));
|
|
|
+ if($line === '<?php /* DO NOT GENERATE */ ?>') {
|
|
|
+ dump("Not writing to protected file: $dir");
|
|
|
+ fclose($file);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ fclose($file);
|
|
|
+ $file = null;
|
|
|
+ }
|
|
|
+
|
|
|
+ $dir = str_replace("\\", "/", $dir);
|
|
|
+ $dir = str_replace( '//', '/', $dir);
|
|
|
+ $parts = explode('/', $dir);
|
|
|
+ $file = array_pop($parts);
|
|
|
+ $dir = '';
|
|
|
+ foreach($parts as $part) {
|
|
|
+ if(strlen($part) === 0 || $part[strlen($part) - 1] !== ':') {
|
|
|
+ if(!is_dir($dir .= "/$part")) mkdir($dir);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if($flags !== FALSE) {
|
|
|
+ file_put_contents("$dir/$file", $contents, $flags);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ file_put_contents("$dir/$file", $contents);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
class GenController {
|
|
@@ -585,7 +619,7 @@ class GenController {
|
|
|
}
|
|
|
$text = str_replace("_NAME_", "{$this->name}_Controller", $text);
|
|
|
$text = str_replace("// __METHODS__", implode("\n", $code), $text);
|
|
|
- file_put_contents(app_path("Http/Controllers/{$this->name}_Controller.php"), $text);
|
|
|
+ GenerateTreeCommand::save(app_path("Http/Controllers/{$this->name}_Controller.php"), $text);
|
|
|
echo "Generated " . app_path("Http/Controllers/{$this->name}_Controller.php") . "\n";
|
|
|
}
|
|
|
public function saveView(GenController $controller, GenControllerMethod $method) {
|
|
@@ -707,7 +741,7 @@ class GenController {
|
|
|
}
|
|
|
$text = str_replace("<!-- __SCAFFOLD_THS__ -->", implode("\n", $ths), $text);
|
|
|
$text = str_replace("<!-- __SCAFFOLD_TDS__ -->", implode("\n", $tds), $text);
|
|
|
- $this->file_force_contents(resource_path("views/{$controller->root}/{$controller->name}/{$method->name}.blade.php"), $text);
|
|
|
+ GenerateTreeCommand::save(resource_path("views/{$controller->root}/{$controller->name}/{$method->name}.blade.php"), $text);
|
|
|
echo "Generated " . resource_path("views/{$controller->root}/{$controller->name}/{$method->name}.blade.php") . "\n";
|
|
|
}
|
|
|
public function saveShowView(GenController $controller, GenControllerMethod $method)
|
|
@@ -725,7 +759,7 @@ class GenController {
|
|
|
$text = str_replace("_NAME_", $this->snakeToTitleCase($controller->name), $text);
|
|
|
$text = str_replace("_UID_", '<?= $record->uid ?>', $text);
|
|
|
$text = str_replace("_INDEX_ROUTE_", $controller->name . '-index', $text);
|
|
|
- $this->file_force_contents(resource_path("views/{$controller->root}/{$controller->name}/info.blade.php"), $text);
|
|
|
+ GenerateTreeCommand::save(resource_path("views/{$controller->root}/{$controller->name}/info.blade.php"), $text);
|
|
|
echo "Generated " . resource_path("views/{$controller->root}/{$controller->name}/info.blade.php") . "\n";
|
|
|
|
|
|
// write main view
|
|
@@ -735,7 +769,7 @@ class GenController {
|
|
|
$text = str_replace("_INDEX_ROUTE_", $controller->name . '-index', $text);
|
|
|
$text = str_replace("_SUB_LINKS_VIEW_", "{$controller->root}/{$controller->name}/subs", $text);
|
|
|
$text = str_replace("_INFO_VIEW_", "{$controller->root}/{$controller->name}/info", $text);
|
|
|
- $this->file_force_contents(resource_path("views/{$controller->root}/{$controller->name}/{$method->name}.blade.php"), $text);
|
|
|
+ GenerateTreeCommand::save(resource_path("views/{$controller->root}/{$controller->name}/{$method->name}.blade.php"), $text);
|
|
|
echo "Generated " . resource_path("views/{$controller->root}/{$controller->name}/{$method->name}.blade.php") . "\n";
|
|
|
}
|
|
|
public function saveSubLinks(GenController $controller, GenControllerMethod $method)
|
|
@@ -759,7 +793,7 @@ class GenController {
|
|
|
. "'>$display</a>" .
|
|
|
($meth->show ? " @endif" : "");
|
|
|
}
|
|
|
- $this->file_force_contents($subLinksView, implode("\n", $subLinks));
|
|
|
+ GenerateTreeCommand::save($subLinksView, implode("\n", $subLinks));
|
|
|
echo "Generated " . $subLinksView . "\n";
|
|
|
$controller->subLinksSaved = true;
|
|
|
}
|
|
@@ -778,7 +812,7 @@ class GenController {
|
|
|
"class='d-block btn btn-sm btn-default mb-3'>$display</a>" .
|
|
|
($meth->show ? " @endif" : "");
|
|
|
}
|
|
|
- $this->file_force_contents($actionLinksView, implode("\n", $actionLinks));
|
|
|
+ GenerateTreeCommand::save($actionLinksView, implode("\n", $actionLinks));
|
|
|
echo "Generated " . $actionLinksView . "\n";
|
|
|
$controller->actionLinksSaved = true;
|
|
|
}
|
|
@@ -787,7 +821,7 @@ class GenController {
|
|
|
$text = file_get_contents(base_path('generatecv/tree-templates/sub.template.blade.php'));
|
|
|
$text = str_replace("_LAYOUT_", "{$controller->root}.{$controller->parentControllerName}.view", $text);
|
|
|
$text = $this->generateSubContent($controller, $method, $text);
|
|
|
- $this->file_force_contents(resource_path("views/{$controller->root}/{$controller->name}/{$method->name}.blade.php"), $text);
|
|
|
+ GenerateTreeCommand::save(resource_path("views/{$controller->root}/{$controller->name}/{$method->name}.blade.php"), $text);
|
|
|
echo "Generated " . resource_path("views/{$controller->root}/{$controller->name}/{$method->name}.blade.php") . "\n";
|
|
|
}
|
|
|
public function saveSubActionView(GenController $controller, GenControllerMethod $method) {
|
|
@@ -817,7 +851,7 @@ class GenController {
|
|
|
}
|
|
|
}
|
|
|
$text = str_replace("<!-- _SCAFFOLD_FIELDS_ -->", implode("\n", $fields), $text);
|
|
|
- $this->file_force_contents(resource_path("views/{$controller->root}/{$controller->name}/{$method->name}.blade.php"), $text);
|
|
|
+ GenerateTreeCommand::save(resource_path("views/{$controller->root}/{$controller->name}/{$method->name}.blade.php"), $text);
|
|
|
echo "Generated " . resource_path("views/{$controller->root}/{$controller->name}/{$method->name}.blade.php") . "\n";
|
|
|
}
|
|
|
public function saveSubIndexView(GenController $controller, GenControllerMethod $method) {
|
|
@@ -898,7 +932,7 @@ class GenController {
|
|
|
}
|
|
|
$text = str_replace("<!-- __SCAFFOLD_THS__ -->", implode("\n", $ths), $text);
|
|
|
$text = str_replace("<!-- __SCAFFOLD_TDS__ -->", implode("\n", $tds), $text);
|
|
|
- $this->file_force_contents(resource_path("views/{$controller->root}/{$controller->name}/{$method->name}.blade.php"), $text);
|
|
|
+ GenerateTreeCommand::save(resource_path("views/{$controller->root}/{$controller->name}/{$method->name}.blade.php"), $text);
|
|
|
echo "Generated " . resource_path("views/{$controller->root}/{$controller->name}/{$method->name}.blade.php") . "\n";
|
|
|
}
|
|
|
public function generateSubContent(GenController $controller, GenControllerMethod $method, $text) {
|
|
@@ -1037,7 +1071,7 @@ class GenController {
|
|
|
$fields[] = $this->generateFormField($column);
|
|
|
}
|
|
|
$text = str_replace("<!-- _SCAFFOLD_FIELDS_ -->", implode("\n", $fields), $text);
|
|
|
- $this->file_force_contents(resource_path("views/{$controller->root}/{$controller->name}/{$method->name}.blade.php"), $text);
|
|
|
+ GenerateTreeCommand::save(resource_path("views/{$controller->root}/{$controller->name}/{$method->name}.blade.php"), $text);
|
|
|
echo "Generated " . resource_path("views/{$controller->root}/{$controller->name}/{$method->name}.blade.php") . "\n";
|
|
|
}
|
|
|
public function saveRoutes() {
|
|
@@ -1049,7 +1083,7 @@ class GenController {
|
|
|
}
|
|
|
$lines[] = '';
|
|
|
$lines[] = '';
|
|
|
- file_put_contents(base_path("routes/generated.php"), implode("\n", $lines), FILE_APPEND);
|
|
|
+ GenerateTreeCommand::save(base_path("routes/generated.php"), implode("\n", $lines), FILE_APPEND);
|
|
|
}
|
|
|
public function log() {
|
|
|
$this->w('');
|
|
@@ -1092,19 +1126,6 @@ class GenController {
|
|
|
$text[0] = strtolower($text[0]);
|
|
|
return $text;
|
|
|
}
|
|
|
- private function file_force_contents($dir, $contents){
|
|
|
- $dir = str_replace("\\", "/", $dir);
|
|
|
- $dir = str_replace( '//', '/', $dir);
|
|
|
- $parts = explode('/', $dir);
|
|
|
- $file = array_pop($parts);
|
|
|
- $dir = '';
|
|
|
- foreach($parts as $part) {
|
|
|
- if(strlen($part) === 0 || $part[strlen($part) - 1] !== ':') {
|
|
|
- if(!is_dir($dir .= "/$part")) mkdir($dir);
|
|
|
- }
|
|
|
- }
|
|
|
- file_put_contents("$dir/$file", $contents);
|
|
|
- }
|
|
|
private function generateFormField($line) {
|
|
|
$tokens = explode("=", $line);
|
|
|
$default = false;
|