<?php
class Pessoa
{
private string $nome;
private Cpf $cpf;
public function __construct(string $nome, Cpf $cpf)
{
$this->nome = $nome;
$this->cpf = $cpf;
}
public function recuperarNome(): string
{
return $this->nome;
}
public function recuperarCpf(): Cpf
{
return $this->cpf;
}
public function validaNomeTitular(string $nomeTitular)
{
if(strlen($nomeTitular) < 5){
echo 'Nome precisa ter pelo menos 5 caracteres';
exit();
}
}
}
<?php
class Funcionario extends Pessoa
{
private string $cargo;
public function __construct(string $nome, Cpf $cpf, string $cargo)
{
$this->nome = $nome;
$this->cpf = $cpf;
$this->cargo = $cargo;
}
public function recuperarCargo(string $cargo)
{
return $this->cargo;
}
}
<?php
class Titular extends Pessoa
{
private Endereco $endereco;
public function __construct(Cpf $cpf, string $nome, Endereco $endereco)
{
$this->validaNomeTitular($nome);
$this->cpf = $cpf;
$this->nome = $nome;
$this->endereco = $endereco;
}
public function recuperarEndereco(): Endereco
{
return $this->endereco;
}
}