A small problem I noticed. For a better OOP design, method/constructor signatures should stay the same, or extend. This would require any extension of MigrationBase, Migration or DynamicMigration to include at least:
public function __construct($group = null)
(Additionally, I think PHP 5.4 will give strict errors for omitting $group.)
But this causes problems in client code, because a MigrateGroup object is expected, but an array is actually being passed in. Later, calling $foo->getGroup()->getName() fails.
Obviously an easy workaround for now is to not pass the $group variable to the parent constructor. Possible to use type-hinting and also fix where the array is being passed in?