Minha IDE: PHPStorm
Código da Exception seguindo a aula:
<?php
namespace Alura\Banco\Modelo\Conta;
class SaldoInsuficienteException extends \DomainException
{
}
Código Conta:
<?php
namespace Alura\Banco\Modelo\Conta;
abstract class Conta
{
private $titular;
protected $saldo;
private static $numeroDeContas = 0;
public function __construct(Titular $titular)
{
$this->titular = $titular;
$this->saldo = 0;
self::$numeroDeContas++;
}
public function __destruct()
{
self::$numeroDeContas--;
}
public function saca(float $valorASacar): void
{
$tarifaSaque = $valorASacar * $this->percentualTarifa();
$valorSaque = $valorASacar + $tarifaSaque;
if ($valorSaque > $this->saldo) {
throw new SaldoInsuficienteException();
}
$this->saldo -= $valorSaque;
}
public function deposita(float $valorADepositar): void
{
if ($valorADepositar < 0) {
echo "Valor precisa ser positivo";
return;
}
$this->saldo += $valorADepositar;
}
public function recuperaSaldo(): float
{
return $this->saldo;
}
public function recuperaNomeTitular(): string
{
return $this->titular->recuperaNome();
}
public function recuperaCpfTitular(): string
{
return $this->titular->recuperaCpf();
}
public static function recuperaNumeroDeContas(): int
{
return self::$numeroDeContas;
}
abstract protected function percentualTarifa(): float;
}