Como documentar métodos mágicos (_call e _callStatic) para IDEs
Depois de muitos anos felizes codificando no notepad ++ e sublime, fui aconselhado a dar uma IDE ao PHP. Estou experimentando phpStorm e parece legal. O preenchimento de código e a documentação são ótimos recursos, mas não funcionam quando métodos mágicos são usados.Existe uma solução para o phpStorm entender o que está acontecendo nos métodos mágicos?
Nossa situação é algo assim:
abstract class a {
public static function __callStatic($method,$args)
{
if(strpos($method,"get_by_") === 0)
{
//do stuff
} elseif(strpos($method,"get_first_by_") === 0) {
//do stuff
} elseif($method == "get_all") {
//do stuff
}
}
}
class b extends a {
// some more stuff
}
b::get_by_user_id(27);
b::get_first_by_id(156);
b::get_all();
O método magic callStatic nos permite obter uma coleção de objetos através de 1 ou mais argumentos que compõem a chamada de função.
Vejo que há uma instrução @method para uso nesses casos, mas o phpStorm está captando apenas a primeira dessas instruções. Além disso, eu só posso definir o tipo de retorno para misturado onde, como eu prefiro ser capaz de configurá-lo como qualquer classe que isso foi chamado (b no meu exemplo).
Qualquer idéia ou sugestão seria muito gratamente recebida, obrigado.