Как черта PHP может знать, когда функция была псевдонимом или переименована?

У меня есть черта PHP, которая используется во многих классах. Некоторые из этих классов решили переименовать функции черты. Один из методов в черте хотел бы вызвать сам. Как это может назвать себя? Как он может узнать, что было переименовано?

<?php

Trait TestTrait
{
protected function testFunction()
{
// Calls TestClass function
// instead of the trait function.

$this->testFunction();

// Calls TestClass function
// instead of the trait function.

static::testFunction();

// Fatal error: Call to protected method
// TestTrait::testFunction() from context 'TestClass'

TestTrait::testFunction(); # __METHOD__

// This works but requires that
// the trait know that the function
// has been renamed. How can we
// determine if has been renamed?

$this->traitTestFunction();
}
}

class TestClass
{
use TestTrait
{
testFunction as traitTestFunction;
}

function testFunction()
{
$this->traitTestFunction();
}
}

$test = new TestClass();
$test->testFunction();

Связанные с: Кто-нибудь знает магическую константу PHP для переопределенного имени черты в классе?

0

Решение

Выстрел в темноте, но так как вы не опубликовали то, что вы пытались …

Я думаю, что вы ищете, __METHOD__

В вашей функции поезда вы можете позвонить МЕТОД чтобы получить текущий псевдоним.

if (__METHOD__ == "testFunction") { //has not been renamed
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]