PHP: aulas de amizade e função/classe de chamadas ungreedy
-
22-09-2019 - |
Pergunta
Existe alguma maneira de ter a função do chamador com outra coisa que debug_backtrace ()?
Estou procurando uma maneira menos gananciosa de simular escopos como amigo ou interno.
Digamos que eu tenho uma classe A e uma classe B.
Até agora, eu tenho usado debug_backtrace()
, que é muito ganancioso (IMHO).
Eu pensei em algo assim:
<?php
class A
{
public function __construct(B $callerObj) {}
}
class B
{
public function someMethod()
{
$obj = new A($this);
}
}
?>
Pode ser bom se você quiser limitá -lo a uma classe específica, mas digamos que eu tenho 300 aulas e quero limitá -lo a 25 delas?
Uma maneira pode estar usando uma interface para agregar:
public function __construct(CallerInterface $callerObj)
Mas ainda é um código feio.
Além disso, você não pode Use esse truque com estático Aulas.
Tem alguma ideia melhor?
Solução
Então, depois de ir a Stark Raving louco por não ser capaz de resolver isso, decidi abrir a lista no SharePoint Designer e adicionar a coluna a partir daí..... e funcionou sem problemas.A mesma fórmula que não deseja trabalhar através da interface de configurações normais da Biblioteca Lista do SharePoint funcionou perfeitamente via SharePoint Designer.Eu não farei perguntas;Eu só vou aceitar
Outras dicas
O PHP realmente não fornece uma maneira elegante de lidar com isso. Sem querer iniciar um idioma Flamewar, vou sugerir com cuidado que suas habilidades e necessidades de design provavelmente excederam as limitações da sua ferramenta. O PHP é uma linguagem de script leve que teve muitas características pseudo-operação aparafusadas, mas, em sua essência, nunca foi projetado para a elegante arquitetura corporativa.