PHP-parser

2019-05-22 11:16:52 阅读:6 编辑
 /**
     * 构造一个属性
     *
     * @param $flag
     * @param $name
     * @param $value
     * @return array
     */
    private function generateProperty ($flag, $name, $value)
    {$factory = new BuilderFactory ();
        $property = $factory->property ($name);
        if ($flag == self::MODIFIER_PROTECTED) {$property = $property->makeProtected ();} else if ($flag == self::MODIFIER_PRIVATE) {$property = $property->makePrivate ();} else if ($flag == self::MODIFIER_PUBLIC) {$property = $property->makePublic ();}
        if (!is_null ($value)) {$property = $property->setDefault ($value);
        }

        $node = $factory->namespace ('NameSpace2')
            ->addStmt ($factory->class ('SomeOtherClass')
                ->addStmt ($property)
            )
            ->getNode ();
        $stmts = array ($node);
        return $stmts [0]->stmts [0]->stmts [0];
    }