示例#1
0
 /**
  * Required eine Variable, schlägt aber einen Default für die Config-Variable vor
  * 
  */
 public static function reqDefault($keys, $defaultValue)
 {
     try {
         $value = self::req($keys);
     } catch (MissingConfigVariableException $e) {
         if (is_string($defaultValue) && !Preg::match($defaultValue, '/^(\'|")/') && !self::NEW_ARRAY) {
             $defaultValue = "'" . $defaultValue . "'";
         }
         $e->setDefault($defaultValue);
         throw $e;
     }
     return $value;
 }
示例#2
0
 /**
  * Gibt den (lcfirst) LowerCase Name für einen Klassennamen zurück
  *
  * OID => oid
  * OIDMeta => oidMeta
  * SomeClassName => someClassName
  * 
  * @param $className ohne Namespace
  */
 public function propertyName($className)
 {
     if (!is_string($className) || mb_strpos($className, '\\') !== FALSE) {
         throw new \InvalidArgumentException(sprintf("ClassName %s kann nicht zu propertyName umgewandelt werden. Er muss ein String sein und darf nur der ClassName sein", \Psc\Code\Code::varInfo($className)));
     }
     // 1. Fall: Klasse ist CamelCase. wichtig ist hierbei dass das erste a klein ist
     if (Preg::match($className, '/^[A-Z]{1}[a-z]{1}/') > 0) {
         return lcfirst($className);
     }
     // 2. Fall: Klassename ist eine Abkürzung. Z. B. OID (aka: der ganze String sind Großbuchstaben)
     if (Preg::match($className, '/^[A-Z]+$/')) {
         return mb_strtolower($className);
     }
     // 3. Fall: KlassenName ist mixed sowas wie OIDMeta
     // teile auf in m[1] = 'OID' m[2] = 'Meta'
     $m = array();
     if (Preg::match($className, '/^([A-Z]+)([A-Z]{1}[a-z]{1}.*)$/', $m) > 0) {
         return mb_strtolower($m[1]) . $m[2];
     }
     throw new \RuntimeException(sprintf("Kein matching Case für ClassName '%s'", $className));
 }