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\ModelCompiler;
 7 use Scaffolder\Support\FileToCompile;
 8 use stdClass;
 9 
10 class ApiModelCompiler extends ModelCompiler
11 {
12     /**
13      * Compiles a model.
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_model_' . $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                 ->setPrimaryKey($modelData)
37                 ->addFillable($modelData)
38                 ->replaceTableName($scaffolderConfig, $modelName);
39 
40             return $this->store($modelName, $scaffolderConfig, $this->stub, new FileToCompile(false, $hash));
41         }
42     }
43 
44     /**
45      * Store the compiled stub.
46      *
47      * @param $modelName
48      * @param \stdClass $scaffolderConfig
49      * @param $compiled
50      * @param \Scaffolder\Support\FileToCompile $fileToCompile
51      *
52      * @return string
53      */
54     protected function store($modelName, stdClass $scaffolderConfig, $compiled, FileToCompile $fileToCompile)
55     {
56         $path = base_path('../' . strtolower(str_replace(' ', '-', $scaffolderConfig->name . '-api'))) . '/app/Models/' . $modelName . '.php';
57 
58         // Store in cache
59         if ($fileToCompile->cached)
60         {
61             File::copy(base_path('scaffolder-config/cache/api_model_' . $fileToCompile->hash . self::CACHE_EXT), $path);
62         }
63         else
64         {
65             File::put(base_path('scaffolder-config/cache/api_model_' . $fileToCompile->hash . self::CACHE_EXT), $compiled);
66             File::copy(base_path('scaffolder-config/cache/api_model_' . $fileToCompile->hash . self::CACHE_EXT), $path);
67         }
68 
69         return $path;
70     }
71 }
72 
Scaffolder v2.0.0 API documentation generated by ApiGen