| <?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<|(); |