blob: c476069e36baaf251636769d652f81aff41f5766 [file] [log] [blame]
<?php
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
trait |>CLASS:ExampleTrait<| {
const |>FIELD,STATIC:IMPLICIT_PUBLIC<| = 'ExampleTrait implicit public';
public const |>FIELD,STATIC:PUBLIC<| = 'ExampleTrait public';
protected const |>FIELD,STATIC:PROTECTED<| = 'ExampleTrait protected';
private const |>FIELD,STATIC:PRIVATE<| = 'ExampleTrait private';
private const |>FIELD,STATIC:UNUSED_PRIVATE<| = 'ExampleTrait private'; // don't check
public function |>METHOD:method<|(): void {
echo self::|>FIELD,STATIC:IMPLICIT_PUBLIC<| . PHP_EOL;
echo self::|>FIELD,STATIC:PUBLIC<| . PHP_EOL;
echo static::|>FIELD,STATIC:PRIVATE<| . PHP_EOL;
echo $this::|>FIELD,STATIC:PROTECTED<| . PHP_EOL;
}
}
trait |>CLASS:ExampleTrait2<| {
use ExampleTrait;
#[TestAttribute(|>CUSTOM2:test: <|"test")]
const |>FIELD,STATIC:IMPLICIT_PUBLIC2<| = 'ExampleTrait2 implicit public';
public const |>FIELD,STATIC:PUBLIC2<| = 'ExampleTrait2 public';
protected const |>FIELD,STATIC:PROTECTED2<| = 'ExampleTrait2 protected';
private const |>FIELD,STATIC:PRIVATE2<| = 'ExampleTrait2 private';
public function |>METHOD:test<|(): void {
echo self::|>FIELD,STATIC:IMPLICIT_PUBLIC<| . PHP_EOL;
echo self::|>FIELD,STATIC:PUBLIC<| . PHP_EOL;
echo self::|>FIELD,STATIC:PROTECTED<| . PHP_EOL;
echo self::|>FIELD,STATIC:PRIVATE<| . PHP_EOL;
echo self::|>FIELD,STATIC:IMPLICIT_PUBLIC2<| . PHP_EOL;
echo self::|>FIELD,STATIC:PUBLIC2<| . PHP_EOL;
echo self::|>FIELD,STATIC:PROTECTED2<| . PHP_EOL;
echo self::|>FIELD,STATIC:PRIVATE2<| . PHP_EOL;
}
}
class |>CLASS:ExampleClass<| {
use ExampleTrait;
const |>FIELD,STATIC:CON<| = "CON";
public function |>METHOD:test<|(): void {
echo self::|>FIELD,STATIC:IMPLICIT_PUBLIC<| . PHP_EOL;
echo self::|>FIELD,STATIC:PUBLIC<| . PHP_EOL;
echo self::|>FIELD,STATIC:PRIVATE<| . PHP_EOL;
echo self::|>FIELD,STATIC:PROTECTED<| . PHP_EOL;
}
}
class |>CLASS:Child<| extends ExampleClass {
public function |>METHOD:test<|(): void {
echo parent::|>FIELD,STATIC:PUBLIC<| . PHP_EOL;
echo parent::|>FIELD,STATIC:PROTECTED<| . PHP_EOL;
}
}
$i = new ExampleClass();
$i->|>CUSTOM1:test<|();
$i->|>CUSTOM1:method<|();
$c = new Child();
$c->|>CUSTOM1:test<|();