1. <?php
  2. /**
  3. * Extends dataset logic with fallback.
  4. *
  5. * @param array $data Existing dataset data.
  6. * @param array $extension Data to extend the dataset with.
  7. * @param callable $fallback Fallback function to use if extension fails.
  8. * @return array Extended dataset data.
  9. */
  10. function extendDataset(array $data, array $extension, callable $fallback = null): array
  11. {
  12. $extendedData = $data; // Start with the existing data
  13. try {
  14. // Attempt to extend the dataset with the provided extension.
  15. $extendedData = array_merge($extendedData, $extension);
  16. } catch (\Exception $e) {
  17. // If extension fails, use the fallback function.
  18. if ($fallback) {
  19. $extendedData = $fallback($data, $extension);
  20. } else {
  21. // If no fallback, return the original data.
  22. // Or handle the error as appropriate for your application.
  23. error_log("Dataset extension failed: " . $e->getMessage());
  24. return $data;
  25. }
  26. }
  27. return $extendedData;
  28. }
  29. /**
  30. * Example fallback function. Replace with your specific logic.
  31. * @param array $data
  32. * @param array $extension
  33. * @return array
  34. */
  35. function exampleFallback(array $data, array $extension): array
  36. {
  37. //Example: Just return the original data if extension fails.
  38. return $data;
  39. }
  40. ?>

Add your comment