![]() 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/demo.cartinsight.co/vendor/orchestra/canvas/src/Processors/ |
<?php namespace Orchestra\Canvas\Processors; use Illuminate\Support\Str; use InvalidArgumentException; use Orchestra\Canvas\Core\GeneratesCode; /** * @property \Orchestra\Canvas\Commands\Database\Observer $listener * * @see https://github.com/laravel/framework/blob/10.x/src/Illuminate/Foundation/Console/ObserverMakeCommand.php */ class GeneratesObserverCode extends GeneratesCode { /** * Build the class with the given name. */ protected function buildClass(string $name): string { $stub = parent::buildClass($name); $model = $this->options['model']; return ! empty($model) ? $this->replaceModel($stub, $model) : $stub; } /** * Replace the model for the given stub. */ protected function replaceModel(string $stub, string $model): string { $modelClass = $this->parseModel($model); $replace = [ 'DummyFullModelClass' => $modelClass, '{{ namespacedModel }}' => $modelClass, '{{namespacedModel}}' => $modelClass, 'DummyModelClass' => class_basename($modelClass), '{{ model }}' => class_basename($modelClass), '{{model}}' => class_basename($modelClass), 'DummyModelVariable' => lcfirst(class_basename($modelClass)), '{{ modelVariable }}' => lcfirst(class_basename($modelClass)), '{{modelVariable}}' => lcfirst(class_basename($modelClass)), ]; return str_replace( array_keys($replace), array_values($replace), $stub ); } /** * Get the fully-qualified model class name. * * @param string $model * * @throws \InvalidArgumentException */ protected function parseModel($model): string { if (preg_match('([^A-Za-z0-9_/\\\\])', $model)) { throw new InvalidArgumentException('Model name contains invalid characters.'); } return $this->qualifyModel($model); } /** * Qualify the given model class base name. */ protected function qualifyModel(string $model): string { $model = ltrim($model, '\\/'); $model = str_replace('/', '\\', $model); $rootNamespace = $this->rootNamespace(); $namespaceModel = $this->preset->modelNamespace().'\\'.$model; if (Str::startsWith($model, $namespaceModel)) { return $model; } elseif (! \is_null($this->preset->config('model.namespace'))) { return $namespaceModel; } return is_dir(app_path('Models')) ? $rootNamespace.'Models\\'.$model : $namespaceModel; } }