From 5c001df3802cf906951102596f9e1d56b876d873 Mon Sep 17 00:00:00 2001 From: javiexin Date: Sat, 15 Jul 2017 18:39:39 +0200 Subject: [ticket/15274] Allow "custom" migrations to use parameters Add the possibility to have custom migrations with parameters, allowing the use of a single function for several uses. PHPBB3-15274 --- tests/dbal/migration/if_params.php | 44 ++++++++++++++++++++++++++++++++++ tests/dbal/migration/recall_params.php | 42 ++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 tests/dbal/migration/if_params.php create mode 100644 tests/dbal/migration/recall_params.php (limited to 'tests/dbal/migration') diff --git a/tests/dbal/migration/if_params.php b/tests/dbal/migration/if_params.php new file mode 100644 index 0000000000..78550d7168 --- /dev/null +++ b/tests/dbal/migration/if_params.php @@ -0,0 +1,44 @@ + +* @license GNU General Public License, version 2 (GPL-2.0) +* +* For full copyright and license information, please see +* the docs/CREDITS.txt file. +* +*/ + +class phpbb_dbal_migration_if_params extends \phpbb\db\migration\migration +{ + function update_schema() + { + return array(); + } + + function update_data() + { + return array( + array('if', array( + true, + array('custom', array(array(&$this, 'test'), array('true'))), + )), + array('if', array( + false, + array('custom', array(array(&$this, 'test'), array('false'))), + )), + ); + } + + function test($param) + { + global $migrator_test_if_true_failed, $migrator_test_if_false_failed; + + $var = 'migrator_test_if_' . $param . '_failed'; + + ${$var} = !${$var}; + } + +} diff --git a/tests/dbal/migration/recall_params.php b/tests/dbal/migration/recall_params.php new file mode 100644 index 0000000000..b7cc78d514 --- /dev/null +++ b/tests/dbal/migration/recall_params.php @@ -0,0 +1,42 @@ + +* @license GNU General Public License, version 2 (GPL-2.0) +* +* For full copyright and license information, please see +* the docs/CREDITS.txt file. +* +*/ + +class phpbb_dbal_migration_recall_params extends \phpbb\db\migration\migration +{ + function update_schema() + { + return array(); + } + + function update_data() + { + return array( + array('custom', array(array(&$this, 'test_call'), array(5))), + ); + } + + // This function should be called 5 times + function test_call($times, $input) + { + global $migrator_test_call_input; + + $migrator_test_call_input = (int) $input; + + if ($migrator_test_call_input < $times) + { + return ($migrator_test_call_input + 1); + } + + return; + } +} -- cgit v1.2.1 From 5a0c9763d114e35c4c7a96518ac367059127f729 Mon Sep 17 00:00:00 2001 From: javiexin Date: Sun, 16 Jul 2017 11:58:54 +0200 Subject: [ticket/15274] Allow "custom" migrations to use parameters Remove references in migration tool. PHPBB3-15274 --- tests/dbal/migration/if.php | 4 ++-- tests/dbal/migration/if_params.php | 4 ++-- tests/dbal/migration/recall.php | 2 +- tests/dbal/migration/recall_params.php | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) (limited to 'tests/dbal/migration') diff --git a/tests/dbal/migration/if.php b/tests/dbal/migration/if.php index 481250ea77..83fba1cbd4 100644 --- a/tests/dbal/migration/if.php +++ b/tests/dbal/migration/if.php @@ -23,11 +23,11 @@ class phpbb_dbal_migration_if extends \phpbb\db\migration\migration return array( array('if', array( true, - array('custom', array(array(&$this, 'test_true'))), + array('custom', array(array($this, 'test_true'))), )), array('if', array( false, - array('custom', array(array(&$this, 'test_false'))), + array('custom', array(array($this, 'test_false'))), )), ); } diff --git a/tests/dbal/migration/if_params.php b/tests/dbal/migration/if_params.php index 78550d7168..7280088ddc 100644 --- a/tests/dbal/migration/if_params.php +++ b/tests/dbal/migration/if_params.php @@ -23,11 +23,11 @@ class phpbb_dbal_migration_if_params extends \phpbb\db\migration\migration return array( array('if', array( true, - array('custom', array(array(&$this, 'test'), array('true'))), + array('custom', array(array($this, 'test'), array('true'))), )), array('if', array( false, - array('custom', array(array(&$this, 'test'), array('false'))), + array('custom', array(array($this, 'test'), array('false'))), )), ); } diff --git a/tests/dbal/migration/recall.php b/tests/dbal/migration/recall.php index c0333b084d..e065b5c4d8 100644 --- a/tests/dbal/migration/recall.php +++ b/tests/dbal/migration/recall.php @@ -21,7 +21,7 @@ class phpbb_dbal_migration_recall extends \phpbb\db\migration\migration function update_data() { return array( - array('custom', array(array(&$this, 'test_call'))), + array('custom', array(array($this, 'test_call'))), ); } diff --git a/tests/dbal/migration/recall_params.php b/tests/dbal/migration/recall_params.php index b7cc78d514..ee0f04c09d 100644 --- a/tests/dbal/migration/recall_params.php +++ b/tests/dbal/migration/recall_params.php @@ -21,7 +21,7 @@ class phpbb_dbal_migration_recall_params extends \phpbb\db\migration\migration function update_data() { return array( - array('custom', array(array(&$this, 'test_call'), array(5))), + array('custom', array(array($this, 'test_call'), array(5))), ); } -- cgit v1.2.1