z7zmey / php-parser

PHP parser written in Go

Home Page:https://php-parser.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Complex (curly) syntax for string interpolation not working in pretty printer

truestblue opened this issue · comments

commented

Issue Description EDITED

abstract class AbstractClass
  {
    // Force Extending class to define this method
    abstract protected function getValue();
    abstract protected function prefixValue($prefix);
    
    // Common method
    public function printOut()
      {
        print $this->getValue() . "\n";
      }
  }

class ConcreteClass1 extends AbstractClass
  {
    protected function getValue()
      {
        return "ConcreteClass1";
      }
    
    public function prefixValue($prefix)
      {
        return "{$prefix}ConcreteClass1";
      }
  }

$class1 = new ConcreteClass1;
$class1->printOut();
echo $class1->prefixValue('FOO_') . "\n";

// console output

{
	abstract protected function getValue();
	abstract protected function prefixValue($prefix);
	public function printOut()
	{
		print($this->getValue() . "\n");
	}
}
class ConcreteClass1 extends AbstractClass
{
	protected function getValue()
	{
		return "ConcreteClass1";
	}
	public function prefixValue($prefix)
	{
		return "$prefixConcreteClass1";
	}
}
$class1 = new ConcreteClass1;
$class1->printOut();
echo $class1->prefixValue('FOO_') . "\n";

Expected outputl:
ConcreteClass1
FOO_ConcreteClass1

Actualy:
ConcreteClass1

commented

Thanks-- super quick.