Olá. Percebi que muitos exemplos estão com erros de sintaxe, por exemplo, no curso de Design Patterns de PHP, Parte 1 na Aula 3, atividade "Desconto por Venda Casada", ao "Analisar minha resposta", dentro do if do método calcula, está faltando o $this:
public function calcula(Orcamento $orcamento) {
if(aconteceuVendaCasadaEm($orcamento)) return $orcamento->getValor() * 0.05;
else return $proximo->calcula($orcamento);
}
Logo abaixo, no mesmo exercício, há uma função com tipo de retorno "void", sem a palavra "function", o que gerará um erro de sintaxe:
public void setProximo(Desconto $proximo) {
$this->proximo = $proximo;
}
Acho que esse curso precisa de uma revisão, pois foi claramente copiado de um curso de Java ou algo do tipo. O código de exemplo deveria ter sido ao menos testado, pois é o mínimo que se espera de um curso que você paga para aprender.