<?php
trait FooTrait {
protected $foo = 'configuration';
abstract protected function bar();
protected function doThing() {
return $this->foo;
}
}
class Foo {
use FooTrait;
public function thing() {
echo $this->doThing();
}
}
class Bar extends Foo {
protected $foo = 'asdf';
public function thing() {
echo $this->doThing();
}
}
$foo = new Foo();
$foo->thing();
$bar = new Bar();
$bar->thing();
Fatal error: Class Foo contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Foo::bar) in /in/FMXnr on line 10
Process exited with code 255.
Fatal error: Class Foo contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Foo::bar) in /in/FMXnr on line 15
Process exited with code 255.