The repository service must either implement
RepositoryInterface directly or extend
AbstractRepository, which provides some convenient boilerplate functionality.
The Repository Provider` must also provide the
The default implementation for this service is
DirectoryRepository. And unless you need to load migrations
for another source other than the filesystem, or from multiple folders at a time, the default implementation should
cover the needs of most migration libraries.
This service must be a instance of
League\Flysystem\FilesystemInterface and is used both to load the migrations and
also to create them (the latter with the migrations:create command). Its root must therefore point to the folder
where those migrations will be located.
By default the repository’s folder can be customized by end-users by using the configuration option “migrations.directory”.
This service must implement
FactoryInterface. It’s used to instantiate all migrations that are loaded by
the repository, which is useful for example if the migration class needs certain dependencies to be injected.
The default implementation used for this service is