Scaffolder v2.0.0
  • Namespace
  • Class

Namespaces

  • Scaffolder
    • Commands
    • Compilers
      • Core
        • Api
      • Layout
      • View

Classes

  • Scaffolder\Commands\BaseCommand
  • Scaffolder\Commands\ClearCacheCommand
  • Scaffolder\Commands\GeneratorCommand
  • Scaffolder\Commands\InitializeApiCommand
  • Scaffolder\Compilers\AbstractCompiler
  • Scaffolder\Compilers\AbstractCoreCompiler
  • Scaffolder\Compilers\AbstractViewCompiler
  • Scaffolder\Compilers\Core\Api\ApiControllerCompiler
  • Scaffolder\Compilers\Core\Api\ApiModelCompiler
  • Scaffolder\Compilers\Core\Api\ApiRouteCompiler
  • Scaffolder\Compilers\Core\ControllerCompiler
  • Scaffolder\Compilers\Core\MigrationCompiler
  • Scaffolder\Compilers\Core\ModelCompiler
  • Scaffolder\Compilers\Core\RouteCompiler
  • Scaffolder\Compilers\Layout\CreateLayoutCompiler
  • Scaffolder\Compilers\Layout\EditLayoutCompiler
  • Scaffolder\Compilers\Layout\PageLayoutCompiler
  • Scaffolder\Compilers\View\CreateViewCompiler
  • Scaffolder\Compilers\View\DashboardViewCompiler
  • Scaffolder\Compilers\View\EditViewCompiler
  • Scaffolder\Compilers\View\IndexViewCompiler
  • Scaffolder\Compilers\View\LoginViewCompiler
  • Scaffolder\Compilers\View\WelcomeViewCompiler
  • Scaffolder\ScaffolderServiceProvider
 1 <?php
 2 
 3 namespace Scaffolder\Compilers\Core\Api;
 4 
 5 use Illuminate\Support\Facades\File;
 6 use Scaffolder\Compilers\Core\ControllerCompiler;
 7 use Scaffolder\Support\FileToCompile;
 8 use stdClass;
 9 
10 class ApiControllerCompiler extends ControllerCompiler
11 {
12     /**
13      * Compiles a controller.
14      *
15      * @param $stub
16      * @param $modelName
17      * @param $modelData
18      * @param \stdClass $scaffolderConfig
19      * @param $hash
20      * @param \Scaffolder\Support\Contracts\ScaffolderExtensionInterface[] $extensions
21      * @param null $extra
22      *
23      * @return string
24      */
25     public function compile($stub, $modelName, $modelData, stdClass $scaffolderConfig, $hash, array $extensions, $extra = null)
26     {
27         if (File::exists(base_path('scaffolder-config/cache/api_controller_' . $hash . self::CACHE_EXT)))
28         {
29             return $this->store($modelName, $scaffolderConfig, '', new FileToCompile(true, $hash));
30         }
31         else
32         {
33             $this->stub = $stub;
34 
35             $this->replaceClassName($modelName)
36                 ->setValidations($modelData);
37 
38             return $this->store($modelName, $scaffolderConfig, $this->stub, new FileToCompile(false, $hash));
39         }
40     }
41 
42     /**
43      * Store the compiled stub.
44      *
45      * @param $modelName
46      * @param \stdClass $scaffolderConfig
47      * @param $compiled
48      * @param \Scaffolder\Support\FileToCompile $fileToCompile
49      *
50      * @return string
51      */
52     protected function store($modelName, stdClass $scaffolderConfig, $compiled, FileToCompile $fileToCompile)
53     {
54         $path = base_path('../' . strtolower(str_replace(' ', '-', $scaffolderConfig->name . '-api'))) . '/app/Http/Controllers/' . $modelName . 'Controller.php';
55 
56         // Store in cache
57         if ($fileToCompile->cached)
58         {
59             File::copy(base_path('scaffolder-config/cache/api_controller_' . $fileToCompile->hash . self::CACHE_EXT), $path);
60         }
61         else
62         {
63             File::put(base_path('scaffolder-config/cache/api_controller_' . $fileToCompile->hash . self::CACHE_EXT), $compiled);
64             File::copy(base_path('scaffolder-config/cache/api_controller_' . $fileToCompile->hash . self::CACHE_EXT), $path);
65         }
66 
67         return $path;
68     }
69 }
70 
Scaffolder v2.0.0 API documentation generated by ApiGen