Refactor Migrator. Create execute() method in adapter that calls the ops (e.g. migration::up() and adapter::up()). Create SimpleAdapter to implement execute. In this way the adapter is the only one that has intimate knowledge about operations (e.g. if migration run in a transaction). The adapter can perform extra work like beforeUp/afterUp/beforeDown/afterDown without over engineering phpmig and polluting migration files with boilerplate.
Merge branch 'master' of github.com:edisonnica/phpmig