1) O documento introduz o PHP 5 e suas melhorias na programação orientada a objetos em relação às versões anteriores. 2) O WAMP é um pacote que facilita a instalação dos servidores necessários para usar PHP 5 como Apache, MySQL e PHP. 3) PHP 5 introduz novos recursos de orientação a objetos como métodos construtores e destrutores, modificadores de acesso, interfaces e classes abstratas.
O PHP foi criado em 1994 por Rasmus Lerdorf como um conjunto de scripts CGI para rastrear visitas a seu currículo online. Desde então, evoluiu para uma poderosa linguagem de programação usada para desenvolver aplicações web dinâmicas e é uma das linguagens mais populares para esse fim.
O PHP é uma linguagem de script open source muito utilizada para desenvolvimento web. Foi criado em 1994 por Rasmus Lerdof e é usado por grandes empresas como Yahoo, Facebook e Wikipédia. Ao longo do tempo, novas versões foram lançadas com melhorias e funcionalidades adicionais.
O documento fornece uma introdução à linguagem PHP, descrevendo suas características, sintaxe, variáveis, métodos de envio de dados, cookies, sessões, frameworks, sistemas de gerenciamento de conteúdo e referências.
1. A aula introduz o PHP, abordando sua história, características e estrutura básica.
2. Variáveis, constantes, tipos de dados e operadores são explicados. Exemplos ilustram o uso de variáveis, operações matemáticas e lógicas.
3. O documento fornece os conceitos fundamentais da linguagem PHP para iniciantes.
O documento resume as principais mudanças na versão 2.0 do framework CakePHP, incluindo o abandono do suporte ao PHP 4, a adoção do PHPUnit para testes de unidade, a reestruturação de componentes, sessões e visões, a adição de novas funcionalidades como PDO e reescrita de URLs.
Este documento fornece uma introdução ao uso do framework Zend através da criação de uma aplicação de gerenciamento de álbuns de música usando o padrão MVC. Ele explica como configurar o ambiente, criar o esqueleto do projeto, definir o controlador e suas ações e iniciar o desenvolvimento da aplicação.
O Phalcon é um framework PHP open source e full-stack desenvolvido como uma extensão C para melhor desempenho. Foi lançado em 2012 e é considerado o framework PHP mais rápido devido à sua arquitetura em C. O Phalcon suporta diversos bancos de dados, servidores web e possui componentes como ORM, router, cache, forms e segurança para facilitar o desenvolvimento web.
O PHP foi criado em 1994 por Rasmus Lerdorf como um conjunto de scripts CGI para rastrear visitas a seu currículo online. Desde então, evoluiu para uma poderosa linguagem de programação usada para desenvolver aplicações web dinâmicas e é uma das linguagens mais populares para esse fim.
O PHP é uma linguagem de script open source muito utilizada para desenvolvimento web. Foi criado em 1994 por Rasmus Lerdof e é usado por grandes empresas como Yahoo, Facebook e Wikipédia. Ao longo do tempo, novas versões foram lançadas com melhorias e funcionalidades adicionais.
O documento fornece uma introdução à linguagem PHP, descrevendo suas características, sintaxe, variáveis, métodos de envio de dados, cookies, sessões, frameworks, sistemas de gerenciamento de conteúdo e referências.
1. A aula introduz o PHP, abordando sua história, características e estrutura básica.
2. Variáveis, constantes, tipos de dados e operadores são explicados. Exemplos ilustram o uso de variáveis, operações matemáticas e lógicas.
3. O documento fornece os conceitos fundamentais da linguagem PHP para iniciantes.
O documento resume as principais mudanças na versão 2.0 do framework CakePHP, incluindo o abandono do suporte ao PHP 4, a adoção do PHPUnit para testes de unidade, a reestruturação de componentes, sessões e visões, a adição de novas funcionalidades como PDO e reescrita de URLs.
Este documento fornece uma introdução ao uso do framework Zend através da criação de uma aplicação de gerenciamento de álbuns de música usando o padrão MVC. Ele explica como configurar o ambiente, criar o esqueleto do projeto, definir o controlador e suas ações e iniciar o desenvolvimento da aplicação.
O Phalcon é um framework PHP open source e full-stack desenvolvido como uma extensão C para melhor desempenho. Foi lançado em 2012 e é considerado o framework PHP mais rápido devido à sua arquitetura em C. O Phalcon suporta diversos bancos de dados, servidores web e possui componentes como ORM, router, cache, forms e segurança para facilitar o desenvolvimento web.
O documento apresenta uma introdução ao framework Laravel, descrevendo suas principais características, como sintaxe simples, sistema modular, acesso a bancos de dados e utilitários. Também explica conceitos como Eloquent, Blade, instalação e estrutura de projetos no Laravel.
O documento apresenta uma pesquisa sobre a linguagem PHP realizada por um aluno. A pesquisa descreve a origem e evolução da linguagem PHP, desde sua criação em 1994 até a versão atual PHP 5, e apresenta exemplos básicos de código PHP, incluindo variáveis, formulários, acesso a banco de dados e interação com o navegador.
O documento descreve o framework CakePHP, incluindo suas vantagens, requisitos, instalação e configuração. O autor também apresenta um exemplo de aplicação para empréstimos de livros entre professores e alunos utilizando o CakePHP.
O documento fornece uma introdução ao PHP, incluindo sua história, características, sintaxe básica e funções. É destacado que o PHP é uma linguagem de script do lado do servidor usada para desenvolvimento de sites dinâmicos e que complementa o JavaScript.
Este documento fornece uma introdução ao curso de PHP, abordando sua instalação, configuração e conceitos básicos como estrutura léxica, tipos de dados, variáveis e instruções de controle de fluxo.
Este documento fornece uma introdução ao sistema de controle de versão Git. Resume os principais pontos como: (1) Git foi criado por Linus Torvalds para o controle de versão do kernel Linux; (2) Git é um sistema de controle de versão distribuído que oferece maior velocidade e eficiência em comparação com outros sistemas; (3) O documento explica os principais comandos e funcionalidades do Git.
O documento fornece um resumo histórico da linguagem PHP, desde sua criação em 1995 até a versão mais recente. Explica as principais estruturas de controle e funcionalidades da linguagem, e faz uma comparação com ASP, JSP e ColdFusion, destacando vantagens e desvantagens de cada uma.
Este documento fornece uma introdução sobre como desenvolver aplicações web com PHP e MySQL. Ele discute a instalação do Apache, PHP e MySQL no Windows e Linux, sintaxe básica do PHP como tipos, variáveis e estruturas de controle, e como PHP pode interagir com MySQL para construir aplicações web dinâmicas.
Uma das coisas que mais me chamou atenção na epoca que fiz esta matéria foi exatamente este captulo. Nele vemos diversas meios que são super validos hoje para trabalhar a programação concorrente, resolvi postar este conteudo por que eu acho que se trata um importante assunto que muitos dos meus amigos no qual eu questiono e eles não tiveram a oportunidade de ver isto.
Arquivo auxiliar do Lazarus.
testeu.pas: Arquivo da unidade principal do projeto, equivalente ao *.pas no Delphi.
testeu.dcu: Arquivo de código intermediário gerado (Delphi Compiled Unit).
testeu.o: Arquivo objeto gerado pelo compilador Free Pascal.
testeu.res: Arquivo de recursos do projeto.
teste.map: Arquivo de mapeamento de memória gerado pelo compilador.
teste.dbg: Arquivo de depuração gerado pelo compilador.
teste.log: Arquivo de log de
O documento fornece uma introdução ao PHP, incluindo sua história, características, sintaxe básica e conceitos importantes como variáveis, arrays, formulários e estruturas condicionais.
O documento apresenta os principais tipos de estruturas condicionais em PHP como if, if/else, if/elseif/else e switch. Também explica como receber dados de formulários HTML usando as funções $_POST, $_GET e $_REQUEST e fornece quatro exercícios para praticar esses conceitos.
O documento fornece um resumo sobre:
1) Uma breve história do PHP desde sua criação em 1995 até as versões atuais;
2) Conceitos básicos sobre PHP como sua definição, quem o utiliza e ferramentas relacionadas;
3) Principais características da linguagem como sintaxe, tipos de variáveis, estruturas de controle e repetição e funções.
Qual o estado dos frameworks atualmente no PHP, assim como a situação atual da linguagem. Como você pode escolher seu framework e um comparativo entre os 4 principais frameworks do mercado.
Este documento apresenta uma apostila sobre desenvolvimento de sistemas de informação avançados usando ASP.NET. Aborda conceitos sobre desenvolvimento ASP.NET, sistemas de autenticação, acesso a banco de dados, desenvolvimento em camadas, webservices, internacionalização e relatórios.
Desenvolvendo Aplicações com Software Livreelliando dias
O documento descreve um plano de ensino sobre desenvolvimento de aplicações com software livre usando o framework PHP CakePHP. Ele inclui tópicos como licenciamento de software livre, linguagens de programação como PHP e Ruby on Rails, bancos de dados como MySQL e PostgreSQL, orientação a objetos, arquitetura MVC, frameworks, e características e instalação do CakePHP.
O documento descreve conceitos de programação concorrente em Java, incluindo:
1) Como usar a palavra-chave "synchronized" para sincronizar o acesso a métodos e blocos de código compartilhados por múltiplas threads.
2) Um exemplo de aplicativo bancário que demonstra o uso de "synchronized" para evitar inconsistências de dados.
3) Como sincronizar o acesso a atributos independentes dentro de uma classe usando objetos separados para cada atributo.
Programação Orientada A Objectos (Poo)guest18b3c00
Primeiro dos artigos da Zona Visual Basic, esta virada para a parte teórica, onde de estuda o paradigma das linguagens orientadas a objectos (POO), antes de se iniciar com a programação em Visual Basic.
O documento discute conceitos de banco de dados MySQL, incluindo comandos SQL como INSERT, SELECT, UPDATE e DELETE. Também aborda temas de programação orientada a objetos em PHP como classes, atributos, métodos, herança, métodos construtores e classes abstratas.
O documento apresenta um curso completo de PHP, abordando tópicos como sintaxe básica, variáveis, arrays, funções, manipulação de arquivos e banco de dados, desenvolvimento web com PHP e MySQL, programação orientada a objetos e segurança contra SQL injection.
Este documento descreve um sistema gerenciador de produtos construído com PHP e MySQL. O sistema permite que usuários cadastrados realizem ações como incluir, alterar, excluir e listar produtos armazenados no banco de dados MySQL. Ele utiliza sessões PHP para autenticar usuários e redirecioná-los para páginas que fornecem diferentes funcionalidades de gestão de produtos.
O documento apresenta uma introdução ao framework Laravel, descrevendo suas principais características, como sintaxe simples, sistema modular, acesso a bancos de dados e utilitários. Também explica conceitos como Eloquent, Blade, instalação e estrutura de projetos no Laravel.
O documento apresenta uma pesquisa sobre a linguagem PHP realizada por um aluno. A pesquisa descreve a origem e evolução da linguagem PHP, desde sua criação em 1994 até a versão atual PHP 5, e apresenta exemplos básicos de código PHP, incluindo variáveis, formulários, acesso a banco de dados e interação com o navegador.
O documento descreve o framework CakePHP, incluindo suas vantagens, requisitos, instalação e configuração. O autor também apresenta um exemplo de aplicação para empréstimos de livros entre professores e alunos utilizando o CakePHP.
O documento fornece uma introdução ao PHP, incluindo sua história, características, sintaxe básica e funções. É destacado que o PHP é uma linguagem de script do lado do servidor usada para desenvolvimento de sites dinâmicos e que complementa o JavaScript.
Este documento fornece uma introdução ao curso de PHP, abordando sua instalação, configuração e conceitos básicos como estrutura léxica, tipos de dados, variáveis e instruções de controle de fluxo.
Este documento fornece uma introdução ao sistema de controle de versão Git. Resume os principais pontos como: (1) Git foi criado por Linus Torvalds para o controle de versão do kernel Linux; (2) Git é um sistema de controle de versão distribuído que oferece maior velocidade e eficiência em comparação com outros sistemas; (3) O documento explica os principais comandos e funcionalidades do Git.
O documento fornece um resumo histórico da linguagem PHP, desde sua criação em 1995 até a versão mais recente. Explica as principais estruturas de controle e funcionalidades da linguagem, e faz uma comparação com ASP, JSP e ColdFusion, destacando vantagens e desvantagens de cada uma.
Este documento fornece uma introdução sobre como desenvolver aplicações web com PHP e MySQL. Ele discute a instalação do Apache, PHP e MySQL no Windows e Linux, sintaxe básica do PHP como tipos, variáveis e estruturas de controle, e como PHP pode interagir com MySQL para construir aplicações web dinâmicas.
Uma das coisas que mais me chamou atenção na epoca que fiz esta matéria foi exatamente este captulo. Nele vemos diversas meios que são super validos hoje para trabalhar a programação concorrente, resolvi postar este conteudo por que eu acho que se trata um importante assunto que muitos dos meus amigos no qual eu questiono e eles não tiveram a oportunidade de ver isto.
Arquivo auxiliar do Lazarus.
testeu.pas: Arquivo da unidade principal do projeto, equivalente ao *.pas no Delphi.
testeu.dcu: Arquivo de código intermediário gerado (Delphi Compiled Unit).
testeu.o: Arquivo objeto gerado pelo compilador Free Pascal.
testeu.res: Arquivo de recursos do projeto.
teste.map: Arquivo de mapeamento de memória gerado pelo compilador.
teste.dbg: Arquivo de depuração gerado pelo compilador.
teste.log: Arquivo de log de
O documento fornece uma introdução ao PHP, incluindo sua história, características, sintaxe básica e conceitos importantes como variáveis, arrays, formulários e estruturas condicionais.
O documento apresenta os principais tipos de estruturas condicionais em PHP como if, if/else, if/elseif/else e switch. Também explica como receber dados de formulários HTML usando as funções $_POST, $_GET e $_REQUEST e fornece quatro exercícios para praticar esses conceitos.
O documento fornece um resumo sobre:
1) Uma breve história do PHP desde sua criação em 1995 até as versões atuais;
2) Conceitos básicos sobre PHP como sua definição, quem o utiliza e ferramentas relacionadas;
3) Principais características da linguagem como sintaxe, tipos de variáveis, estruturas de controle e repetição e funções.
Qual o estado dos frameworks atualmente no PHP, assim como a situação atual da linguagem. Como você pode escolher seu framework e um comparativo entre os 4 principais frameworks do mercado.
Este documento apresenta uma apostila sobre desenvolvimento de sistemas de informação avançados usando ASP.NET. Aborda conceitos sobre desenvolvimento ASP.NET, sistemas de autenticação, acesso a banco de dados, desenvolvimento em camadas, webservices, internacionalização e relatórios.
Desenvolvendo Aplicações com Software Livreelliando dias
O documento descreve um plano de ensino sobre desenvolvimento de aplicações com software livre usando o framework PHP CakePHP. Ele inclui tópicos como licenciamento de software livre, linguagens de programação como PHP e Ruby on Rails, bancos de dados como MySQL e PostgreSQL, orientação a objetos, arquitetura MVC, frameworks, e características e instalação do CakePHP.
O documento descreve conceitos de programação concorrente em Java, incluindo:
1) Como usar a palavra-chave "synchronized" para sincronizar o acesso a métodos e blocos de código compartilhados por múltiplas threads.
2) Um exemplo de aplicativo bancário que demonstra o uso de "synchronized" para evitar inconsistências de dados.
3) Como sincronizar o acesso a atributos independentes dentro de uma classe usando objetos separados para cada atributo.
Programação Orientada A Objectos (Poo)guest18b3c00
Primeiro dos artigos da Zona Visual Basic, esta virada para a parte teórica, onde de estuda o paradigma das linguagens orientadas a objectos (POO), antes de se iniciar com a programação em Visual Basic.
O documento discute conceitos de banco de dados MySQL, incluindo comandos SQL como INSERT, SELECT, UPDATE e DELETE. Também aborda temas de programação orientada a objetos em PHP como classes, atributos, métodos, herança, métodos construtores e classes abstratas.
O documento apresenta um curso completo de PHP, abordando tópicos como sintaxe básica, variáveis, arrays, funções, manipulação de arquivos e banco de dados, desenvolvimento web com PHP e MySQL, programação orientada a objetos e segurança contra SQL injection.
Este documento descreve um sistema gerenciador de produtos construído com PHP e MySQL. O sistema permite que usuários cadastrados realizem ações como incluir, alterar, excluir e listar produtos armazenados no banco de dados MySQL. Ele utiliza sessões PHP para autenticar usuários e redirecioná-los para páginas que fornecem diferentes funcionalidades de gestão de produtos.
O documento discute conceitos de programação orientada a objetos em PHP, incluindo classes, atributos, métodos, construtores, encapsulamento, herança e classes abstratas. Ele explica como classes definem moldes para objetos e como métodos representam ações, ilustrando com exemplos de classes Carro e Conta Bancária.
Apresentação do SAEO na Administração PúblicaMarco Rosner
O documento apresenta o Sistema de Acompanhamento e Execução Orçamentária (SAEO), um sistema web de software livre desenvolvido para controlar a execução orçamentária e administração de compras públicas na administração pública. O SAEO foi desenvolvido para fornecer mobilidade, segurança, agilidade e transparência ao processo, com ferramentas como o workflow para organizar as etapas e reitorias responsáveis. A arquitetura e engenharia de software do sistema também são abordadas brevemente.
1) O documento introduz o PHP 5 e suas melhorias na programação orientada a objetos em relação às versões anteriores. 2) O WAMP é um pacote que facilita a instalação dos servidores necessários para usar PHP 5 como Apache, MySQL e PHP. 3) PHP 5 introduz novos recursos de orientação a objetos como métodos construtores e destrutores, modificadores de acesso, interfaces e mais.
Apresentação formação web - up marketing digital - módulo ii - 2º fdsRangel Javier
O documento fornece informações sobre um curso de formação web. Ele discute tópicos como PHP, HTML, variáveis, estruturas de controle, funções PHP, formulários, banco de dados MySQL e criação de um sistema simples de blog. O instrutor também apresenta etapas para a criação de um blog simples utilizando PHP e MySQL.
O documento resume conceitos básicos sobre JavaScript, incluindo sua origem, funcionalidades, tipos de variáveis, operadores, estruturas de controle e mais.
O documento descreve o processo de conexão entre um navegador web, servidor web e banco de dados MySQL para recuperar e formatar dados da web. Ele também explica como configurar sessões no PHP para autenticar usuários em um sistema.
O documento apresenta um curso de orientação a objetos que aborda conceitos como classes, objetos, encapsulamento, herança e polimorfismo utilizando linguagens como PHP, Python e Ruby. O curso tem carga horária de 80 horas e avaliações programadas ao longo do mesmo.
Sql básico - Teoria e prática: Um grande resumoHelder Lopes
O documento fornece um resumo sobre SQL básico, abordando conceitos como: características de bancos de dados e tabelas, modelos lógicos e físicos, comandos DDL para criação e alteração de tabelas, restrições e relacionamentos.
O documento apresenta os principais conceitos e comandos do sistema de gerenciamento de banco de dados MySQL. Ele explica o que é SQL, como instalar o MySQL e os principais grupos de comandos - DML, DDL e DCL. Além disso, demonstra comandos básicos como criar e manipular bancos de dados e tabelas, inserir, consultar e alterar dados.
O documento contém 12 algoritmos que realizam operações como cálculo de fatorial, contagem de números dentro de um intervalo, classificação de idade como maior ou menor de idade, contagem de homens e mulheres, análise de lucro ou prejuízo em vendas, impressão de números em ordem crescente e decrescente, cálculo de tabuadas.
O documento apresenta 12 exercícios sobre modelagem de bancos de dados relacionais. Cada exercício pede para criar um modelo de entidades e relacionamentos (MER) para um determinado contexto de negócios e, em seguida, converter o MER para um conjunto de tabelas no Microsoft Access.
Php e mysql aplicacao completa a partir do zeroFred Ramos
Aprenda como construir sua própria aplicação PHP com banco de dados MYSQL a partir do nada.
- Explicações passo a passo totalmente ilustradas
- Indicado para iniciantes ou veteranos no PHP
- Construção do layout a partir do zero
- Códigos php de fácil compreensão
- Construção de uma aplicação web completa
- Conteúdo totalmente ilustrado com mais de 300 imagens
- Aprenda na prática! Aplicação testada pelo desenvolvedor
- 150 páginas
Desenvolvimento orientado a objetos com adianti frameworkGustavo Emmel
A apresentação trata sobre desenvolvimento orientado a objetos utilizando o framework Adianti. O framework Adianti é uma ferramenta open source baseada em componentes e orientada a eventos que utiliza estrutura MVC e mapeamento objeto-relacional para focar em aplicações de negócio. O framework oferece benefícios como aplicação orientada a modelos, classes para operações CRUD, separação de HTML, lógica e dados, e foco do desenvolvedor na regra de negócio.
PHP 5 introduz melhorias significativas à programação orientada a objetos em relação às versões anteriores, como nomes fixos para construtores e destrutores, modificadores de acesso para propriedades e métodos, e suporte para interfaces, classes abstratas e constantes de classe. O documento também discute a instalação do pacote WAMP para configurar um ambiente local de desenvolvimento com Apache, PHP e MySQL.
Desenvolvimento de sistemas web com php Frameworks - Aula 1Thyago Maia
O documento discute frameworks, definindo-os como conjuntos de classes que encapsulam abstrações para solução de problemas relacionados. Apresenta o framework Laravel, desenvolvido em PHP para aplicações web baseadas em MVC, e o Homestead, ambiente de desenvolvimento oficial do Laravel utilizando Vagrant. Explica também rotas no Laravel, mapeando URLs a controllers via arquivo routes.php.
Este documento fornece uma introdução ao framework Zend, ensinando como criar uma aplicação simples de gerenciamento de CDs utilizando o padrão MVC. Ele explica como configurar a estrutura de diretórios, o arquivo index.php de inicialização e a classe controller inicial IndexController com 4 ações.
O documento descreve o Composer, uma ferramenta para gestão de dependências em projetos PHP. Ele explica o que é o Composer, como ele funciona e como pode ajudar no desenvolvimento de projetos PHP, garantindo que todas as dependências estejam nas mesmas versões em diferentes ambientes.
Web Training Aula 03: Introduction to LaravelMozDevz
O documento apresenta uma introdução ao framework Laravel, descrevendo suas principais características, como sintaxe simples, sistema modular, acesso a bancos de dados e utilitários. Também discute conceitos como Eloquent, Blade, instalação e estrutura de projetos no Laravel.
Este documento apresenta uma introdução ao desenvolvimento em PHP, incluindo tendências do mercado, o que é PHP, por que usar PHP, programação orientada a objetos em PHP e exemplos de código.
O documento apresenta os principais conceitos e vantagens do Maven, uma ferramenta popular para gerenciamento e construção de projetos Java. Ele explica como o Maven padroniza a estrutura dos projetos, gerencia dependências de bibliotecas e permite a execução de tarefas como compilação através de comandos. Além disso, destaca como o Maven facilita a colaboração entre desenvolvedores e a manutenção de projetos ao longo do tempo.
Cakephp - framework de desenvolvimento de aplicações Web em PHPArlindo Santos
O documento resume um seminário sobre o framework PHP cakePHP. Apresenta brevemente a história e objetivos do framework, seu funcionamento baseado em MVC, características como validação de dados e geração de código, e passos para instalação e criação de um blog simples.
Palestra realizada em abril de 2009 no FLISOL de Aracaju/Sergipe. O tema foi o framework orientado a objetos em PHP chamado Symfony.
Algumas de suas features:
- utiliza a arquitetura MVC (Model View Controller), isto é, separação das camadas de apresentação, controle e modelo.
- utiliza bastantes componentes independentes como o Doctrine e Propel (ORM), YML (arquivos de configuração) e outros. Que podem ser adotados em outros projetos que não utilizam o Symfony.
- possui geração automática de CRUD (create, retrieve, update, delete)
- possui uma documentação e comunidade muito grandes.
- geração automática de telas de administração
- ambiente de desenvolvimento com debug
- ambiente de teste
- integração com sincronizador de arquivos (para atualização do projeto na produção)
- separação de configuração para ambientes de teste, desenvolvimento e produção.
- e muito mais...
1. O documento apresenta uma apostila sobre PHP, abordando conceitos como servidor web, banco de dados, variáveis e estruturas de decisão.
2. Na primeira aula, são apresentados conceitos básicos como PHP, servidor e cliente, banco de dados e ferramentas utilizadas.
3. Nas aulas subsequentes, aborda-se páginas PHP, variáveis, operadores, e estruturas de decisão como IF.
O documento discute o uso do Composer e do WP-CLI para gerenciar dependências e instalar WordPress de forma automatizada através do composer.json. Também aborda conceitos como namespaces, PSRs, autoloading e repositórios como o Packagist.
No âmbito da disciplina de Aplicações Informáticas, unidade curricular do 3º ano da licenciatura em Ciências e Tecnologias da Documentação e Informação, lecionada pelo Doutor Lino Oliveira na Escola Superior de Estudos Industriais e de Gestão, foi-nos solicitada a criação de um trabalho de grupo sobre o tema: “Gestão de Conteúdos com Aplicações Instaladas em Servidores”.
1. O documento apresenta os fundamentos básicos da linguagem Java, incluindo a estrutura de um programa simples em Java.
2. É explicada a estrutura de um programa Hello World básico em Java, incluindo a declaração da classe, método main, e impressão da saída.
3. Também é apresentado um exemplo simples de um programa Hello World gráfico usando Swing para interface gráfica.
O documento discute práticas seguras e corretas para programação em PHP. Em particular, cobre tópicos como: 1) boas práticas para iniciantes em PHP, 2) técnicas para segurança como prevenção de SQL injection e XSS, e 3) formas comuns de ataques e como proteger aplicações PHP.
O documento introduz PHP e o framework MVC. Explica o que é PHP, como declarar variáveis e funções, e como se conectar a bancos de dados. Também define o que são frameworks, MVC e explica os papéis de Model, View e Controller.
Este documento apresenta três frases ou menos:
O documento apresenta uma apostila sobre linguagem de programação Java, abordando tópicos como criação de programas, compilação, impressão de texto, trabalhar com números inteiros e reais, operações matemáticas e lógicas.
O documento fornece dicas sobre boas práticas de programação no WordPress, incluindo não usar a função query_posts(), estruturar templates em partes, usar WP_Query em loops e separar regra de negócio de templates.
Este documento fornece uma introdução sobre o Apache HTTP Server, o servidor web mais popular do mundo. Ele explica o que é um servidor HTTP e como funciona, a origem e popularidade do Apache Server, suas principais características e como instalá-lo.
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
Este certificado confirma que Gabriel de Mattos Faustino concluiu com sucesso um curso de 42 horas de Gestão Estratégica de TI - ITIL na Escola Virtual entre 19 de fevereiro de 2014 a 20 de fevereiro de 2014.
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
2. Introdução ao PHP 5
Com as primeiras 2 versões de PHP, PHP 3 e PHP 4, conseguiram uma plataforma potente e estável
para a programação de páginas do lado do servidor. Estas versões serviram muito de ajuda para a
comunidade de desenvolvedores, tornando possível que PHP seja a linguagem mais utilizada na web para a
realização de páginas avançadas.
Entretanto, ainda existiam pontos negros no desenvolvimento de PHP que trataram de solucionar
com a versão 5, aspectos que fizeram falta na versão 4, quase desde o dia de seu lançamento. Referimo-
nos principalmente à programação orientada a objetos (POO) que, apesar de estar suportada a partir de
PHP3, só implementava uma parte muito pequena das características deste tipo de programação.
Nota: A orientação a objetos é uma maneira de programar que trata de modelar os processos de
programação de uma maneira próxima à realidade: tratando a cada componente de um programa como um
objeto com suas características e funcionalidades. Podemos ver uma pequena introdução no artigo O que é
a programação orientada a objetos.
O principal objetivo de PHP5 foi melhorar os mecanismos de POO para solucionar as carências das
versões anteriores. Um passo necessário para conseguir que PHP seja uma linguagem apta para todo tipo
de aplicações e meios, inclusive os mais exigentes.
Instalação de PHP5 com WAMP5
Existe um pacote de instalação chamado WAMP5 que pode instalar em conjunto Apache, PHP
5, MySQL e PHPMyAdmin. Neste capítulo, ainda nos referimos à forma de instalação de WAMP5 e
outras opções para aumentar as possibilidades do pacote.
Existe uma maneira de começar a utilizar PHP5 em Windows sem ter que sofrer as complicações
típicas da instalação dos servidores necessários para programar em PHP. Trata-se de instalar um pacote
chamado WAMP, que permite instalar e configurar em um só processo o servidor Apache, a base de dados
MySQL e o módulo de programação em PHP versão 5.
WAMP é um sistema indicado para os usuários que não têm instalado no sistema nenhum dos
programas necessários para programar em PHP (Apache, PHP e MySQL), já que realiza uma instalação
completa e desde zero. Mas também podem utilizar este programa os usuários que dispõem de Apache,
PHP e/ou MySQL em seu sistema. Em cujo caso, simplesmente se realizará outra cópia das aplicações em
um diretório distinto, que à princípio, não tem porque interferir com as outras instalações alojadas em nosso
computador.
Programas que contem WAMP5
O software que se instala com WAMP5 contem os seguintes servidores e programas:
Apache 2.2.6. O servidor de páginas web mais difundido do mercado. Embora a última versão deste
servidor seja Apache 2, instala-se uma versão anterior que é mais estável. Existe um Add-on que permite
substituir a versão 1.3.31 de Apache pela última versão.
PHP 5.2.5. O motor renovado da linguagem.
MySQL 5.0.45. A base de dados mais difundida para utilizar com PHP.
PHPmyadmin. Um software que permite administrar uma base de dados através de uma interface
web.
SQLitemanager. Um sistema para administrar uma base de dados a partir de sentenças SQL.
Instalação de WAMP
Nota: A versão dos software acima são referentes até a data de criação desta apostila.
A instalação se realiza através de um executável Windows onde podem se introduzir poucas
configurações, apenas o diretório onde desejarmos que se instalem os programas. Depois do processo de
instalação foram criados dois serviços com o servidor web e o de base de dados:
Serviço wampapache: Relacionado com o servidor Apache.
Serviço wampmysql: Relacionado com a base de dados MySQL.
Ademais, dentro do diretório onde tivermos instalado WAMP5 terá sido criado uma pasta chamada
"www", que corresponde com o diretório de publicação, ou seja, o lugar onde devem ser colocadas as
3. páginas web.
Durante a instalação também devemos decidir se desejamos que WAMP5 se inicie automaticamente
ao ligar o computador ou se desejamos que seu funcionamento se realize manualmente.
Funcionamento dos servidores
Quando instalamos WAMP5 se cria um grupo de programas chamado WampServer, onde poderemos
encontrar uma opção que põe "Start Wampserver", que será necessário executar se não tivermos
selecionado que o servidor se inicie automaticamente.
Uma vez o WampServer em funcionamento obteremos um ícone na barra de tarefas com a forma
parecida a de um marcador de velocidade. Se clicarmos sobre esse ícone, abrirá um menu com opções
variadas para providenciar os serviços relacionados com o pacote.
Podemos provar se os serviços estão funcionando perfeitamente acessando à página de início do
servidor, escrevendo na barra de endereços de nosso navegador algo como http://localhost/.
Então deverá aparecer uma página com vários links às distintas ferramentas instaladas com WAMP5,
além de algumas páginas de proba de PHP.
Add-ons
Existem vários acréscimos que podem ser instalados com WAMP, para ampliar as possibilidades do
pacote. Por exemplo, podemos instalar um add-on para permitir que WAMP trabalhe com PHP5 ou com
PHP4, criando una nova opção no menu de WAMP5 que permite mudar de uma versão a outra de PHP.
Existem outros acréscimos disponíveis:
Instalar ActiveState Perl em nosso sistema, para permitir a execução de CGI.
Atualizar a versão de Apache 2.
Instalar Zend Optimizer, para melhorar o comportamento em tempo de execução de PHP.
Por último, o add-on que instala Webalizer, um sistema para obter estatísticas de uso do servidor
web.
Pode-se obter mais informação deste sistema e opções para download na página
http://www.en.wampserver.com/
Modelo de orientação a objetos em PHP 5
Como PHP 5 trabalha com a orientação a objetos. Lista das novidades em relação aos objetos
em versões anteriores.
Um dos problemas mais básicos das versões anteriores de PHP era a clonagem de objetos, que se
realizava ao atribuir um objeto a outra variável ou ao passar um objeto por parâmetro em uma função. Para
resolver este problema PHP5 usa os manipuladores de objetos (Object handles), que são uma espécie de
ponteiros que apontam os espaços de memória onde residem os objetos. Quando se atribui um manipulador
de objetos ou se passa como parâmetro em uma função, se duplica o próprio object handle e não o objeto
em si.
Nota: Também pode-se realizar uma clonagem de um objeto, para obter uma cópia exata, mas que
não é o próprio objeto. Para isso, utilizamos uma nova instrução chamada " clone", que veremos mais
adiante.
Algumas características do trabalho com POO em PHP 5
Vejamos a seguir uma pequena lista das novas características da programação orientada a
objetos (POO) em PHP5. Não vamos descrever exaustivamente cada característica. Faremos isso
mais adiante neste mesmo manual.
1.- Nomes fixos para os construtores e destrutores
Em PHP 5 temos que utilizar nomes pré-definidos para os métodos construtores e destrutores (Os
que se encarregam de resumir as tarefas de iniciação e de destruição dos objetos. Agora se chamam
4. __construct e __destruct.
2.- Acceso public, private e protected a propriedades e métodos
A partir de agora podemos utilizar os modificadores de acesso habituais da POO. Estes
modificadores servem para definir que métodos e propriedades das classes são acessíveis desde cada
meio.
3.- Possibilidade de uso de interfaces
As interfaces se utilizam na POO para definir um conjunto de métodos que implementa uma classe.
Uma classe pode implementar várias interfaces ou conjuntos de métodos. Na prática, o uso de interfaces é
utilizado muitas vezes para suprir a falta de herança múltipla de linguagens como PHP ou Java.
Explicaremos isto com detalhe mais adiante.
4.- Métodos e classes final
Em PHP 5 pode-se indicar que um método é "final". Com isso, não se permite sobrescrever esse
método, em uma nova classe que o herde. Se a classe é "final", o que se indica é que esta classe não
permite ser herdada por outra classe.
5.- Operador instanceof
Utiliza-se para saber se um objeto é uma instância de uma classe determinada.
6.- Atributos e métodos static
Em PHP5 podemos fazer uso de atributos e métodos "static". São as propriedades e funcionalidades
as quais se pode acessar a partir do nome de classe, sem a necessidade de haver instanciado um objeto de
tal classe.
7.- Classes e métodos abstratos
Também é possível criar classes e métodos abstratos. As classes abstratas não se podem instanciar,
costumam ser utilizadas para herda-las de outras classes que não têm porque serem abstratas. Os métodos
abstratos não podem ser chamados, utilizam-se mais para serem herdados por outras classes, onde não
têm porque serem declarados abstratos.
8.- Constantes de classe
Pode-se definir constantes dentro da classe. Logo, pode-se acessar tais constantes através da
própria classe.
9.- Funções que especificam a classe que recebem por parâmetro
Agora podem se definir funções e declarar que devem receber um tipo específico de objeto. No caso
de que o objeto não seja da classe correta, se produz um erro.
10.- Função __autoload
É habitual que os desenvolvedores escrevam um arquivo por cada classe que realizam, como técnica
para organizar o código das aplicações. Por essa razão, às vezes é fatigante realizar os incluis de cada um
dos códigos das classes que se utilizam em um script. A função __autoload serve para tentar incluir o
código de uma classe que se necessite, e que não tenha sido declarada ainda no código que está sendo
executada.
11.- Clonagem de objetos
Se desejarmos, podemos realizar um objeto a partir da cópia exata de outro objeto. Para isso, utiliza-
se a instrução"clone". Também pode se definir o método __clone para realizar tarefas associadas coma
clonagem de um objeto.
Classes em PHP 5
Vemos o que é uma classe, como podemos defini-la e instanciá-la.
Classes em PHP 5
As classes em Programação orientada a objetos (POO) são definições dos elementos que formam
um sistema, neste caso, definições dos objetos que vão intervir em nossos programas.
5. Um objeto se define indicando que propriedades e funcionalidades têm. Justamente essas
declarações são o que é uma classe. Quando se faz uma classe simplesmente se especifica que
propriedades e funcionalidades têm. Por exemplo, um homem poderia ter como propriedades o nome ou a
idade e como funcionalidades, comer, mover-se ou estudar.
Na classe homem, declararíamos dois atributos: a idade ou o nome, que seriam como duas variáveis.
Também deveríamos criar três métodos, com os procedimentos a seguir para que o homem possa comer,
mover-se ou estudar. Estes métodos se definem declarando funções dentro da classe.
O código para definir uma classe pode ser visto a seguir:
class home{
var $nome;
var $idade;
function comer($comida){
//aqui o código do método
}
function moverse($destino){
//aqui o código do método
}
function estudar($diciplina){
//aqui o código do método
}
}
Poderá se comprovar que este código não difere em nada das versões anteriores de PHP, que já
suportavam certas características da POO. Esta situação mudará explorando um pouco mais as
características mais avançadas de PHP 5, que implicarão melhoras que não estavam presentes nas
versões anteriores
Instanciar objetos a partir de classes
Vimos que uma classe é somente uma definição. Se quisermos trabalhar com as classes devemos
instanciar objetos, processo que consiste em gerar um exemplar de uma classe.
Por exemplo, temos a classe homem anterior. Com a classe em si não podemos fazer nada, mas
podemos criar objetos homem a partir dessa classe. Cada objeto homem terá umas características próprias,
como a idade ou o nome. Ademais poderá desempenhar umas funções como comer ou mover-se, agora
também, cada um comerá ou se moverá por sua própria conta quando lhe for solicitado, sem interferir à
princípio, com o que possa estar fazendo outro homem.
Aproveitando, vamos ver como se gerariam dois homens, ou seja, como se instanciariam dois objetos
da classe homem. Para isso, utilizamos o operador new.
$carol = new nome;
$jorge = new nome;
Conclusão
É importante se dar conta da diferença entre um objeto e uma classe. A classe é uma definição de
umas características e funcionalidades, algo abstrato que se concretiza com a instanciação de um objeto de
tal classe.
Um objeto já tem propriedades, com seus valores concretos, e podem ser passadas mensagens
(chamar aos métodos) para que façam coisas.
6. Construtores em PHP 5
Vamos ver o que é um construtor e para que serve, além de um exemplo simples de uma
classe que define um construtor.
Os construtores se encarregam de resumir as ações de iniciação dos objetos. Quando instanciamos
um objeto, temos que realizar vários passos em sua iniciação, por exemplo, dar valores a seus atributos e
isso é o que se encarrega o construtor. Os construtores podem receber dados para iniciar os objetos como
se deseje em cada caso.
A sintaxe para a criação de construtor varia em relação a do PHP 3 e 4, pois deve se chamar com um
nome fixo: __construct. (São dois hífens baixos(underline), antes da palavra "construct")
A longo dos exemplos deste manual vamos ir criando um código para gestão de um vídeo club.
Vamos começar definindo uma classe cliente, que utilizaremos logo em nosso programa.
class cliente{
var $nome;
var $numero;
var $filmes_alugados;
function __construct($nome,$numero){
$this->nome=$nome;
$this->numero=$numero;
$this->filmes_alugados=array;
}
function dame_numero{
return $this->numero;
}
}
O construtor nesta classe recebe o nome e número que atribuir ao cliente, que introduz logo em suas
correspondentes propriedades. Ademais inicia o atributo filmes_alugados como um array, neste caso vazio
porque ainda não tem nenhum filme em seu poder.
Logo, criamos um método muito simples para poder utilizar o objeto. Vamos ver umas ações simples
para ilustrar o processo de instanciação e utilização dos objetos.
//instanciamos dois objetos cliente
$cliente1 = new cliente("Pedro", 1);
$cliente2 = new cliente("Roberto", 564);
//mostramos o numero de cada cliente criado
"O identificador do cliente 1 é: " . $cliente1->dame_numero;
"O identificador do cliente 2 é: " . $cliente2->dame_numero;
Este exemplo obteria esta saída como resultado de sua execução:
O identificador do cliente 1 é: 1
O identificador do cliente 2 é: 564
Destrutores em PHP 5
Explicação dos destrutores em PHP5 e exemplos de funcionamento.
Os destrutores são funções que se encarregam de realizar as tarefas que se necessita executar
quando um objeto deixa de existir. Quando um objeto já não está referenciado por nenhuma variável, deixa
de ter sentido que esteja armazenado na memória, portanto, o objeto deve ser destruído para liberar seu
espaço. No momento de sua destruição, a função se chama destrutor, que pode realizar as tarefas que o
programador estime oportuno realizar.
7. A criação do destrutor é opcional. Somente devemos criá-lo, se desejarmos fazer alguma coisa
quando um objeto se elimine da memória.
O destrutor é como qualquer outro método da classe, embora deve se declarar com um nome fixo:
__destruct.
No código seguinte veremos um destrutor em funcionamento. Embora a ação que se realiza ao
destruir o objeto não é muito útil, pode nos servir bem para ver como trabalha.
class cliente{
var $nome;
var $numero;
var $filmes_alugados;
function __construct($nome,$numero){
$this->nome=$nome;
$this->numero=$numero;
$this->filmes_alugados=array;
}
function __destruct{
"<br>destruido: " . $this->nome;
}
function dame_numero{
return $this->numero;
}
}
//instanciamos dois objetos cliente
$cliente1 = new cliente("Pedro", 1);
$cliente2 = new cliente("Roberto", 564);
//mostramos o numero de cada cliente criado
"O identificador do cliente 1 é: " . $cliente1->dame_numero;
"<br>O identificador do cliente 2 é: " . $cliente2->dame_numero;
Este código é igual que o anterior. Somente acrescentamos o destrutor, que imprime uma mensagem
na tela com o nome do cliente que foi destruído. Depois de sua execução obteríamos a seguinte saída.
O identificador do cliente 1 é: 1
O identificador do cliente 2 é: 564
destruído: Pedro
destruído: Roberto
Como vimos, antes de acabar o script, libera-se o espaço na memória dos objetos, com o qual se
executa o destrutor e aparece a correspondente mensagem na página.
Um objeto pode ficar sem referências e, portanto, ser destruído, por muitas razões. Por exemplo, o
objeto pode ser uma variável local de uma função e ao finalizar a execução dessa função local deixaria de
ter validade, sendo então destruído.
O código seguinte ilustra como uma variável local a qualquer âmbito (por exemplo, local a uma
função), se destrói quando esse âmbito foi finalizado.
function cria_cliente_local{
$cliente_local = new cliente("sou local", 5);
}
cria_cliente_local
A função simplesmente cria uma variável local que contem a instanciação de um cliente. Quando a
função se acaba, a variável local deixa de existir, e então, chama-se ao destrutor definido para esse objeto.
8. Nota: Também podemos nos desfazer de um objeto sem a necessidade de acabar com o âmbito
onde foi criado. Para isso, temos a função unset que recebe uma variável e a elimina da memória. Quando
se perde uma variável que contem um objeto e esse objeto deixa de ter referências, elimina-se ao objeto e
chama-se ao destrutor.
Modificadores de acesso a métodos e propriedades em PHP
São os Public, Protected e Private, que se podem conhecer porque já se utilizam e outras
linguagens orientados a objetos.
Veremos neste capítulo os novos modificadores de acesso aos métodos e atributos dos objetos que
foram incorporados em PHP 5. Estes modificadores de acesso são os conhecidos public, protected e
private, que já dispõem de outras linguagens como Java.
Um dos princípios da programação orientada a objetos é o encapsulamento, que é um processo no
qual se ocultam as características internas de um objeto àqueles elementos que não têm porque conhece-
las. Os modificadores de acesso servem para indicar as permissões que terão outros objetos para acessar a
seus métodos e propriedades.
Modificador public
É o nível de acesso mais permissivo. Serve para indicar que o método ou atributo da classe é público.
Neste caso pode-se acessar a este atributo, para visualizá-lo ou edita-lo, por qualquer outro elemento de
nosso programa. É o modificador que se aplica se não se indica outra coisa.
Vejamos um exemplo de classe onde declaramos como public seus elementos, um método e uma
propriedade. Trata-se da classe "dado", que tem um atributo com sua pontuação e um método para tirar o
dado o obter uma nova pontuação aleatória.
class dado{
public $pontos;
function __construct{
srand((double)microtime*1000000);
}
public function tirar{
$this->pontos=$randval = rand(1,6);
}
}
$meu_dado = new dado;
for ($i=0;$i<30;$i++){
$meu_dado->tirar;
"<br>Saiu " . $meu_dado->pontos . " pontos";
}
Vemos a declaração da classe dado, e logo umas linhas de código para ilustrar seu funcionamento.
No exemplo se realiza um loop 30 vezes, nas quais se tira o dado e se mostra a pontuação que se obteve.
Como o atributo $pontos e o método tirar são públicos, podemos acessá-los de fora do objeto, ou que
é o mesmo, de fora do código da classe.
Modificador private
É o nível de acesso mais restritivo. Serve para indicar que essa variável somente vai poder ser
acessada pelo próprio objeto, nunca de fora. Se tentarmos acessar um método ou atributo declarado private
de fora do próprio objeto, obteremos uma mensagem de erro indicando que não é possível a este elemento.
Se no exemplo anterior tivéssemos declarado private o método e a propriedade da classe dado,
teríamos recebido uma mensagem de erro.
9. Aqui temos outra possível implementação da classe dado, declarando como private o atributo pontos
e o método tirar.
class dado{
private $pontos;
function __construct{
srand((double)microtime*1000000);
}
private function tirar{
$this->pontos=$randval = rand(1,6);
}
public function dar_nova_pontuacao{
$this->tirar;
return $this->pontos;
}
}
$meu_dado = new dado;
for ($i=0;$i<30;$i++){
"<br>Han salido " . $meu_dado->dar_nova_pontuacao . " pontos";
}
Tivemos que criar um novo método público para operar com o dado, porque se é tudo privado não há
forma de fazer uso dele. O mencionado método é dar_nova_pontuacao, que realiza a ação de tirar o dado e
devolver o valor que saiu.
Modificador protected
Este indica nível de acesso médio e um pouco mais especial que os anteriores. Serve para que o
método ou o atributo seja público dentro do código da própria classe e de qualquer classe que herde
daquela onde está o método ou propriedade protected. É privado e não acessível de qualquer outra parte.
Ou seja, um elemento protected é público dentro da própria classe e em suas heranças.
Mais adiante explicaremos a herança e poderemos oferecer exemplos com o modificador protected.
Conclusão
Muitas vezes o próprio desenvolvedor é o que fixa seu critério na hora de aplicar os distintos
modificadores de acesso a atributos e métodos. Pouca proteção implica que os objetos percam seu
encapsulamento e com isso, uma das vantagens da POO. Uma proteção maior pode tornar mais trabalhoso
gerar o código do programa, mas em geral, é aconselhável.
A herança em PHP5
Explicamos a herança em PHP 5, um processo pelo qual os objetos podem herdar as
características de outros, de modo que se podem fazer objetos especializados, baseados em outros
mais gerais.
A herança é um dos mecanismos fundamentais da programação orientada a objetos. Por meio da
herança, podem se definir classes a partir da declaração de outras classes. As classes que herdam incluem
os métodos como as propriedades da classe a partir da qual estão definidos.
Por exemplo, pensemos na classe "veículo". Esta classe geral pode incluir as características gerais
de todos os veículos (atributos da classe), como a matrícula, ano de fabricação e potência. Ademais, incluirá
algumas funcionalidades (métodos da classe) como poderiam ser, ligar ou mover.
Agora também, na prática existem vários tipos de veículos, como os carros, os ônibus e os
caminhões. Todos eles têm umas características comuns, que foram definidas na classe veículo. Ademais,
10. terão uma série de características próprias do tipo de veículo, que, à princípio, não têm outros tipos de
veículos. Por exemplo, os caminhões podem ter uma carga máxima permitida ou os ônibus um número de
lugares disponíveis. Da mesma forma, as classes mais específicas podem ter umas funcionalidades
próprias, como os caminhões carregar e descarregar, ou os ônibus aceitar_passageiros ou
vender_passagem.
O normal em sistemas de herança é que as classes que herdam de outras incluam novas
características e funcionalidades, à parte dos atributos e métodos herdados. Porém, isto não é
imprescindível, de modo que podem se criar objetos que herdem de outros e não incluam nada novo.
Sintaxe de herança em PHP 5
A programação orientada a objetos nos oferece uma série de mecanismos para definir este tipo de
estruturas, de modo que possam se criar hierarquias de objetos que herdam uns de outros. Veremos agora
como definir estas estruturas de herança em PHP 5. Para isso, continuando com nosso exemplo da
locadora de vídeo, vamos criar os distintos tipos de elementos que são oferecidos no aluguel.
Como todo mundo conhece, as locadoras de vídeos oferecem distintos tipos de elementos para
alugar, como podem ser os filmes (fitas de vídeo ou DVD) e os jogos. Cada elemento tem umas
características próprias e algumas comuns. Chamamos "suporte" à classe geral, que inclui as
características comuns para todos os tipos de elementos em aluguel. Logo, criamos três tipos de suportes
diferentes, que herdam da classe suporte, mas que incluem algumas características e funcionalidades
novas. Estes tipos de suporte serão "fita_video", "dvd" e "jogo".
O esquema de herança que vamos realizar neste exemplo pode ser visto na seguinte imagem.
Começamos pela classe suporte. Seu código será o seguinte:
class suporte{
public $titulo;
protected $numero;
private $preco;
function __construct($tit,$num,$preco){
$this->titulo = $tit;
$this->numero = $num;
$this->preco = $precio;
}
public function dar_preco_sem_imposto{
return $this->preco;
}
public function dar_preco_com_imposto{
return $this->preco * 1.16;
}
public function dar_numero_identificacao{
return $this->numero;
}
11. public function imprime_caracteristicas{
echo $this->titulo;
echo "<br>" . $this->preco . " (imposto nao incluido)";
}
}
Os atributos que definimos são, título, número (um identificador do suporte) e preço. Aplicamos a
cada um, um modificador de acesso distinto, para poder praticar os diferentes tipos de acesso.
Definimos um constructor, que recebe os valores para a iniciação do objeto. Um método
dar_preco_sim_imposto, que devolve o preço do suporte, sem aplicar o imposto. Outro método
dar_preco_com_imposto, que devolve o preço uma vez aplicado por exemplo, 16% de imposto. O método
dar_numero_identificacao, que devolve o número de identificador e imprime_caracteristicas, que mostra na
página as características deste suporte.
Nota: Como se foi definido como private o atributo preço, este atributo só poderá ser acessado dentro
do código da classe, ou seja, na própria definição do objeto. Se quisermos acessar ao preço de fora da
classe (algo muito normal se temos em conta que vamos necessitar o preço de um suporte de outras partes
da aplicação) será necessário criar um método que nos devolva o valor do preço. Este método devería se
definir como public, para que possa ser acessado de qualquer lugar que se necessite.
Em todos os métodos usa-se a variável $this. Esta variável não é mais que uma referência ao objeto
sobre o qual se está executando o método. Em programação orientada a objetos, para executar qualquer
destes métodos, primeiro temos que ter criado um objeto a partir de uma classe. Logo, poderemos chamar
os métodos de um objeto. Isto se faz com $meu_objeto->metodo_a_chamar. Dentro de método, quando se
utiliza a variável $this, se está fazendo referência ao objeto sobre o qual se chamou ao método, neste caso,
o objeto $meu_objeto. Com $this->titulo estamos fazendo referência ao atributo "titulo" que tem o objeto
$meu_objeto.
Se quisermos provar a classe suporte, para confirmar que se executa corretamente e que oferece
resultados coerentes, podemos utilizar um código como o seguinte.
$suporte1 = new suporte("Os Intocáveis",22,3);
echo "<b>" . $suporte1->titulo . "</b>";
echo "<br>Preco: " . $suporte1->dar_preco_sem_imposto . "euros";
echo "<br>Preco imposto incluído: " . $suporte1->dar_preco_com_imposto . "
euros";
Neste caso criamos uma instância da classe suporte, em um objeto que chamamos $suporte1. Logo,
imprimimos seu atributo titulo (como o título foi definido como public, podemos acessa-lo desde fora do
código da classe.
Logo, chamam-se aos métodos dar_preco_sem_imposto e dar_preco_com_imposto para o objeto
criado.
Daría isto como resultado:
Os Intocáveis
Preço: 3 euros
Preço imposto incluído: 3,48 euros
Continuando com nosso exemplo da locadora de vídeo, vamos construir uma classe para os suportes
de tipo fita de vídeo. As fitas de vídeo têm um atributo novo que é a duração da fita. Não têm nenhuma
classe nova, embora devemos aprender a sobrescrever métodos criados para o suporte, visto que agora
têm que fazer tarefas mais específicas.
Sobrescrever métodos
Antes de mostrar o código da classe fita_video, vamos falar sobre a sobrescritura ou substituição de
métodos, que é um mecanismo pelo qual uma classe que herda pode redefinir os métodos que está
herdando.
Pensemos em uma cafeteira. Sabemos que existem muitos tipos de cafeteiras e todas fazem café,
mas o mecanismo para fazer o café é distinto dependendo do tipo de cafeteira. Existem cafeteiras express,
12. cafeteiras por gotas e até se pode fazer café com uma meia! Nossa cafeteira "pai" (da que vai herdar todas
as cafeteiras) pode ter definido um método fazer_cafe(), mas não necessariamente todas as cafeteiras que
possam herdar desta fazem o café seguindo o mesmo processo.
Então podemos definir um método para fazer café padrão, que teria a classe cafeteira. Mas ao definir
as classes cafeteira_express e cafeteira_gotas, deveríamos sobrescrever o método fazer_cafe() para que
se ajuste ao procedimento próprio destas.
A sobrescritura de métodos é algo bastante comum em mecanismos de herança, visto que os
métodos que foram criados para uma classe "pai" não têm porquê ser os mesmos que os definidos nas
classes que herdam.
Veremos como sobrescrever ou substituir métodos em um exemplo de herança, seguindo nosso
exemplo da locadora de vídeo.
Sintaxe para herdar em PHP 5
Havíamos comentado que a locadora de vídeo dispõe de diferentes elementos para alugar, como
fitas de vídeo, DVD ou jogos. Havíamos criado uma classe suporte, que vamos herdar em cada um dos
elementos disponíveis para alugar. Vamos começar pela classe fita_video, cujo código será o seguinte:
class fita_video extends suporte{
private $duracao;
function __construct($tit,$num,$preco,$duracao){
parent::__construct($tit,$num,$preco);
$this->duracao = $duracao;
}
public function imprime_caracteristicas(){
echo "Filme em VHS:<br>";
parent::imprime_caracteristicas();
echo "<br>Duracao: " . $this->duracao;
}
}
Com a primeira linha class fita_video extends suporte estamos indicando que está sendo definida a
classe fita_video e que vai herdar da classe suporte.
Nota: Como está sendo herdado de uma classe, PHP tem que conhecer o código da classe "pai",
neste caso, a classe suporte. De modo que o código da classe suporte deve estar incluído dentro do
arquivo da classe fita_video. Podemos colocar os dois códigos no mesmo diretório, ou se estão em
diretórios independentes, devemos incluir o código da classe suporte com a instrução include ou require de
PHP.
Na classe fita_video definimos um novo atributo chamado $duracao, que armazena o tempo que dura
o filme.
Embora a classe sobre a qual herdamos (a classe suporte) tinha definido um construtor, a fita de
vídeo deve iniciar a nova propriedade $duracao, que é específica das fitas de vídeo. Por isso, vamos
sobrescrever ou substituir o método construtor, o que se faz simplesmente voltando a escrever o método. A
graça aqui consiste em que o sistema pode basear a nova declaração do construtor na declaração que
existia para a classe da que herda.
Ou seja, já havia sido definido um construtor para a classe suporte, que iniciava os atributos desta
classe. Agora, para a classe fita_video, há que iniciar os atributos definidos na classe suporte, mais o
atributo $duracao, que é o próprio de fita_video.
O código do construtor é o seguinte:
function __construct($tit,$num,$preco,$duracao){
parent::__construct($tit,$num,$preco);
$this->duracao = $duracao;
}
13. Na primeira linha do construtor é chamado ao construtor criado para a classe "suporte". Para isso,
utilizamos parent:: e logo o nome do método da classe pai ao que se quer chamar, neste caso
__construtor(). Ao construtor da classe pai lhe enviamos as variáveis que serão iniciadas com a classe pai.
Na segunda linha do construtor inicia-se o atributo duração, com o que tivermos recebido por
parâmetro.
Acontece o mesmo com o método imprime_caracteristicas(), que agora deve mostrar também o novo
atributo, próprio da classe fita_video. Como se pode observar no código da função, faz-se uso também de
parent::imprime_caracteristicas() para utilizar o método definido na classe pai.
Se quisermos provar a classe fita_video, poderíamos utilizar um código como este:
$minhafita = new fita_video("Os Outros", 22, 4.5, "115 minutos");
echo "<b>" . $minhafita->titulo . "</b>";
echo "<br>Preco: " . $minhafita->dar_preco_sem_imposto() . " euros";
echo "<br>Preco IVA incluido: " . $minhafita->dar_preco_com_iva() . "
euros";
O que nos devolveria o seguinte:
Os Outros
Preço: 4.5 euros
Preço IVA incluído: 5.22 euros
Filme em VHS:
Os Outros
4.5 (IVA não incluído)
Duração: 115 minutos