protected function getModuleFixtures(AbstractModule $module) { $namespace = $module->getNamespace() . '\\Fixtures\\'; $directory = $module->getDirectory() . 'Fixtures/'; if (!is_dir($directory)) { return []; } $fixtures = []; $files = new \DirectoryIterator($directory); foreach ($files as $file) { if (!$file->isFile() || substr($file->getFilename(), -4) !== '.php') { continue; } $class = $namespace . $file->getBasename('.php'); $r = new \ReflectionClass($class); if (!$r->isSubclassOf('ActiveDoctrine\\Fixture\\FixtureInterface') || $r->isAbstract()) { continue; } $fixtures[] = $r->newInstance(); } return $fixtures; }
/** * Get all migrations from a module. */ public function getAllMigrations(AbstractModule $module) { $namespace = $module->getNamespace() . '\\Migrations\\'; $directory = $this->getMigrationsDirectory($module); $migrations = []; $files = new \DirectoryIterator($directory); foreach ($files as $file) { //Possible migrations are files of the form MigrationYYYYMMDDHHMMSS.php if (!$file->isFile() || !preg_match('`Migration\\d{14}\\w*.php`', $file->getFilename())) { continue; } $class = $namespace . $file->getBasename('.php'); $r = new \ReflectionClass($class); if (!$r->isSubclassOf('Neptune\\Database\\Migration\\AbstractMigration') || $r->isAbstract()) { continue; } $migration = $r->newInstance(); $migrations[$migration->getVersion()] = $migration; } ksort($migrations); return $migrations; }