예제 #1
0
 /**
  * Wraps the service conditionals.
  *
  * @param string $value
  * @param string $code
  *
  * @return string
  */
 private function wrapServiceConditionals($value, $code)
 {
     if (!($services = ehough_iconic_ContainerBuilder::getServiceConditionals($value))) {
         return $code;
     }
     $conditions = array();
     foreach ($services as $service) {
         $conditions[] = sprintf("\$this->has('%s')", $service);
     }
     // re-indent the wrapped code
     $code = implode("\n", array_map(array($this, '_callbackWrapServiceConditionals'), explode("\n", $code)));
     return sprintf("        if (%s) {\n%s        }\n", implode(' && ', $conditions), $code);
 }