![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/ledger.corals.io/vendor/barryvdh/laravel-ide-helper/src/ |
<?php /** * Laravel IDE Helper Generator * * @author Barry vd. Heuvel <[email protected]> * @copyright 2014 Barry vd. Heuvel / Fruitcake Studio (http://www.fruitcakestudio.nl) * @license http://www.opensource.org/licenses/mit-license.php MIT * @link https://github.com/barryvdh/laravel-ide-helper */ namespace Barryvdh\LaravelIdeHelper; use Barryvdh\LaravelIdeHelper\Console\EloquentCommand; use Barryvdh\LaravelIdeHelper\Console\GeneratorCommand; use Barryvdh\LaravelIdeHelper\Console\MetaCommand; use Barryvdh\LaravelIdeHelper\Console\ModelsCommand; use Barryvdh\LaravelIdeHelper\Listeners\GenerateModelHelper; use Illuminate\Console\Events\CommandFinished; use Illuminate\Contracts\Support\DeferrableProvider; use Illuminate\Database\Events\MigrationsEnded; use Illuminate\Support\ServiceProvider; use Illuminate\View\Engines\EngineResolver; use Illuminate\View\Engines\PhpEngine; use Illuminate\View\Factory; use Illuminate\View\FileViewFinder; class IdeHelperServiceProvider extends ServiceProvider implements DeferrableProvider { /** * Bootstrap the application events. * * @return void */ public function boot() { if (!$this->app->runningUnitTests() && $this->app['config']->get('ide-helper.post_migrate', [])) { $this->app['events']->listen(CommandFinished::class, GenerateModelHelper::class); $this->app['events']->listen(MigrationsEnded::class, function () { GenerateModelHelper::$shouldRun = true; }); } if ($this->app->has('view')) { $viewPath = __DIR__ . '/../resources/views'; $this->loadViewsFrom($viewPath, 'ide-helper'); } $configPath = __DIR__ . '/../config/ide-helper.php'; if (function_exists('config_path')) { $publishPath = config_path('ide-helper.php'); } else { $publishPath = base_path('config/ide-helper.php'); } $this->publishes([$configPath => $publishPath], 'config'); } /** * Register the service provider. * * @return void */ public function register() { $configPath = __DIR__ . '/../config/ide-helper.php'; $this->mergeConfigFrom($configPath, 'ide-helper'); $localViewFactory = $this->createLocalViewFactory(); $this->app->singleton( 'command.ide-helper.generate', function ($app) use ($localViewFactory) { return new GeneratorCommand($app['config'], $app['files'], $localViewFactory); } ); $this->app->singleton( 'command.ide-helper.models', function ($app) { return new ModelsCommand($app['files']); } ); $this->app->singleton( 'command.ide-helper.meta', function ($app) use ($localViewFactory) { return new MetaCommand($app['files'], $localViewFactory, $app['config']); } ); $this->app->singleton( 'command.ide-helper.eloquent', function ($app) { return new EloquentCommand($app['files']); } ); $this->commands( 'command.ide-helper.generate', 'command.ide-helper.models', 'command.ide-helper.meta', 'command.ide-helper.eloquent' ); } /** * Get the services provided by the provider. * * @return array */ public function provides() { return ['command.ide-helper.generate', 'command.ide-helper.models']; } /** * @return Factory */ private function createLocalViewFactory() { $resolver = new EngineResolver(); $resolver->register('php', function () { return new PhpEngine($this->app['files']); }); $finder = new FileViewFinder($this->app['files'], [__DIR__ . '/../resources/views']); $factory = new Factory($resolver, $finder, $this->app['events']); $factory->addExtension('php', 'php'); return $factory; } }