/** * Get all classes for a namespace. * * @param string namespace * @return array */ public function getClassesFromNamespace($namespace = null) { $base_namespace = $namespace ?: $this->getAppNamespace(); $path = $this->stripNamespace($base_namespace, $this->getAppNamespace()); $directory = app_path() . '\\' . $path; return $this->finder->findClasses($directory); }
/** * Get the cache contents for a given path. * * @param string $path * @return string */ protected function getCacheForPath($path) { $cache = ''; foreach ($this->finder->findClasses($path) as $class) { $cache .= $this->getCacheForClass(new ReflectionClass($class)); } return $cache; }
/** * run package database migrations * * @return void */ public function migrate() { $fileSystem = new Filesystem(); $classFinder = new ClassFinder(); foreach ($fileSystem->files(__DIR__ . '/../../src/migrations') as $file) { $fileSystem->requireOnce($file); $migrationClass = $classFinder->findClass($file); (new $migrationClass())->up(); } }
/** * Run all database migrations from the specified path * * @param string $path * @return void */ protected function migrateDatabaseFromPath($path) { $fileSystem = new Filesystem(); $classFinder = new ClassFinder(); foreach ($fileSystem->files($path) as $file) { $fileSystem->requireOnce($file); $migrationClass = $classFinder->findClass($file); (new $migrationClass())->up(); } }
/** * run package database migrations. */ public function migrate() { $fileSystem = new Filesystem(); $classFinder = new ClassFinder(); foreach ($fileSystem->files(__DIR__ . '/../../../../tests/NilPortugues/App/Migrations') as $file) { $fileSystem->requireOnce($file); $migrationClass = $classFinder->findClass($file); (new $migrationClass())->down(); (new $migrationClass())->up(); } }
protected function getMigrations() { $migrations = []; $fileSystem = new Filesystem(); $classFinder = new ClassFinder(); foreach ($fileSystem->files(__DIR__ . '/../migrations') as $file) { $fileSystem->requireOnce($file); $migrations[] = $classFinder->findClass($file); } return $migrations; }
/** * Run package database migrations. * Thanks http://stackoverflow.com/questions/27759301/setting-up-integration-tests-in-a-laravel-package * * @return void */ public function migrate() { $fileSystem = new Filesystem(); $classFinder = new ClassFinder(); $packageMigrations = $fileSystem->files(__DIR__ . "/../../src/Migrations"); $laravelMigrations = $fileSystem->files(__DIR__ . "/../../vendor/laravel/laravel/database/migrations"); $migrationFiles = array_merge($laravelMigrations, $packageMigrations); foreach ($migrationFiles as $file) { $fileSystem->requireOnce($file); $migrationClass = $classFinder->findClass($file); (new $migrationClass())->up(); } }
/** * Execute the console command. * * @return mixed */ public function handle() { \DB::statement('SET FOREIGN_KEY_CHECKS=0;'); foreach ($this->filesystem->files(__DIR__ . "/../../../../database/migrations") as $file) { $this->filesystem->requireOnce($file); $migrationClass = $this->classFinder->findClass($file); $migration = new $migrationClass(); $migration->down(); $migration->up(); } $this->info("Merx tables migrated."); \DB::statement('SET FOREIGN_KEY_CHECKS=1;'); }
protected function migrateDatabase() { // First create fake users and articles tables (new CreateTestUsersTable())->up(); (new CreateTestArticlesTable())->up(); // Then migrate Merx tables $fileSystem = new Filesystem(); $classFinder = new ClassFinder(); foreach ($fileSystem->files(__DIR__ . "/../database/migrations") as $file) { $fileSystem->requireOnce($file); $migrationClass = $classFinder->findClass($file); (new $migrationClass())->up(); } }
/** * Parse config file and project to get all classes to extract. * * * @return array */ public function getClasses() { $conf_classes = config('larinterface.classes'); $conf_directories = config('larinterface.directories'); $conf_ignore = config('larinterface.ignore'); $classesArray = []; // Forge classes foreach ($conf_classes as $output => $classes) { if (is_numeric($output)) { $output = 0; } if (is_string($classes)) { $classes = [$classes]; } if (isset($classesArray[$output])) { $classesArray[$output] = array_merge($classesArray[$output], $classes); } else { $classesArray[$output] = $classes; } } // Forge directories foreach ($conf_directories as $output => $directories) { if (is_numeric($output)) { $output = 0; } if (is_string($directories)) { $directories = [$directories]; } foreach ($directories as $directory) { $classes = $this->classFinder->findClasses(base_path($directory)); if (isset($classesArray[$output])) { $classesArray[$output] = array_merge($classesArray[$output], $classes); } else { $classesArray[$output] = $classes; } } } // Clean forged class foreach ($classesArray as $key => $value) { // Ignore files foreach ($conf_ignore as $class) { $classKey = array_search($class, $value); if ($classKey !== false) { unset($value[$classKey]); } } $classesArray[$key] = array_unique($value); } return $this->classes = $this->extractInterfacePathFromClasses($classesArray); }
/** * Execute the console command. * * @return mixed */ public function handle() { $this->disableForeignKeyChecks(); $migrationCount = 0; foreach ($this->filesystem->files(__DIR__ . "/../../../../database/migrations") as $file) { $this->filesystem->requireOnce($file); $migrationClass = $this->classFinder->findClass($file); $migration = new $migrationClass(); if ($this->option("refresh")) { $migration->down(); } try { $migration->up(); $migrationCount++; } catch (QueryException $ex) { if (!$this->isTableAlreadyExistError($ex)) { throw $ex; } } } $this->enableForeignKeyChecks(); $this->info("{$migrationCount} table(s) migrated."); }
/** * Get all classes for a given namespace. * * @param string $namespace * @return array */ public function getClassesFromNamespace($namespace = null) { $namespace = $namespace ?: $this->getAppNamespace(); $path = $this->convertNamespaceToPath($namespace); return $this->finder->findClasses($path); }
/** * Search the app path for any models that implement EloquentJs. * * @return array */ protected function searchAppForModels() { return array_filter($this->classFinder->findClasses(app_path()), function ($className) { return $this->isEloquentJsModel($className); }); }