Example #1
0
 /**
  * Encode configuration object into RAW string (PHP class).
  *
  * @param \Grav\Common\Config $var
  * @return string
  * @throws \RuntimeException
  */
 protected function encode($var)
 {
     if (!$var instanceof \Grav\Common\Config) {
         throw new \RuntimeException('Provided data is not configuration');
     }
     // Build the object variables string
     $vars = array();
     $options = $var->toArray();
     foreach ($options as $k => $v) {
         if (is_int($v)) {
             $vars[] = "\tpublic \$" . $k . " = " . $v . ";";
         } elseif (is_bool($v)) {
             $vars[] = "\tpublic \$" . $k . " = " . ($v ? 'true' : 'false') . ";";
         } elseif (is_scalar($v)) {
             $vars[] = "\tpublic \$" . $k . " = '" . addcslashes($v, '\\\'') . "';";
         } elseif (is_array($v) || is_object($v)) {
             $vars[] = "\tpublic \$" . $k . " = " . $this->encodeArray((array) $v) . ";";
         }
     }
     $vars = implode("\n", $vars);
     return "<?php\nnamespace Grav;\n\nclass Config extends \\Grav\\Common\\Config {\n {$vars}\n}";
 }