original_string: public function resolvePath($path)
      {
          $path = Yii::getAlias($path);
  
          $pi = pathinfo($this->owner->{$this->attribute});
          $fileName = ArrayHelper::getValue($pi, 'filename');
          $extension = strtolower(ArrayHelper::getValue($pi, 'extension'));
  
          return preg_replace_callback('|\[\[([\w\_/]+)\]\]|', function ($matches) use ($fileName, $extension) {
              $name = $matches[1];
              switch ($name) {
                  case 'extension':
                      return $extension;
                  case 'filename':
                      return $fileName;
                  case 'basename':
                      return implode('.', array_filter([$fileName, $extension]));
                  case 'app_root':
                      return Yii::getAlias('@app');
                  case 'web_root':
                      return Yii::getAlias('@webroot');
                  case 'base_url':
                      return Yii::getAlias('@web');
                  case 'model':
                      $r = new \ReflectionClass($this->owner->className());
                      return lcfirst($r->getShortName());
                  case 'attribute':
                      return lcfirst($this->attribute);
                  case 'id':
                  case 'pk':
                      $pk = implode('_', $this->owner->getPrimaryKey(true));
                      return lcfirst($pk);
                  case 'id_path':
                      return static::makeIdPath($this->owner->getPrimaryKey());
                  case 'parent_id':
                      return $this->owner->{$this->parentRelationAttribute};
              }
              if (preg_match('|^attribute_(\w+)$|', $name, $am)) {
                  $attribute = $am[1];
                  return $this->owner->{$attribute};
              }
              if (preg_match('|^md5_attribute_(\w+)$|', $name, $am)) {
                  $attribute = $am[1];
                  return md5($this->owner->{$attribute});
              }
              return '[[' . $name . ']]';
          }, $path);
      }
code: public function resolvePath($path)
      {
          $path = Yii::getAlias($path);
  
          $pi = pathinfo($this->owner->{$this->attribute});
          $fileName = ArrayHelper::getValue($pi, 'filename');
          $extension = strtolower(ArrayHelper::getValue($pi, 'extension'));
  
          return preg_replace_callback('|\[\[([\w\_/]+)\]\]|', function ($matches) use ($fileName, $extension) {
              $name = $matches[1];
              switch ($name) {
                  case 'extension':
                      return $extension;
                  case 'filename':
                      return $fileName;
                  case 'basename':
                      return implode('.', array_filter([$fileName, $extension]));
                  case 'app_root':
                      return Yii::getAlias('@app');
                  case 'web_root':
                      return Yii::getAlias('@webroot');
                  case 'base_url':
                      return Yii::getAlias('@web');
                  case 'model':
                      $r = new \ReflectionClass($this->owner->className());
                      return lcfirst($r->getShortName());
                  case 'attribute':
                      return lcfirst($this->attribute);
                  case 'id':
                  case 'pk':
                      $pk = implode('_', $this->owner->getPrimaryKey(true));
                      return lcfirst($pk);
                  case 'id_path':
                      return static::makeIdPath($this->owner->getPrimaryKey());
                  case 'parent_id':
                      return $this->owner->{$this->parentRelationAttribute};
              }
              if (preg_match('|^attribute_(\w+)$|', $name, $am)) {
                  $attribute = $am[1];
                  return $this->owner->{$attribute};
              }
              if (preg_match('|^md5_attribute_(\w+)$|', $name, $am)) {
                  $attribute = $am[1];
                  return md5($this->owner->{$attribute});
              }
              return '[[' . $name . ']]';
          }, $path);
      }
code_tokens: public function resolvePath ( $ path ) { $ path = Yii :: getAlias ( $ path ) ; $ pi = pathinfo ( $ this -> owner -> { $ this -> attribute } ) ; $ fileName = ArrayHelper :: getValue ( $ pi , 'filename' ) ; $ extension = strtolower ( ArrayHelper :: getValue ( $ pi , 'extension' ) ) ; return preg_replace_callback ( '|\[\[([\w\_/]+)\]\]|' , function ( $ matches ) use ( $ fileName , $ extension ) { $ name = $ matches [ 1 ] ; switch ( $ name ) { case 'extension' : return $ extension ; case 'filename' : return $ fileName ; case 'basename' : return implode ( '.' , array_filter ( [ $ fileName , $ extension ] ) ) ; case 'app_root' : return Yii :: getAlias ( '@app' ) ; case 'web_root' : return Yii :: getAlias ( '@webroot' ) ; case 'base_url' : return Yii :: getAlias ( '@web' ) ; case 'model' : $ r = new \ ReflectionClass ( $ this -> owner -> className ( ) ) ; return lcfirst ( $ r -> getShortName ( ) ) ; case 'attribute' : return lcfirst ( $ this -> attribute ) ; case 'id' : case 'pk' : $ pk = implode ( '_' , $ this -> owner -> getPrimaryKey ( true ) ) ; return lcfirst ( $ pk ) ; case 'id_path' : return static :: makeIdPath ( $ this -> owner -> getPrimaryKey ( ) ) ; case 'parent_id' : return $ this -> owner -> { $ this -> parentRelationAttribute } ; } if ( preg_match ( '|^attribute_(\w+)$|' , $ name , $ am ) ) { $ attribute = $ am [ 1 ] ; return $ this -> owner -> { $ attribute } ; } if ( preg_match ( '|^md5_attribute_(\w+)$|' , $ name , $ am ) ) { $ attribute = $ am [ 1 ] ; return md5 ( $ this -> owner -> { $ attribute } ) ; } return '[[' . $ name . ']]' ; } , $ path ) ; }
docstring: Replaces all placeholders in path variable with corresponding values
  
  @param string $path
  @return string
docstring_tokens: Replaces all placeholders in path variable with corresponding values