Ejemplo n.º 1
0
 /**
  * Escapes a phrase with () or "" depending on type
  *
  * @param Phrase[]    $phrases
  * @param null|string $type (any|all|null) any = (my phrase), all = "my phrase", null = do nothing
  *
  * @return array
  */
 private function escapePhrasesForExpression(array $phrases, $type = null)
 {
     $return = [];
     switch ($type) {
         case 'any':
             $s = '(%s)';
             break;
         case 'all':
             $s = '"%s"';
             break;
         default:
             $s = '%s';
     }
     foreach ($phrases as $phrase) {
         if (!$phrase instanceof Phrase) {
             $phrase = new Phrase($phrase);
         }
         if ($phrase->isEmpty()) {
             continue;
         }
         if ($phrase->isWordGroup() && !$phrase->isPhrase()) {
             $return[] = sprintf($s, $phrase);
         } else {
             $return[] = (string) $phrase;
         }
     }
     return $return;
 }