Postagens

Mostrando postagens com o rótulo PHPOO

PHP - Modificando métodos através da extensão de classes

Imagem
Extensão de classes é uma ótima maneira de organizar e reaproveitar código, tornando a aplicação mais clara e de manutenção mais simples. Vamos mostrar aqui um exemplo muito simples de extensão de classe utilizando os mesmos nomes de método. Isso pode ser muito útil, por exemplo, quando temos uma chamada de método em várias partes do código e precisamos mudar alguma coisa neste método porém não queremos mexer diretamente nele. Vamos supor que o método statement()  dentro da classe Main é chamado em trinta pontos de sua aplicação e você precisa alterar a saída dele. main.class.php <?php Class Main { public function statement() { return "Classe 'Main'"; } } index.php <?php include "main.class.php"; $new = New Main(); echo $new->statement(); echo "\n"; Uma opção seria alterar o método mas você não quer mexer diretamente nel...

PHP - Criando uma Array de objetos igual ao retorno de uma consulta PDO

Você pode criar uma array de objetos como aquela retornada através do PHP PDO quando realiza uma consulta a um banco de dados. A sintaxe não tem segredos. É como 'tipar' uma variável com (String), (Int), (Float) etc. $object_array = Array( (object) Array( 'codMunicipio' => '09210', 'uf' => 'MA' ), (object) Array( 'codMunicipio' => '12190', 'uf' => 'PI' ), (object) Array( 'codMunicipio' => '71072', 'uf' => 'SP' ) ); Se você printar a array com 'var_dump()' obterá a seguinte...

PHP - Conectando bancos de dados através do PDO (PHP Data Object)

Imagem
Com o advento do php 7 precisamos rever alguns procedimentos que acabaram ficando conosco desde os primórdios do PHP. Um destes pontos a serem revistos é o trabalho com bancos de dados. Uma grande parte dos desenvolvedores PHP ainda trabalha com mysql_query, seja pelo costume, preguiça ou mesmo ambiente legado. Precisamos evoluir deste ponto e começar a trabalhar com bibliotecas mais modernas e flexiveis. Está na hora de começarmos a trabalhar com PDO ou PHP Data Object. PDO é uma classe nativa para conexão com banco de dados e que, além de trazer recursos excelentes, também pode ser mais rápida se adequadamente utilizada, além de adicionar uma camada de abstração que faz o trabalho de mudar de base de dados muito tranquila. PDO suporta inúmeros bancos como MySQL, SQLite, Postgree, Oracle e outros. Vamos dar algumas dicas simples e rápidas para começar a usar o PDO. CONEXÃO Abaixo segue um exemplo de conexão, juntamente com o tratamento de erro adequado para o caso da cone...

PHP - Criando uma classe que concatena métodos

Imagem
É comum em frameworks ou bibliotecas aplicarmos métodos em cadeia para modificar um dado conteúdo. A ideia deste tipo de classe é evitar criar variáveis temporárias para guardar o resultado de um método para depois inseri-lo em outro a fim de aplicar uma nova modificação. Com o encadeamento de métodos o retorno de cada um é lido pelo seguinte automaticamente. Para isso existe um truque: os retornos dentro de cada método. Vamos ver um exemplo. Class Sequencia { public $retorno; public function primeiro($var) { $this->retorno .= " Primeiro {$var}:"; return $this; } public function segundo($var) { $this->retorno .= " Segundo {$var}:"; return $this; } } $seq = new Sequencia; $seq->primei...

Livro 'PHP Master' é uma boa dica para quem quer se aprimorar na linguagem.

Imagem
Os livros de programação e TI não são literatura e por isso geralmente são bem difíceis de ler de cabo a rabo. É comum lermos um ou outro capítulo que nos interessa mais e de vez em quando consultá-lo para tirar alguma dúvida. Além disso hoje é mais fácil consultar o Google e encontrar um código ou exemplo pré-pronto e adapta-lo, muitas vezes na tentativa e erro, do que ler um livro sobre o assunto. Porém de vez em quando é interessante ler um livro não apenas para resolver questões técnicas específicas ou um problema pontual mas para adquirir fundamento teórico sobre o que estamos trabalhando, algo que não necessariamente um tutorial será o suficiente. Assim ler um livro técnico sobre determinado assunto acaba sendo uma opção inteligente, especialmente se é uma tecnologia ou assunto muito novo. 'PHP Master' da Sitepoint é um tipo de livro destes que você deve ler do começo ao fim. Ele é dedicado a programadores PHP intermediários ou que sabem algo sobre orientação a...

Instalando o Zend Framework no Windows

Imagem
Existem muitos frameworks no mercado e um dos principais é o Zend Framework . A função de um framework é tornar mais rápido o desenvolvimento de aplicações. Para isto um framework trabalha com orientação a objetos, utilizando classes que podem ser reaproveitadas em várias partes da aplicação. Além disto um framework trabalha com a estrutura chamada VMC que separa o que é visto pelo usuário (View) da lógica da aplicação (Model) e utiliza um mediador entre as duas que pega o que o usuário fez e o envia para a lógica da aplicação (Controler) Vamos assumir que você tem o PHP e o Apache instalados. Aqui vamos seguir o procedimento com o XAMPP instalado C:\xampp\ . Vamos criar uma pasta específica para os projetos com zend, já que podemos utilizar vários frameworks para fazer diferentes aplicações. Nossa pasta base será C:\xampp\htdocs\zend Baixando o Zend Framework O Zend pode ser baixado em http://framework.zend.com/downloads/latest . Dentre as opções baixe a Zend Framewo...

PHP - Enviando parâmetros para funções e métodos via Array

Quero propor hoje uma nova metodologia. Tenho testado ela em aplicações e tem sido bem interessante. A passagem de parâmetros via Array associativa  (pares de "chaves, valores"). Adianto que não necessariamente este é o melhor método que existe mas ele é bem prático se compararmos com a metodologia comum de passagem de parâmetros. O que é? Bem, não existe novidade alguma no aspecto técnico deste procedimento. Ele é mais uma metodologia de uso. Um grande problema da programação são as refatorações, ou seja, quando temos de implementar algo novo ou corrigir uma falha. Neste cenário está a passagem de parâmetros para uma função, método ou construtor de classe. Já aconteceu comigo várias vezes de ter de criar tantos parâmetros para um método que eles chegava a sumir da tela! E quando temos de colocar um novo? Devemos lembrar, é claro, que a sequência de parâmetros, ou seja, sua ordem na chamada, deve ser a mesma que na função ou método. E se trocamos esta ordem... coisa...

Php - Criando uma library Curl no Codeigniter

Vamos começar criando uma classe Curl.php. A ideia é que esta classe possa fazer requisições POST através do PHP, ao invés de utilizar um formulário, por exemplo. Para começar a trabalhar com Libraries devemos ter em mente algumas regras do Codeigniter: - Nomes de arquivos devem ter a primeira letra maiuscula. Exemplo:  Myclass.php - A declaração da classe deve ter a primeira letra maiuscula. Exemplo:  class Myclass - O nome da classe e o nome do arquivo devem ser os mesmos. - O Arquivo deve ficar dentro de 'application/libraries', caminho existente dentro da instalação do Codeigniter. Com estes pré-requisitos em mente podemos começar a trabalhar. Vamos colocar nosso arquivo "Curl.php" dentro de 'application/libraries' O conteúdo do arquivo é o que segue abaixo: <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Curl { private $ch; public function post($url,$data) { echo $url."...

PHP - Classes genéricas com vários níveis - stdClass

O PHP tem uma ferramenta muito interessante chamada Standard Class ou "stdClass". Com ela pode-se criar um objeto sem precisar criar uma classe. O "stdClass" permite que sejam criadas apenas propriedades para seu objeto. Um exemplo de utilização seria para arquivos de configuração, onde necessitamos apenas de "chave"=>"valor" para ativar, desativar ou "printar" algo. Sua sintaxe é: <?php $config = new StdClass; ?> Podemos então começar a criar nosso objetos: <?php $config = new StdClass; $config->titulo = "Branca de Neve"; $config->subtitulo = "Sete anões"; ?> Também podemos criar Arrays: <?php $config = new StdClass; $config->titulo = "Branca de Neve"; $config->subtitulo = "Sete anões"; $config->elenco = Array( "principal" => "Branca de neve", "coadjuvante" => "Bruxa" ) ?> ...