1. <?php
  2. /**
  3. * Replaces queue values for a local utility with a dry-run mode.
  4. *
  5. * @param string $queue_name The name of the queue to modify.
  6. * @param array $dry_run_values An associative array of queue values to replace.
  7. * Example: ['some_field' => 'dry_run_value', 'another_field' => 'another_value']
  8. * @return bool True on success, false on failure.
  9. */
  10. function setQueueDryRunMode(string $queue_name, array $dry_run_values): bool
  11. {
  12. // Validate inputs
  13. if (empty($queue_name)) {
  14. error_log("Error: Queue name cannot be empty.");
  15. return false;
  16. }
  17. if (!is_array($dry_run_values)) {
  18. error_log("Error: dry_run_values must be an array.");
  19. return false;
  20. }
  21. // Use a configuration file or database to store queue settings.
  22. // This example simulates a simple data structure. Replace with your actual storage.
  23. $queue_settings = getQueueSettings();
  24. if (!$queue_settings) {
  25. error_log("Error: Could not retrieve queue settings.");
  26. return false;
  27. }
  28. // Check if the queue exists in the settings.
  29. if (!isset($queue_settings[$queue_name])) {
  30. error_log("Error: Queue '$queue_name' not found in settings.");
  31. return false;
  32. }
  33. $settings = $queue_settings[$queue_name];
  34. // Modify the queue settings.
  35. foreach ($dry_run_values as $field => $value) {
  36. $settings[$field] = $value;
  37. }
  38. // Save the updated settings. Replace with your actual saving mechanism.
  39. if (!saveQueueSettings($queue_name, $settings)) {
  40. error_log("Error: Failed to save queue settings.");
  41. return false;
  42. }
  43. return true;
  44. }
  45. /**
  46. * Retrieves queue settings from a configuration file or database.
  47. * This is a placeholder function. Implement your actual data retrieval logic here.
  48. * @param string $queue_name The name of the queue.
  49. * @return array|null The queue settings as an associative array, or null if not found.
  50. */
  51. function getQueueSettings(): ?array
  52. {
  53. //Simulate data retrieval
  54. $settings = [
  55. 'my_queue' => [
  56. 'some_field' => 'default_value',
  57. 'another_field' => 'default_value2'
  58. ],
  59. 'another_queue' => [
  60. 'field1' => 'initial',
  61. 'field2' => 'initial2'
  62. ]
  63. ];
  64. if(isset($settings[$queue_name])){
  65. return $settings[$queue_name];
  66. }else{
  67. return null;
  68. }
  69. }
  70. /**
  71. * Saves queue settings to a configuration file or database.
  72. * This is a placeholder function. Implement your actual saving logic here.
  73. * @param string $queue_name The name of the queue.
  74. * @param array $settings The queue settings.
  75. * @return bool True on success, false on failure.
  76. */
  77. function saveQueueSettings(string $queue_name, array $settings): bool
  78. {
  79. //Simulate saving
  80. //In a real application, this would write to a file or database.
  81. global $queue_settings;
  82. $queue_settings[$queue_name] = $settings;
  83. return true;
  84. }
  85. // Example usage:
  86. $dryRunValues = [
  87. 'some_field' => 'dry_run',
  88. 'another_field' => 'dry_run_value2'
  89. ];
  90. if (setQueueDryRunMode('my_queue', $dryRunValues)) {
  91. echo "Successfully set dry-run mode for my_queue.\n";
  92. } else {
  93. echo "Failed to set dry-run mode.\n";
  94. }
  95. ?>

Add your comment