123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- <?php
- namespace App\Console\Commands;
- use Prettus\Repository\Generators\Generator;
- use Prettus\Repository\Generators\Migrations\SchemaParser;
- /**
- * Class RepositoryInterfaceGenerator
- * @package Prettus\Repository\Generators
- * @author Anderson Andrade <contato@andersonandra.de>
- */
- class RepositoryInterfaceGenerator extends Generator
- {
- /**
- * Get stub name.
- *
- * @var string
- */
- protected $stub = 'repository/interface';
- /**
- * Get root namespace.
- *
- * @return string
- */
- public function getRootNamespace()
- {
- return parent::getRootNamespace() . parent::getConfigGeneratorClassPath($this->getPathConfigNode());
- }
- /**
- * Get generator path config node.
- *
- * @return string
- */
- public function getPathConfigNode()
- {
- return 'interfaces';
- }
- /**
- * Get destination path for generated file.
- *
- * @return string
- */
- public function getPath()
- {
- return $this->getBasePath() . '/' . parent::getConfigGeneratorClassPath($this->getPathConfigNode(), true) . '/' . $this->getName() . 'Repository.php';
- }
- /**
- * Get base path of destination file.
- *
- * @return string
- */
- public function getBasePath()
- {
- return config('repository.generator.basePath', app()->path());
- }
- /**
- * Get array replacements.
- *
- * @return array
- */
- public function getReplacements()
- {
- return array_merge(parent::getReplacements(), [
- 'fillable' => $this->getFillable()
- ]);
- }
- /**
- * Get the fillable attributes.
- *
- * @return string
- */
- public function getFillable()
- {
- if (!$this->fillable) {
- return '[]';
- }
- $results = '[' . PHP_EOL;
- foreach ($this->getSchemaParser()->toArray() as $column => $value) {
- $results .= "\t\t'{$column}'," . PHP_EOL;
- }
- return $results . "\t" . ']';
- }
- /**
- * Get schema parser.
- *
- * @return SchemaParser
- */
- public function getSchemaParser()
- {
- return new SchemaParser($this->fillable);
- }
- }
|