Pular para o conteúdo principal

PHP - Encapsulamento e modificadores de acesso

Neste post, vamos mostrar como usar encapsulamento e modificadores de acesso em PHP, incluindo exemplos práticos (você pode ver o que já publicamos sobre o PHP aqui).


Encapsulamento em PHP

Encapsulamento é a prática de esconder o estado e comportamento interno de um objeto do mundo externo e fornecer uma interface pública para interagir com o objeto. Isso pode ser alcançado usando modificadores de acesso, como "public", "private" e "protected". Por exemplo, a seguinte classe "ContaBancaria" encapsula a propriedade "saldo":

    
        class ContaBancaria {

            private $saldo;
        
            public function __construct($saldoInicial) {
        
                $this->saldo = $saldoInicial;
            }
        
            public function depositar($valor) {
        
                $this->saldo += $valor;
            }
        
            public function sacar($valor) {
        
                if ($this->saldo >= $valor) {
        
                    $this->saldo -= $valor;
                    return true;
                }
                return false;
            }
        
            public function verSaldo() {
        
                return $this->saldo;
            }
        }        
    


Modificadores de acesso em PHP

Os modificadores de acesso "public", "private" e "protected" são usados para controlar o acesso às propriedades e métodos de uma classe como visto anteriormten, sendo "public" para permitir que as propriedades e métodos sejam acessados de qualquer lugar, "private" para permitir que as propriedades e métodos sejam acessados apenas dentro da própria classe e "protected" para permitir que as propriedades e métodos sejam acessados apenas dentro da própria classe e suas classes derivadas.

A classe "ContaBancaria" vista anteriormente usa o modificador de acesso "private" para controlar o acesso à propriedade "saldo", o que significa que ela só pode ser acessada dentro da própria classe, enquanto os métodos "depositar", "sacar" e "verSaldo" são públicos e podem ser acessados de qualquer lugar, garantindo que o saldo só será alterado a partir dos métodos com essa finalidade (depositar/sacar) e caso seja necessário ver seu conteúdo devemos usar "verSaldo".


Conclusão

Com esses recursos, é possível controlar a segurança e acessibilidade dos atributos e métodos de uma classe, garantindo a integridade dos dados e evitando possíveis erros de programação.

Comentários

Mais visitadas

Array no PL/SQL (Oracle)

Trabalhar com estruturas indexadas pode nos poupar muito trabalho, deixar o código mais limpo e reutilizável, pois bem vamos dar um exemplo de como fazer isso no PL/SQL. Criaremos um tipo table que seja capaz de armazenar nomes de uma tabela de funcionários de forma indexada, e em seguida mostraremos o que foi armazenado, segue o código: 1: declare 2: -- tipo tabela contendo apenas texto e indexado 3: type TipoNomFunc is table of varchar 2(200) index by binary_integer; 4: -- variável do nosso tipo (como nosso tipo é indexado ele funcionará como um array) 5: func TipoNomFunc; 6: -- indice para loop 7: indice number := 1; 8: -- 9: begin 10: -- 11: -- cursor para nossa tabela de funcionarios 12: for emps in ( 13: select * 14: from funcionarios 15: ) 16: loop 17: -- colocamos o nome do funcionario em nosso "vetor" 18: func(indice) := emps.nom_funcionario; 19: -- incrementamos o indice 20:...

Aplicação Flask usando Nginx e Gunicorn

Aplicação Flask usando Nginx e Gunicorn Se você já desenvolveu uma aplicação Flask básica, sabe que o servidor de desenvolvimento embutido não é ideal para produção. Ele não é projetado para lidar com altos volumes de tráfego ou conexões simultâneas. Para tornar sua aplicação Flask mais robusta e pronta para produção, podemos usar o Gunicorn como servidor de aplicação e o Nginx como proxy reverso. Neste artigo, vamos adaptar o exemplo anterior ( Criando uma Aplicação CRUD com Flask, PostgreSQL e Docker ) para incluir o Nginx e o Gunicorn. O que são Nginx e Gunicorn? Gunicorn O Gunicorn (Green Unicorn) é um servidor de aplicação WSGI que roda aplicações Python como o Flask. Ele é eficiente e simples de configurar, lidando com múltiplas requisições ao mesmo tempo, algo que o servidor embutido do Flask não faz bem. Nginx O Nginx é um servidor web que atua como um proxy reverso. Ele recebe requisições HTTP e as encaminha ao Gunicorn. Além disso, o Nginx pode: Servir arquivos ...

Criando uma Aplicação CRUD com Flask, PostgreSQL e Docker

Criando uma Aplicação CRUD com Flask, PostgreSQL e Docker Neste guia, vamos criar uma aplicação básica que acessa um banco de dados PostgreSQL e realiza operações CRUD (Create, Read, Update, Delete). Vamos usar Flask e executar tudo com Docker. Sem estilos ou extras, apenas o essencial. Estrutura do Projeto crud-app/ |-- app/ | |-- app.py | |-- templates/ | | |-- index.html | | |-- edit.html |-- Dockerfile |-- requirements.txt |-- docker-compose.yml Passo 1: Dependências Crie um arquivo requirements.txt com as seguintes linhas: Flask==2.2.2 Flask-SQLAlchemy==3.0.2 psycopg2-binary==2.9.3 Werkzeug==2.2.2 Passo 2: Aplicação Flask Arquivo app/app.py : from flask import Flask, render_template, request, redirect, url_for from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) # Configuração do banco de dados app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://user:password@db:5432/crud_db' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db...