1
resposta

Exercicio __set implementação

Bem no meu ficou assim

<?php

namespace alura\banco\model;

class Endereco
{
    private string $cidade;
    private string $bairro;
    private string $rua;
    private string $numero;

    public function __construct(string $cidade, string $bairro, string $rua, string $numero )
    {
        $this->cidade=$cidade;
        $this->bairro=$bairro;
        $this->rua=$rua;
        $this->numero=$numero;
    }
    public function getcidade() :string
    {
        return $this->cidade;
    }
    public function getbairro() :string
    {
        return $this->bairro;
    }
    public function getrua() :string
    {
        return $this->rua;
    }
    public function getnumero() :string
    {
        return $this->numero;
    }
    public function __toString()
    {
        return "{$this->rua}, {$this->numero}, {$this->bairro}, {$this->cidade}";
    }
    public function __get($name)
    {
        $metodo = 'get'.$name;
        return $this->$metodo();
    }
    public function __set($name, $value)
    {
        $name = strtolower($name);
        return $this->$name = $value;
    }
}

Como podem ver não uso 'recupera' e sim 'get' e meus métodos estão todos em minúsculas, para o método SET apenas coloquei todos os caracteres de entrada para minúsculas e depois reatribui o valor da variavél chamada no return. O programa teste está assim:

<?php

require_once 'src\autoload.php';
use alura\banco\model\Endereco;

$umendereco = new Endereco('UmaCidade', 'UmBairro', 'UmaRuaQualquer', 'UmNumero');

echo $umendereco -> rua.PHP_EOL;
$umendereco -> rua = 'OutraRuaQualquer';
echo $umendereco -> rua;

Espero que fucione pra vocês.

1 resposta

Oi Samuel, como vai?

Parabéns pelo empenho na resolução dos desafios propostos!

Lembre-se que é sempre importante definirmos os tipos dos parâmetros e o tipo do retorno de nossos métodos.

Seguindo as recomendações das PSRs do PHP, o ideal é que nossos métodos não sejam declarados apenas em letras minúsculas, mas sim utilizando a convenção camelCase. A convenção camelCase consite em deixar a primeira letra de cada palavra (de um termo composto) em maiúsculo, com exceção do primeiro termo. Por exemplo:

public function getCidade() :string
{
    return $this->cidade;
}

As PSRs são recomendações criadas pelo PHP-FIG(PHP Framework Interop Group), elas são agrupadas em PHP Standard Recommendation (PSR). Uma PSR possui recomendações sobre um tema específico, como por exemplo, a padronização da declaração de métodos, conforme apresentei acima.

Para te auxiliar melhor, vou deixar o link da PSR-1 do PHP, onde será possível estudar sobre as recomendações iniciais do PHP.

PSR-1 do PHP

Caso tenha quaisquer comentários ou dúvidas a respeito de alguma aula ou desafio, pode postar aqui no fórum que vamos te responder!

Abraços e bons estudos!