You are here

function features_override_var_export in Features Override 6.2

Same name and namespace in other branches
  1. 7.2 features_override.export.inc \features_override_var_export()

Drupal-friendly var_export().

Parameters

$var: The variable to export.

$prefix: A prefix that will be added at the beginning of every lines of the output.

Return value

The variable exported in a way compatible to Drupal's coding standards.

2 calls to features_override_var_export()
features_overrides_features_export_render in ./features_override.features.inc
Implements hook_features_export_render().
features_override_features_export_render_addition in ./features_override.export.inc
Renders the addition/change to an element.

File

./features_override.export.inc, line 450
Helper function to export features overrides.

Code

function features_override_var_export($var, $prefix = '') {
  if (is_array($var) || is_object($var)) {

    // Special causing array so calls features_override_var_export instead of
    // features_var_export.
    if (is_array($var)) {
      if (empty($var)) {
        $output = 'array()';
      }
      else {
        $output = "array(\n";
        foreach ($var as $key => $value) {

          // Using normal var_export on the key to ensure correct quoting.
          $output .= "  " . var_export($key, TRUE) . " => " . features_override_var_export($value, '  ', FALSE) . ",\n";
        }
        $output .= ')';
      }
    }
    else {
      if (method_exists($var, 'export')) {
        $output = $var
          ->export();
      }
      elseif (get_class($var) === 'stdClass') {
        $output = '(object) ' . features_override_var_export((array) $var, $prefix);
      }
      elseif (!method_exists($var, '__set_state')) {

        // Ugly, but custom object with no clue how to export.without
        // __set_state class and var_export produces unusable code.
        $output = 'unserialize(' . var_export(serialize($var), TRUE) . ')';
      }
      else {
        $output = var_export($var, TRUE);
      }
    }
  }
  else {
    module_load_include('inc', 'features', 'features.export');
    $output = features_var_export($var);
  }
  if ($prefix) {
    $output = str_replace("\n", "\n{$prefix}", $output);
  }
  return $output;
}