php-src/Zend/tests/traits/bug55554e.phpt
Stefan Marr e14354af21 Fixed Bug #55554 (Legacy constructors not handled properly) [TRAITS] [DOC]
# The handling of legacy constructors defined by traits was corrected.
# They are now properly registered and used on instantiation.
# The situation for conflicting legacy and __construct constructors is
# mostly identical. If they are defined in the class, they override conflicts
# and do not collide. However, in case different styles are mixed, between
# class and trait definition, we assume a programmer's mistake and report
# a collision.
#
# BTW: +1 for all the fixed tests! `make test` is fun again.
2011-10-09 11:13:27 +00:00

30 lines
586 B
PHP

--TEST--
Bug #55137 (Legacy constructor not registered for class)
--FILE--
<?php
// Ensuring that the collision still occurs as expected.
trait TC1 {
public function ReportCollision() {
echo "TC1 executed\n";
}
}
trait TC2 {
public function ReportCollision() {
echo "TC1 executed\n";
}
}
class ReportCollision {
use TC1, TC2;
}
echo "ReportCollision: ";
$o = new ReportCollision;
--EXPECTF--
Fatal error: Trait method ReportCollision has not been applied, because there are collisions with other trait methods on ReportCollision in %s on line %d