public function findMigrations(): array
	{
		$migrations = [];

		// If $this->path contains a valid directory use it.
		if (! empty($this->path))
		{
			helper('filesystem');
			$dir   = rtrim($this->path, DIRECTORY_SEPARATOR) . '/';
			$files = get_filenames($dir, true);
		}
		// Otherwise use FileLocator to search files in the subdirectory of the namespace
		else
		{
			$locator = Services::locator(true);
			$files   = $locator->listNamespaceFiles($this->namespace, '/Database/Migrations/');
		}

		// Load all *_*.php files in the migrations path
		// We can't use glob if we want it to be testable....
		foreach ($files as $file)
		{
			if (substr($file, -4) !== '.php')
			{
				continue;
			}

			// Remove the extension
			$name = basename($file, '.php');

			// Filter out non-migration files
			if (preg_match($this->regex, $name))
			{
				// Create migration object using stdClass
				$migration = new \stdClass();

				// Get migration version number
				$migration->version = $this->getMigrationNumber($name);
				$migration->name    = $this->getMigrationName($name);
				$migration->path    = ! empty($this->path) && strpos($file, $this->path) !== 0
					? $this->path . $file
					: $file;

				// Add to migrations[version]
				$migrations[$migration->version] = $migration;
			}
		}

		ksort($migrations);

		return $migrations;
	}
public function findMigrations(): array
	{
		$migrations = [];

		// If $this->path contains a valid directory use it.
		if (! empty($this->path))
		{
			helper('filesystem');
			$dir   = rtrim($this->path, DIRECTORY_SEPARATOR) . '/';
			$files = get_filenames($dir, true);
		}
		// Otherwise use FileLocator to search files in the subdirectory of the namespace
		else
		{
			$locator = Services::locator(true);
			$files   = $locator->listNamespaceFiles($this->namespace, '/Database/Migrations/');
		}

		// Load all *_*.php files in the migrations path
		// We can't use glob if we want it to be testable....
		foreach ($files as $file)
		{
			if (substr($file, -4) !== '.php')
			{
				continue;
			}

			// Remove the extension
			$name = basename($file, '.php');

			// Filter out non-migration files
			if (preg_match($this->regex, $name))
			{
				// Create migration object using stdClass
				$migration = new \stdClass();

				// Get migration version number
				$migration->version = $this->getMigrationNumber($name);
				$migration->name    = $this->getMigrationName($name);
				$migration->path    = ! empty($this->path) && strpos($file, $this->path) !== 0
					? $this->path . $file
					: $file;

				// Add to migrations[version]
				$migrations[$migration->version] = $migration;
			}
		}

		ksort($migrations);

		return $migrations;
	}
public function findMigrations ( ) : array { $ migrations = [ ] ; // If $this->path contains a valid directory use it. if ( ! empty ( $ this -> path ) ) { helper ( 'filesystem' ) ; $ dir = rtrim ( $ this -> path , DIRECTORY_SEPARATOR ) . '/' ; $ files = get_filenames ( $ dir , true ) ; } // Otherwise use FileLocator to search files in the subdirectory of the namespace else { $ locator = Services :: locator ( true ) ; $ files = $ locator -> listNamespaceFiles ( $ this -> namespace , '/Database/Migrations/' ) ; } // Load all *_*.php files in the migrations path // We can't use glob if we want it to be testable.... foreach ( $ files as $ file ) { if ( substr ( $ file , - 4 ) !== '.php' ) { continue ; } // Remove the extension $ name = basename ( $ file , '.php' ) ; // Filter out non-migration files if ( preg_match ( $ this -> regex , $ name ) ) { // Create migration object using stdClass $ migration = new \ stdClass ( ) ; // Get migration version number $ migration -> version = $ this -> getMigrationNumber ( $ name ) ; $ migration -> name = $ this -> getMigrationName ( $ name ) ; $ migration -> path = ! empty ( $ this -> path ) && strpos ( $ file , $ this -> path ) !== 0 ? $ this -> path . $ file : $ file ; // Add to migrations[version] $ migrations [ $ migration -> version ] = $ migration ; } } ksort ( $ migrations ) ; return $ migrations ; }
Retrieves list of available migration scripts for one namespace

@return array    list of migrations as $version for one namespace
Retrieves list of available migration scripts for one namespace