Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação para InternetProgramação para Internet AUTORIA Ricardo Bortolo Vieira Bem vindo(a)! Olá prezado(a) aluno(a), este é o livro Programação para INTERNET, sou o professor Ricardo Vieira, autor deste material, e o assunto que abordarei no decorrer do nosso estudo poderá auxiliá-lo em sua carreira, ou abrir portas para o mundo dos negócios, mostrando-lhe como é bom trabalhar com desenvolvimento para Internet. Com o passar do tempo, as ferramentas para desenvolvimento foram tornando-se mais simples, rápidas e robustas. Meu objetivo, por meio deste livro, é ensiná-lo como funcionam os detalhes deste ambiente de desenvolvimento, que é bem diferente de uma programação monolítica focada somente no computador. Além disso, algumas técnicas que podem auxiliá-lo neste processo também serão apresentadas. Pretendo deixar claro que o uso desse ambiente de desenvolvimento poderá ajudá- lo a alcançar os objetivos estratégicos de sua empresa ou auxiliá-lo a colocar em prática uma nova ideia. Este livro está organizado em quatro unidades, além da introdução e conclusão. Cada uma delas correspondendo a uma das partes importante na programação orientada a objetos. Na primeira unidade você irá estudar o histórico e conceitos da Internet e da Linguagem PHP, que será utilizada neste livro. Já na unidade II você poderá constatar que a Linguagem PHP pode trabalhar com funções e todas as suas valorizações. Além disso, veremos a recepção de informações no Formulário, grande padrão utilizado na internet para troca de informações, e as validações neste formulário. Depois, na unidade III, falaremos sobre o Banco de Dados, seus padrões, formatos e linguagens especí�cas que permitem ao desenvolvedor terceirizar e garantir a segurança dos dados que serão mantidos pelo sistema web que está sendo desenvolvido. No mais, será tratado também a forma de comunicação entre o PHP e os bancos de dados existentes no mercado. Nesta unidade III será usando o banco MySQL como base para a apresentação dos conceitos de banco de dados. Na unidade IV, vamos estudar a orientação a objetos dentro da linguagem PHP e também falaremos sobre Web Services e a facilidade que a linguagem PHP tem com padrões como REST, XML-RPC e SOAP. Agora, vamos ao que interessa! Tenha um bom estudo e uma boa leitura! Unidade 1 Histórico, conceitos iniciais da linguagem de programação PHP AUTORIA Ricardo Bortolo Vieira Introdução Esta unidade inicia os estudos sobre Programação para Internet, tratando de temas como Histórico, conceitos iniciais da linguagem de programação PHP, que utiliza os conceitos da Orientação a Objetos e é uma das linguagens mais utilizadas na programação para internet. Com uma linguagem simpli�cada e detalhada, apresentamos também os conceitos de utilização de arrays, que será muito utilizado pelos programadores para sites, sistemas online e aplicações web. E por �m, apresentaremos os tipos de operadores utilizados dentro da linguagem de programação PHP. Este é só o começo. Teremos muita coisa boa chegando com o decorrer do curso. Vai ser muito bom tê-lo aqui, estudando e se desenvolvendo pro�ssionalmente. Tenha um bom aprendizado e um excelente aproveitamento. Então vamos lá! Bons estudos! Programação para web AUTORIA Ricardo Bortolo Vieira Introdução Programação Web Para se programar para web, é preciso conhecer primeiro o que é web. A internet teve seu início no �nal dos anos 1960. Com a iniciativa do governo americano, especi�camente do Departamento de Defesa, solicitando a pesquisadores de várias instituições dos Estados Unidos para projetar um sistema de defesa, cuja grande diferença em relação a outros sistemas já projetados era que esse seria descentralizado, capaz de resistir a ataques do inimigo que fossem realizados com armas nucleares e em qualquer ponto do Estados Unidos sem necessariamente dividir a comunicação do país. Surgiu então, como solução, um sistema em que os dados eram divididos em pacotes e que estes seriam encaminhados, instantaneamente, por várias rotas que estivem disponíveis, ou seja, o sistema era baseado em redes de computadores. Desta maneira, esse sistema poderia continuar em operação mesmo quando um ou mais computadores dessa rede fossem destruídos ou que não estivessem funcionando, ou seja, a comunicação poderia �uir para outros computadores que ainda estivessem funcionando. Na prática, os pesquisadores americanos inventaram uma tecnologia voltada para a interligação de computadores que funcionavam em condições precárias de comunicação, que de maneira simplória poderiam denominar esse conjunto de simples tecnologias, porém extremamente con�ável de internet. Introdução Programação Web O nome internet começou a ser usado em 1973, derivado do conceito de “internetworking” ou interligação de redes, que vinha sendo estudado pelos pesquisadores americanos desde o ano anterior. A rede que conhecemos hoje como internet só surgiu na década de 1980. A Cronologia da Internet Para você entender melhor como surgiu a internet, nada como acompanhar a sua cronologia desde o nascimento das primeiras ideias relacionadas às redes de computadores até os dias atuais. 1957 – A União Soviética lança o Sputnik, primeiro satélite arti�cial da Terra. Em resposta, os Estados Unidos criam a Advanced Research Projects Agency (ARPA) dentro do Departamento de Defesa (DoD) para estabelecer a liderança dos Estados Unidos na ciência e na tecnologia militar. 1969 – No dia 1º de maio foi montado o primeiro equipamento da rede na Universidade da Califórnia, de Los Angeles, (UCLA). Ficou, então, criado o primeiro ponto de conexão da rede, que se chamava ARPANET. Ainda em 1969 foram montados os três pontos restantes de conexão. O segundo ponto de conexão foi o do Instituto de Pesquisas de Stanford e o terceiro ponto de conexão foi o Centro de Pesquisas da Universidade da Califórnia em Santa Bárbara (UCSB) e o da Universidade de Utah. 1970 – Primeira publicação do protocolo Host-Host original da ARPA. Primeiro artigo da AFIPS sobre a ARPANET. A ALOHAnet, foi a primeira rede de comutação de dados via rádio. Os servidores da ARPANET começam a usar o Protocolo de Controle de Rede (Network Control Protocol, NCP), primeiro protocolo host-host. 1971 – Foi inventado o programa de e-mail para enviar mensagens através de rede distribuída. O programa original foi derivado de dois outros: um programa de e-mail intra máquina (SENDMSG) e um programa experimental de transferência de arquivo (CPYNET). 1978 – Os protocolos TCP-IP foram divididos em TCP e IP. 1979 – Inauguração da primeira rede dedicada a Grupos de Discussão – USENET. Foi também lançado o primeiro chat – canal de conversa em tempo real acrescido da possibilidade de Role Playing Game (RPG). 1982 – Bob Kahn e Vint Cerf eram os mentores e chefes da equipe que acaba inventando o TCP/IP, a linguagem comum a todos os computadores da internet. Pela primeira vez a coleção de redes espalhadas que constituíam a ARPANET é encarada como uma única rede interligada. As grandes empresas começaram a usar a internet para se comunicarem entre elas e com os seus clientes. 1983 – Mudança do NCP para TCP/IP. Movement Information Net – MINET (Rede de Movimento de Informação) tem início no começo do ano na Europa, conectado à internet em setembro, o Conselho das Atividades da Internet (Internet Activities Board, IAB) foi estabelecido, substituindo o ICCB, ARPANET se divide em ARPANET e MILNET; este último se integrou à Rede de Dados de Defesa (Defense Data Network), criada no ano anterior. Foram para a MILNET 68 dos 113 nós existentes. 1984 – Foi introduzido o Sistema de Nome de Domínio (Domain Name System, DNS). 1988 – A rede atinge os 60.000 servidores. É concluída a instalação do primeiro cabo de �bra óptica transatlântico ligando a Europa e a América do Norte. Esse cabo pode suportar até 40.000 chamadas telefônicas simultâneas. Surge o primeiro vírus na internet que tomou a designação de Internet Worm e afeta 6.000 servidores. Para proteger a rede e aumentar asua segurança, é criado o CERT (Computer Emergency Response Team). Novos termos como “cracker” e “hacker” entram para o vocabulário da internet. Pelas mãos de Jarkko Oikarinen nasce o IRC – Internet Relay Chat. Canadá, Finlândia, França, Islândia, Noruega, Dinamarca e Suécia ligam-se à internet. 1990 – Surgiu nos EUA a primeira Internet Service Provider Commercial. Após ter sido absorvida pela internet, a ARPANET deixa, de�nitivamente, de existir. Peter Deutsh, Alan Emtage e Bill Heelan da McGill lançam o Archie. O primeiro software World Wide Web é criado por Tim Berners-Lee. Surgem os primeiros ISP (Internet Service Providers) comerciais. O número de servidores na internet excede os 300.000. Argentina, Áustria, Bélgica, Brasil, Chile, Grécia, Índia, Irlanda, Coreia do Sul, Espanha e Suíça entram na internet. 1991 – Gopher foi lançado na Universidade de Minnesota. 1992 – Foi inventada a WWW (World Wide Web) por Tim Berners-Lee no CERN (Laboratório Europeu de Física de Partículas), em Gênova. A ferramenta de procura no espaço Gopher, VERONICA, é lançada pela Universidade de Nevada. O número de servidores é agora de um milhão. Camarões, Chipre, Equador, Estônia, Kuwait, Luxemburgo, Eslováquia, Eslovénia, Venezuela, Antártida, Letônia, Malásia e Tailândia ligam-se à internet. 1993 – O Mosaic, de Marc Andreessen, foi lançado pelo Centro Nacional de Aplicações de Supercomputação dos Estados Unidos (NCSA) e torna-se a primeira implementação de um browser para a internet correr em ambientes Windows, Unix e Macintosh. É criado o InterNIC pela Fundação Nacional de Ciência Americana. A Casa Branca e as Nações Unidas passam a estar on line. Bulgária, Costa Rica, Egito, Fiji, Gana, Guam, Indonésia, Cazaquistão, Quénia, Liechtenstein, Peru, Romênia, Federação Russa, Turquia, Ucrânia, Ilhas Virgens e Emirados Árabes Unidos ligam-se à rede. 1994 – Começou a funcionar o First Virtual, o primeiro banco exclusivamente acessível pela internet. Jim Clark e Marc Andreessen fundam a Mosaic Communications Corp., que viria originar a Netscape Communications Corp. Surge a primeira estação de rádio a transmitir via internet. Foi lançado o Netscape Navigator e respectivo software de servidor. O número de servidores na Net ultrapassava os três milhões. Algéria, Arménia, Bermuda, Burkina Faso, China, Colômbia, Polinésia Francesa, Líbano, Lituânia, Macau, Marrocos, Nova Caledônia, Nicarágua, Nigéria, Panamá, Filipinas, Senegal, Sri Lanka, Suazilândia, Uruguai, Uzbequistão, Jamaica e Jordânia entram para a rede. ARPANET/Internet celebra seu 25º aniversário. Aparecimento das primeiras páginas de comércio eletrônico. Localidades começaram a conectar-se diretamente à internet. WWW supera a telnet para se tornar o segundo serviço mais popular da rede (atrás da FTP) baseado em porcentagem da distribuição do tráfego de pacotes e bytes na NSFNET. Os dez principais domínios por servidor #: com, edu, uk, gov, de, ca, mil, au, org, net. 1995 – Os dez principais domínios por servidor #: com, edu, net, gov, mil, org, de, uk, ca, au. Tecnologias do Ano: WWW, mecanismos de procura. Tecnologias Emergentes: Código móvel (JAVA, JAVAscript), ambientes virtuais (VRML), ferramentas de colaboração (Collaborative tools). A NSFNET volta a assumir um caráter exclusivamente acadêmico depois do tráfego de backbone da internet passar para as mãos dos ISP comerciais. Serviços on-line tradicionais começam a oferecer acesso à internet. As ações do Netscape atingem valores recordes. A WWW ultrapassa o FTP em volume de tráfego na internet. Lançamento do MS Internet Explorer 2.0 para Windows 95. James Gosling e uma equipe de programadores da SUN Microsystems lançam o Java – linguagem de programação orientada à internet. Entram na rede a Etiópia, Costa do Mar�m, Cook Islands, Cayman Islands, Anguilla, Gibraltar, Vaticano, Kiribati, Kyrgyzstan, Madagáscar, Maurícias, Micronésia, Mônaco, Mongólia, Nepal, Nigéria, Samoa Oriental, San Marino, Tanzânia, Tonga, Uganda e Vanuatu. 1996 – É lançado o Netscape Navigator 2.0, que se torna o primeiro web browser a suportar JavaScripts. Três empresas de serviço de procura na rede lançam as suas ações no mercado – são elas a Yahoo, a Excite e Lycos. Bill Clinton aprova leis de telecomunicações no sentido de penalizar a distribuição de conteúdos “inadequados” na internet. A internet pela TV – web TV – é uma realidade. Os motores de pesquisa, a Internet Phone e a linguagem Java são as tecnologias do ano. A internet �ca com quase dez milhões de servidores on- line e aproximadamente quarenta milhões de utilizadores em 150 países. Qatar, República Centro-Africana, Omã, Norfolk Island, Tuvalu, Polinésia Francesa, Síria, Aruba, Camboja, Guiana Francesa, Eritreia, Cabo Verde, Burundi, Benin, Bósnia-Herzegovina, Andorra, Guadalupe, Guernsey, Isleof Man, Jersey, Laus, Maldivas, Ilhas Marshall, Mauritânia, Ilhas Marianas do Norte, Ruanda, Togo, Iémen e Zaire ligam-se à rede. 1997 – Tecnologias emergentes: Push, Streaming Media. A America on-line Inc. adquire a Netscape Communications Corporation por um valor cifrado em 4,2 bilhões de dólares. Os selos postais eletrônicos tornam-se uma realidade com o US Postal Service, que permite a compra e download para impressão a partir da web. A Microsoft é processada pela Justiça americana, com base na Lei Antitruste, sob a alegação de prejudicar a concorrência, pois o Windows 98 distribui gratuitamente o browser Internet Explorer. As tecnologias mais relevantes desse ano foram o e-Commerce, e-Auctions, Portais de Entrada e o XML. 1998 – Tecnologias do ano: Comércio Eletrônico, Leilões on-line, Portais. A Abilene, a rede Internet 2, atravessa o Atlântico e conecta-se com a NORDUnet e a SURFnet. Surge a ISTF – Internet Societal Task Force, liderada por Vint Cerf, com o objetivo de promover questões sociais e preocupações relacionadas com a internet. As tecnologias do ano foram o e-Trade, online Banking e o MP3. A Palestina entra na rede. 2000 – Avanços na internet, aumento do número de usuários, internet para dispositivos móveis. Dias atuais – A internet continua em constante expansão no planeta e número de serviços aumenta também sem precedentes. O que é PHP? O PHP é a linguagem de desenvolvimento da Web escrita por e para desenvolvedores da Web. PHP signi�ca: Hypertext Preprocessor ou Pré-processador de hipertexto. O produto foi originalmente chamado de Personal Home Page Tools e muitas pessoas ainda pensam que é isso que o acrônimo representa. Mas à medida que se expandiu em escopo, um nome novo e mais apropriado, embora GNU-ishly recursivo foi selecionado pelo voto da comunidade. O PHP está atualmente em sua sétima reescrita principal, chamada PHP 7 ou simplesmente PHP. O PHP é uma linguagem de script do lado do servidor, que pode ser incorporada em HTML ou usada como um binário autônomo, embora o uso anterior seja muito mais comum. Os produtos proprietários nesse "nicho" são as Active Server Pages da Microsoft, o Macromedia ColdFusion e as Java Server Pages da Sun. Alguns jornalistas de tecnologia costumavam chamar o PHP de "código aberto ASP" porque sua funcionalidade é semelhante à do produto da Microsoft - embora essa formulação fosse enganosa, já que o PHP foi desenvolvido antes do ASP. Nos últimos anos, no entanto, o PHP e o Java do lado do servidor ganharam força, enquanto o ASP perdeu o mindshare, portanto essa comparação não parece mais apropriada. Mas, no momento, podemos pensar nele como uma coleção de tags super HTML ou pequenos programas que são executados dentro de suas páginas da Web - exceto no lado do servidor, antes de enviado para o navegador. Por exemplo, você pode usar o PHP para adicionar cabeçalhos e rodapés comuns a todas as páginas de um site ou para armazenar dados enviados por formulários em um banco de dados. Estritamente falando, o PHP tem pouco a ver com layout, eventos, manipulação de DOM on-the-�y, ou realmente qualquer coisa sobre o que uma página da Web parece e soa como. Na verdade, a maior parte do que o PHP faz é invisível para o usuário�nal. Alguém olhando para uma página PHP não necessariamente será capaz de dizer que ela não foi escrita apenas em HTML, porque geralmente o resultado do PHP é HTML. O PHP é um módulo o�cial do Apache HTTP Server, o servidor Web líder de mercado que executa cerca de 67% da World Wide Web (de acordo com a amplamente citada pesquisa de servidor da Web da Netcraft). Isso signi�ca que o mecanismo de script PHP pode ser incorporado ao próprio servidor Web, levando a um processamento mais rápido, alocação de memória mais e�ciente e manutenção simpli�cada. Como o Apache Server, o PHP é totalmente multiplataforma, o que signi�ca que é executado em vários servidores indo do Linux, passando pelo Windows e e chegando até no Mac OS (a partir da versão X). Todos os projetos sob a égide da Apache Software Foundation - incluindo PHP - são programas open source. Uma Breve História do PHP O PHP foi criado no outono de 1994 por Rasmus Lerdorf , engenheiro de software, membro da equipe Apache. A primeira parte do PHP foi desenvolvida para uso pessoal no �nal de 1994. Versões iniciais era um wrapper CGI que o ajudava a acompanhar as pessoas que olhavam para o seu site pessoal. A primeira versão usada por outros estava disponível no início de 1995 e era conhecida como Ferramentas Pessoais de Página Inicial. Ele montou um pacote chamado Personal Home Page Tools (também conhecido como PHP Construction Kit) em resposta à demanda de usuários que haviam descoberto o seu trabalho por acaso ou de boca em boca. Consistia de um mecanismo de análise muito simplista que compreendia apenas alguns macros especiais e vários utilitários que eram de uso comum nas páginas iniciais da época. Um livro de visitas, um contador e algumas outras coisas. O analisador foi reescrito em meados de 1995 e denominado PHP / FI Versão 2. O FI veio de outro pacote que Rasmus havia escrito, que interpretava os dados do formulário html. Ele combinou os scripts das ferramentas Personal Home Page com o Form Interpreter e adicionou suporte SQL e o PHP / FI nasceu. O PHP / FI cresceu a um ritmo incrível e as pessoas começaram a contribuir com código para isso. Em meados de 1997, o PHP estava sendo usado em aproximadamente 50.000 sites em todo o mundo. Estava claramente se tornando grande demais para qualquer pessoa sozinha, mesmo alguém tão concentrado e enérgico quanto Rasmus. Uma pequena equipe de desenvolvimento principal agora executa o projeto no modelo "benevolent junta" de código aberto, com contribuições de desenvolvedores e usuários em todo o mundo. Zeev Suraski e Andi Gutmans, os dois programadores israelenses que desenvolveram os analisadores PHP3 e PHP4, também generalizaram e estenderam seu trabalho sob a rubrica de Zend.com (Zeev, Andi, Zend). O quarto trimestre de 1998 iniciou um período de crescimento explosivo para PHP, já que todas as tecnologias de código aberto desfrutaram de publicidade massiva. Em outubro de 1998, de acordo com o melhor palpite, pouco mais de 100.000 domínios únicos usavam o PHP de alguma forma. Pouco mais de um ano depois, o PHP quebrou a marca de um milhão de domínios. Quando escrevemos a primeira edição deste livro no primeiro semestre de 2000, o número aumentou para cerca de dois milhões de domínios. Enquanto escrevemos isso, aproximadamente 15 milhões de servidores Web públicos (no sentido de software, não o sentido de hardware) têm o PHP instalado neles. As implementações de PHP público variam de sites de mercado de massa, como o Excite Webmail e o Indianapolis 500 - Indianapolis Motor Speedway, que oferecem milhões de visualizações de página por dia, por meio de sites "Nicho de massa" como Sourceforge.net e Epinions.com, que tendem a ter maiores necessidades de funcionalidade e centenas de milhares de usuários, para sites de e-commerce e de livros como a Harvard.com e muito mais. Em sua versão PHP 5, ele se esforçou para oferecer algo que muitos usuários têm clamado nos últimos anos: funcionalidade muito melhorada de programação orientada a objetos (OOP). O PHP há muito tempo concordou com o modelo de programação de objetos com funções que permitem que os programadores de objetos obtenham resultados e informações de maneira familiar a eles. Esses esforços �caram aquém do ideal para muitos programadores, no entanto, e os esforços para forçar o PHP a construir sistemas totalmente orientados a objetos muitas vezes geraram resultados não intencionais e prejudicaram o desempenho. O modelo de objeto reconstruído do PHP 5 aproximou o PHP de outras linguagens orientadas a objetos, como Java e C ++, oferecendo suporte a recursos como sobrecarga, interfaces, variáveis e métodos de membros privados e outras construções OO padrão. Quanto a versão 6, não chegou e nem chegará a ser lançada como uma versão do PHP, pois tinha como objetivo corrigir falhas apontadas na versão 5.2 e versões anteriores, de não terem suporte nativo Unicode. Assim em 2005 chegou a ser construído um grande um grupo de trabalho para desenvolver uma versão PHP 6 que tivesse suporte, mas em 2009 foi lançada a versão 5.3 com algumas funcionalidades previstas para o PHP 6, só que mantendo-se sem o suporte Unicode. Os recursos que supostamente seriam incorporados na versão PHP 6 foram sendo integrados a partir das versões 5.3 e 5.4, razão pela qual o PHP 6 deixou de fazer sentido como uma versão principal. Contudo , este assunto não foi pací�co e chegou a ser uma matéria discutida entre os programadores, desde 2014, com vista a saber se a versão posterior à 5.x deveria ser designada por PHP 7, acabando por ser adotada. No que toca a versão PHP 7, ela foi lançada em de�nitivo no �nal de 2015. Apesar da introdução desta versão, há uma expectativa que demore algum tempo até que a mesma seja usada, na medida em que há um período de adaptação. Contudo, para facilitar o aprendizado, será utilizado a versão PHP 5, com o conteúdo e os exemplos apresentados neste livro. Tipos de arrays AUTORIA Ricardo Bortolo Vieira Os Usos de Arrays Um array é uma coleção de variáveis indexadas e agrupadas em uma única super variável facilmente referenciada que oferece uma maneira fácil de passar vários valores entre linhas de código, funções e até mesmo páginas. Vale a pena listar as maneiras comuns pelas quais os arrays são usados no código PHP real. Muitas variáveis de ambiente PHP embutidas estão na forma de matrizes, por exemplo, $ _SESSION, que contém todos os nomes e valores de variáveis sendo propagados de uma página para outra através do mecanismo de sessão do PHP). Se você quiser acessá-los, você precisa entender, no mínimo, como fazer referência a matrizes. A maioria das funções de banco de dados transporta suas informações através de matrizes, criando um pacote compacto de um bloco de dados arbitrário. É fácil transmitir conjuntos inteiros de argumentos de formulário HTML de uma página para outra em uma única matriz. Os arrays são um bom contêiner para fazer manipulações (classi�cação, contagem e assim por diante) de todos os dados que você desenvolve ao executar o script de uma única página. Quase toda situação que exige que um número de dados seja empacotado e tratado como um é apropriado para um array PHP. Mas o que são Arrays PHP? Arrays PHP são matrizes associativas com um pouco de maquinário extra, inserido. A parte associativa signi�ca que as matrizes armazenam valores de elemento em associação com valores de chave em vez de uma ordem de índice linearmente restrita. Se você viu Arrays em outras linguagens de programação, é provável que elas tenham sido matrizes vetoriais em vez de matrizes associativas - a seguir faremos uma explicação sobre essa diferença. Se você armazenar um elemento em uma Arrays associativa com uma chave, tudo que você precisa para recuperá-lo mais tarde desse Arrays será o valor da chave. Por exemplo, o armazenamento é tão simples assim: $ state_location ['San Mateo'] = 'California'; que armazena o elemento 'California' na variável de array $ state_location, em associação com a chave de pesquisa "San Mateo".Após isso ter sido armazenado, você poderá procurar o valor armazenado usando a chave, assim: $ state = $ state_location ['San Mateo']; // equals 'Califórnia'; Simples, não? Se tudo o que você deseja no Arrays é armazenar pares de chave / valor, às informações anteriores serão tudo o que você precisará saber. Da mesma forma, se você quiser associar uma ordem numérica com um monte de valores, tudo o que você precisará fazer é usar inteiros como valores chave, como no código a seguir: $ meu_array [1] = “A primeira coisa”; $ meu_array [2] = “A segunda coisa”; // e assim por diante... Todas as variáveis no PHP são denotadas com um $ inicial, não apenas variáveis escalares. Em segundo lugar, mesmo que a matriz seja associativa, os índices são agrupados por colchetes ([ ]) em vez de chaves ({ }). Por �m, não há tipo de matriz ou lista indexada apenas por números inteiros. A convenção é usar inteiros como índices associativos, e o próprio array mantém uma ordenação interna para propósitos de iteração. Além do mecanismo que possibilita esse tipo de associação de chave / valor, os arrays rastreiam algumas outras coisas nos bastidores. Por causa disso, às vezes os tratamos como outros tipos de estruturas de dados. Como veremos, os arrays podem ser multidimensionais. Eles podem armazenar valores em associação com uma sequência de valores-chave em vez de uma única chave. Além disso, as matrizes mantêm automaticamente uma lista ordenada dos elementos que foram inseridos nelas, independentemente de quais são os valores-chave. Isso possibilita tratar matrizes como listas vinculadas. Em geral, revelaremos o funcionamento desse maquinário extra à medida que exploramos as funções que o utilizam. Criando Arrays Simples Existem três maneiras principais de criar um array no script PHP: atribuindo um valor em um (e, assim, criando-o implicitamente), usando a construção array() e chamando uma função que retorna um array como seu valor. Atribuição Direta A maneira simples de criar uma Array é agir como se uma variável já fosse uma matriz e atribuísse valor a ela, assim: $ meu_array [1] = "A primeira coisa em meu array que acabei de criar"; Se $ meu_array for uma variável não vinculada (ou vinculada a uma variável nonarray) antes desta instrução, ela será agora uma variável vinculada a uma matriz com um elemento. Se este não for o caso, a matriz será armazenada em associação com a chave inteira. Se nenhum valor estiver associado a esse número, um novo array de matriz será criada para mantê-lo; se o valor estiver associado a 1, o valor anterior será sobrescrito. Você também pode atribuir em uma matriz omitindo o índice inteiramente como em $ meu_array[ ]. A Construção Array() A outra maneira de criar um array é através da Construção Array(), que cria um novo array a partir da especi�cação de seus elementos e chaves associadas. Em sua versão mais simples, array() é chamado sem argumentos, o que cria um novo array vazio. Em sua próxima versão mais simples, array () pega uma lista separada por vírgula de elementos a serem armazenados, sem qualquer especi�cação de chaves. O resultado é que os elementos serão armazenados na matriz na ordem especi�cada e são atribuídos a chaves inteiras começando com zero. Por exemplo, a declaração: $ cesto_de_frutas = array ('maça', 'laranja', 'banana', 'pera'); faz com que a variável $ cesto_de_frutas seja atribuída a um array com quatro elementos String ('maça', 'laranja', 'banana', 'pera'), com os índices 0, 1, 2 e 3, respectivamente. Além disso, o array se lembrará da ordem em que os elementos foram armazenados. A atribuição para $ cesto_de_frutas, então, tem exatamente o mesmo efeito que o seguinte: $ cesto_de_frutas [0] = 'maça'; $ cesto_de_frutas [1] = "laranja"; $ cesto_de_frutas [2] = "banana"; $ cesto_de_frutas [3] = "pera"; supondo que a variável $ cesto_de_frutas estava desassociada na primeira atribuição. O mesmo efeito também poderia ter sido obtido pela omissão dos índices na tarefa, da seguinte forma: $ cesto_de_frutas [] = 'maça'; $ cesto_de_frutas [] = "laranja"; $ cesto_de_frutas [] = "banana"; $ cesto_de_frutas [] = "pera"; Neste caso, o PHP novamente assume que você está adicionando elementos sequenciais que devem ter índices numéricos contando para cima a partir de zero. Especi�cando Índices Usando Array() O exemplo simples de array() na seção anterior atribui índices a nossos elementos, mas esses índices serão inteiros, contando para cima a partir de zero. Acontece que o array() nos oferece uma sintaxe especial para especi�car quais devem ser os índices. Em vez de valores de elemento separados por vírgulas, você fornece pares de valor-chave separados por vírgulas, onde a chave e o valor são separados pelo símbolo especial =>. Considere a seguinte declaração: $ cesto_de_frutas = array (0 =>' maca ', 1 =>' laranja ', 2 =>' banana ', 3 =>' pera '); A avaliação terá exatamente o mesmo efeito que nossa versão anterior - cada string será armazenada na matriz sucessivamente, com os índices 0, 1, 2, 3 em ordem. Em vez disso, no entanto, podemos usar exatamente a mesma sintaxe para armazenar esses elementos com diferentes índices: $ cesto_de_frutas = array ('vermelho' => 'maçã', 'laranja' => 'laranja', 'amarela' => 'banana' 'verde' => 'pera'); Isso nos dá os mesmos quatro elementos, adicionados ao nosso novo array na mesma ordem, mas indexados por nomes de cores em vez de números. Para recuperar o nome do fruto amarelo, por exemplo, nós apenas avaliamos a expressão: $ cesto_de_frutas [amarela] // será igual a 'banana' Finalmente, como dissemos anteriormente, você pode criar um array vazio chamando a função de array sem argumentos. Por exemplo: $ meu_array_vazio = array (); cria um array sem elementos. Isso pode ser útil para passar para uma função que espera uma matriz como argumento. Funções Retornando Arrays A maneira �nal de criar um array em um script é chamar uma função que retorna um array. Esta pode ser uma função de�nida pelo usuário, ou pode ser uma função interna que faz um array via métodos internos ao PHP. Muitas funções de interação com banco de dados, por exemplo, retornam seus resultados em arrays que as funções criam na hora. Outras funções existem simplesmente para criar arrays que são úteis para ter funções posteriores para manipulação de array. Uma delas é range(), que recebe dois inteiros como argumentos e retorna uma matriz preenchida com todos os inteiros (inclusive) entre os argumentos. Em outras palavras: $ meu_array = range (1,5); cria um array sem elementos. Isso pode ser útil para passar para uma função que espera uma matriz como argumento. é equivalente a: $ meu_array = array (1, 2, 3, 4, 5); Recuperando Valores Depois de armazenarmos alguns valores em uma matriz, como podemos obtê-los novamente? Recuperando por índice A maneira mais direta de recuperar um valor é usar seu índice. Se tivermos armazenado um valor em $ meu_array no índice 5, $ meu_array [5] deverá avaliar o valor armazenado. Se $ meu_array nunca foi atribuído, ou se nada foi armazenado nele com um índice de 5, $ meu_array [5] se comporta como uma variável não ligada. A construção list () Há várias outras maneiras de recuperar valores de arrays sem usar chaves, a maioria das quais explora o fato de que os arrays estão registrando silenciosamente a ordem na qual os elementos são armazenados. Mas um desses exemplos é list (), que é usado, para atribuir vários elementos de matriz a variáveis em sucessão. Suponha que as duas instruções a seguir sejam executadas: $ cesto_de_frutas = array ('maca', 'laranja', 'banana'); lista ($ fruta_vermelha, $ fruta_laranja) = $ cesto_de_frutas; Isso atribui o String "maca" à variável $ fruta_vermelha e a string "laranja" à variável $ fruta_laranja (sem atribuição de "banana", porque não fornecemos variáveis su�cientes). As variáveis em list () serão atribuídas a elementos da matriz na ordem em que foram originalmente armazenadas na matriz. Observe o comportamento incomum aqui - a construção list ()está no lado esquerdo do operador de atribuição (=), onde normalmente encontramos apenas variáveis. Em certo sentido, list () é o oposto ou inverso de array () porque array () empacota seus argumentos em um array, e list () desmonta o array novamente em atribuições de variáveis individuais. Se avaliarmos: list ($ primeiro, $ segundo) = array ($ primeiro, segundo); os valores originais de $ primeiro e $ segundo serão atribuídos a essas variáveis novamente, depois de terem sido armazenados brevemente em uma matriz. Arrays Multidimensionais Até agora, os exemplos de array que vimos foram todos unidimensionais, com apenas um nível de chaves entre colchetes. No entanto, o PHP pode suportar facilmente arrays multidimensionais, com números arbitrários de chaves. E assim como nos arrays unidimensionais, não há necessidade de declarar nossas intenções com antecedência - a primeira referência a uma variável array pode ser uma atribuição como: $ multi_array [1] [2] [3] [4] [5] = "Tesouro profundamente enterrado"; Essa é uma matriz de cinco dimensões com chaves sucessivas que acontecem neste caso, para ser cinco inteiros sucessivos. Na verdade, pensar em matrizes como multidimensionais torna as coisas mais confusas do que precisam ser. Em vez disso, lembre-se de que os valores armazenados em matrizes podem ser matrizes, tão legitimamente quanto podem ser cadeias ou números. A sintaxe de índice múltiplo no exemplo anterior é simplesmente uma maneira concisa de se referir a um array (quadridimensional) que é armazenado com uma chave de 1 in $ multi_array, que por sua vez tem um array (tridimensional) armazenado nele, e assim por diante. Note também que você pode ter diferentes profundidades de referência em diferentes partes da matriz, assim: $ multi_level_array [0] = “uma string simples”; $ multi_level_array [1][‘contains’] = “um String armazenado mais profundamente”; A chave integer de 0 armazena um String, e a chave de 1 armazena uma matriz que, por sua vez, tem um String nela. No entanto, você não pode continuar com esta atribuição: $ multi_level_array [0] [‘contém’] = “outra string profunda”; sem o resultado perdido a primeira atribuição será "um String simples". A chave de 0 pode ser usada para armazenar um String ou outra array, mas não ambas ao mesmo tempo. Se nos lembrarmos de que arrays multidimensionais são simplesmente arrays que têm outros arrays, armazenadas nelas, é mais fácil ver como o construtor de criação de array () se generaliza. De fato, mesmo essa tarefa aparentemente complicada não é tão complicada: $ cornucopia = array ('fruta' => array ('vermelho' => 'maçã', 'laranja' => 'laranja', 'amarelo' => 'banana ', ' verde '=>' pêra '), 'flor'=> array (' vermelho '=> ' rosa ', ' amarelo '=>' girassol ', ' púrpura '=>' íris ')); É simplesmente um array com dois valores armazenados em associação com chaves. Cada um desses valores é um array em si. Depois de termos feito o array, podemos referenciá-lo assim: $ tipo_desejado = 'flor'; $ cor_desejada = "roxo"; print ("O $ cor_desejada $ tipo_desejado é" $ cornucopia [$ tipo_desejado [$ cor_desejada]); Veja a saída do navegador: A flor roxa é iris Há um motivo pelo qual usamos o operador de concatenação de String ( . ) na declaração impressa anterior, em vez de simplesmente incorporar a $ cornucopia [$ tipo_desejado] [$ cor_desejada ] em nossa sequência de impressão, como fazemos com outras variáveis. A análise de cadeia de caracteres PHP3 pode ser confundida por vários índices de matriz em uma cadeia de aspas, portanto, ela precisa ser concatenada separadamente. O PHP desde a versão 4 lida com isso de uma maneira melhor - você estará seguro ao inserir referências de array em um String contanto que você coloque a referência entre chaves, assim: print (“O que queremos é {$ cornucopia [$ tipo_desejado [ $ cor_desejada ]} ”); Finalmente, observe que não há grande penalidade por indexação indevida em um array multidimensional quando estamos tentando recuperar algo; se nenhuma chave for encontrada, a expressão será tratada como uma variável não vinculada. Então, se tentarmos o seguinte: $ tipo_desejado = "fruta";$ cor_desejada = "roxo"; // uh-oh, nós não guardamos nenhuma ameixa print ("$ cor_desejada $ tipo_desejado é" $ cornucopia [$ tipo_desejado ] [$ cor_desejada ]); Tipos de operadores AUTORIA Ricardo Bortolo Vieira Operadores Aritméticos Só podem ser utilizados quando os operandos são números (integer ou �oat). Se forem de outro tipo, terão seus valores convertidos antes da realização da operação. Operadores de Strings Existe apenas um operador de cadeia de caracteres - o operador de concatenação ("."). Exemplo: $ a = "Olá";$ b = $ a."Mundo!"; // agora$ b = "Olá mundo"! Operadores de Atribuição O operador de atribuição básico é "=". Sua primeira inclinação pode ser pensar nisso como "igual a". Não. Isso realmente signi�ca que o operando à esquerda é de�nido como o valor da expressão nos direitos (isto é, "é de�nido como"). O valor de uma expressão de atribuição é o valor atribuído. Ou seja, o valor de "$ a = 3" é 3. Isso permite que você faça algumas coisas complicadas: Tabela 01 - Operadores Aritméticos. Exemplo Nome Resultado $ a + $ b Adição Soma de $ a e $ b. $ a - $ b Subtração Restante de $ b subtraído de $ a. $ a * $ b Multiplicação Produto de $ a e $ b. $ a / $ b Divisão Dividendo de $ a e $ b. $ a % $ b Modulus Restante de $ a dividido por $ b. $a = ($ b = 4) + 5; // $ a é igual a 9 agora e $ b foi definido como 4. Além do operador de atribuição básico, existem "operadores combinados" para todos os operadores aritméticos e de cadeia de caracteres binários que permitem usar um valor em uma expressão e, em seguida, de�nir seu valor para o resultado dessa expressão. Por exemplo: $ a = 3; $ a + = 5; // define $a para 8, como se tivéssemos dito: $ a = $ a + 5; $ b = " Hello"; $ b. = " There!"; // define $b para "Hello There!", assim como $ b = $ b. " There! "; Operadores bit a bit Operadores bit a bit permitem que você ative ou desative bits especí�cos dentro de um inteiro. Tabela 02 - Operadores bit a bit. Exemplo Nome Resultado $a & $b And Os bits de�nidos em $ a e $ b estão de�nidos. $a | $b Or Os bits de�nidos em $ a ou $ b estão de�nidos. ~ $a Not Os bits de�nidos em $ a não estão de�nidos e vice-versa. $a << $b Shiftleft Mude os bits de $ a $ b passos para a esquerda (cada passo signi�ca “multiplicar por dois”). $a >> $b Shiftright Mude os bits de $ a $ b passos para a direita (cada passo digni�ca “dividir por dois”). Operadores lógicos A razão para as duas variações diferentes de " And " e " Or " operadores é que eles operam em precedentes diferentes. (Ver abaixo.) Operadores de Comparação Os operadores de comparação, como o próprio nome sugere, permite comparar dois valores. Tabela 03 - Operadores lógicos. Exemplo Nome Resultado $a and $b And Verdade de ambos $ a e $ b são verdadeiros. $a or $b Or Verdadeiro se $ a e $ b for verdadeiro. $a xor $b Or Verdadeiro se $ a e $ b for verdadeiro, mas nãoambos. ! $a Not Verdade se $ a não for verdade. $a && $b And Verdade de ambos $ a e $ b são verdadeiros. $a || $b Or Verdadeiro se $ a e $ b for verdadeiro Operadores de Expressão Condicional Outro operador condicional é o operador: " ?: " (Ou trinário), que opera como em C e em muitas outras linguagens. (expr1)? (expr2): (expr3); Essa expressão retorna para expr2 se expr1 for avaliada como verdadeira e expr3 se expr1 for avaliada como false. Operadores de Incremento e Decremento Tabela 04 - Operadores de Comparação. Exemplo Nome Resultado $a == $b Igualdade Verdadeiro de $ a for igual a $ b $a != $b Diferente Verdadeiro de $ a não for igual a $ b $a < $b Menor que Verdadeiro de $ a for estritamentemaior que $ b $a > $b Maior que Verdadeiro de $ a for menor ou igual a $b. $a <= $b<="" td=""> Menor ou igual a Verdade de ambos $ a e $ b são verdadeiros. $a >= $b Maior ouigual a Verdadeiro de $ a for maior ou iguala $ b. Tabela 05 - Operadores de Incremento e Decremento. ++ Incremento -- Decremento Podem ser utilizados de duas formas: antes ou depois da variável. Quando utilizado antes, retorna o valor da variável antes de incrementá-la ou decrementá-la. Quando utilizado depois, retorna o valor da variável já incrementado ou decrementado. Exemplos: $a = $b = 10; // $a e $b recebem o valor 10$c = $a++; // $c recebe 10 e $a passa a ter 11$d = ++$b; // $d recebe 11, valor de $b já incrementado. Operadores de Ordem de Precedência dos Operadores A precedência de um operador especi�ca como "estreitamente" ele une duas expressões. Por exemplo, na expressão 1 + 5 * 3, a resposta é 16 e não 18, porque o operador de multiplicação ("*") tem uma precedência maior do que o operador de adição ("+"). A tabela a seguir lista a precedência dos operadores com os operadores de precedência mais baixa, listados primeiro. Tabela 06 - Operadores de Ordem de Precedência dos Operadores Associatividade Operador esquerda , esquerda or esquerda and direita print esquerda = += -+ *= /= .= %= &= != ~= <<=>>= esquerda ?: esquerda || esquerda && esquerda | esquerda ^ esquerda & não associativo ==!= não associativo < <=> >= esquerda <<>> esquerda +-. esquerda */% direita ! ~++ - (int) (double) (string) (array) (object) @ direita [ não associativo new SAIBA MAIS Como criar minha primeira classe em PHP Caro(a) aluno(a), dando continuidade no aprimoramento pro�ssional, deixo a sugestão de leitura deste artigo que tenho certeza que te ajudará a sanar dúvidas e te dará uma visão mais ampla da Programação para Internet. Neste conteúdo você aprenderá a criar sua primeira classe (PHP Class) na linguagem PHP. Aprenda também a usar herança e interfaces, bem como métodos, atributos e propriedades. ACESSAR REFLITA "O futuro não é de�nido em uma trilha. É algo que podemos decidir, e na medida em que não violamos quaisquer leis conhecidas do universo, provavelmente podemos fazê-lo funcionar da maneira que queremos". (Alan Kay) Caro(a) aluno(a), Dessa forma, �ca a re�exão para todos nós, de como pensar a programação, de criar e superar as expectativas, de maneira que sempre possa buscar o seu melhor. Seja o melhor que você puder ser. O aprimoramento deve ser constante. ACESSAR https://www.devmedia.com.br/como-criar-minha-primeira-classe-em-php/38895 https://citacoes.in/citacoes/1841701-alan-kay-the-future-is-not-laid-out-on-a-track-it-is-somet/ Caro(a) aluno(a), chegamos ao �nal desta unidade que foi preparada com muito carinho para você. Nesta unidade foram apresentados alguns conceitos da Programação para Internet como os tipos de Arrays, os tipos de Operadores e também uma introdução à programação web com uma retrospectiva cronológica da internet. O conteúdo que foi apresentado nesta unidade, foi somente a ponta do Iceberg, foi super�cial, mas nas próximas unidades você poderá se aprofundar nos conceitos e prática da Programação para Internet. Estaremos juntos na próxima unidade. Até lá! Livro Conclusão - Unidade 1 Filme Acesse o link https://www.devmedia.com.br/guia/programador-php/38193 Unidade 2 Introdução aos Tipos de funções AUTORIA Ricardo Bortolo Vieira Introdução Esta unidade inicia os estudos com uma breve introdução aos Tipos de funções. Você verá nesta unidade, como é de�nida uma função, os argumentos e muito mais. Com o estudo mais aprofundado e especí�co sobre o recebimento de formulários e também a sua utilização dentro da Programação para Internet. Você não pode parar, pois preparamos muitas coisas boas e trouxemos um conteúdo que foi preparado pensando em te trazer mais conhecimentos e um direcionamento em sua carreira pro�ssional. Então vamos aos estudos! Agora é mão na massa e bom estudo! Tipos de funções AUTORIA Ricardo Bortolo Vieira Introdução a Função O que é uma função? Uma função é uma forma de quebrar um pedaço de código e dar um nome a esse pedaço, para que você possa usar esse pedaço mais tarde em apenas uma linha de código. As funções são mais úteis quando você usar o código em mais de um lugar, mas elas poderão ser úteis mesmo em situações de uso único, porque podem tornar seu código muito mais legível. (Converse; Park; Morgan, 2004. p. 148). De�nição de Função A Sintaxe básica para de�nições de função tem a seguinte forma: Ou seja, as de�nições de função têm quatro partes: A função de palavra especial O nome que você quer dar à sua função A lista de parâmetros da função - variáveis de sinal de dólar separadas por vírgulas O corpo da função - um conjunto de instruções em anexo Figura 26 - Exemplo de de�nição de função. Fonte: elaborado pelo autor, 2019. Assim como com nomes de variáveis, o nome da função deve ser composto de letras, números e sublinhados, e não deve começar com um número. Ao contrário dos nomes das variáveis, os nomes das funções são convertidos para letras minúsculas antes de serem armazenados internamente pelo PHP, portanto, uma função é a mesma, independentemente da capitalização. A versão curta do que acontece quando uma função de�nida pelo usuário é chamada é: 1. O PHP procura a função pelo seu nome (você receberá um erro se a função ainda não tiver sido de�nida). 2. O PHP substitui os valores dos argumentos de chamada (ou os parâmetros reais) pelas variáveis na lista de parâmetros da de�nição (ou nos parâmetros formais). 3. As declarações no corpo da função são executadas. Se alguma das instruções executadas for uma instrução de retorno, a função para e retorna o valor fornecido. Caso contrário, a função será concluída após a última instrução ser executada, sem retornar um valor. Exemplo de de�nição de função Como exemplo, imagine que temos o seguinte código que ajuda a decidir qual tamanho de refrigerante engarrafado comprar. (Isso é em algum momento, quando os compradores de supermercados rotineiramente usam seus navegadores da Web para acessar nosso prático site de comparação de preços). A �gura 01 apresenta o código e como esse tipo de comparação acontece no nosso site o tempo todo, uma boa prática de programação é torná-lo uma função reutilizável. Uma maneira de fazer isso seria a seguinte reescrita: Figura 27 - Exemplo de de�nição de função. Fonte: elaborado pelo autor, 2019 Nossa função melhor_negocio, apresentado na �gura 02, abstrai as três linhas no código anterior que �zeram a aritmética e a comparação. Leva quatro números como argumentos e retorna o valor de uma expressão booleana. Como acontece com qualquer valor booleano, podemos incorporá-lo na parte de teste de uma instrução if. Embora essa função seja maior que o código original, há dois benefícios para essa reescrita: Podemos usar a função em vários lugares (salvando linhas no geral) e se decidirmos alterar o cálculo, terá que fazer a alteração em apenas um lugar. Alternativamente, se a única maneira de usarmos essas comparações de preço é imprimir qual transação é preferida, podemos incluir a impressão na função, conforme �gura 29. Figura 28 - Exemplo de de�nição de função reescrita. Fonte: elaborado pelo autor, 2019. Nossa primeira função usou a declaração de retorno para enviar de volta um resultado booleano, que foi usado em um teste if. A segunda função não tem declaração de retorno, porque é usada para o efeito colateral de imprimir texto no navegador do usuário. Quando a última declaração desta função é executada, o PHP simplesmente passa para executar a próxima instrução após uma chamada de função. Argumentos da Função As informações podem ser passadas para as funções através da lista de argumentos, que é uma lista delimitada por vírgulas de variáveis e / ou constantes. O PHP suporta a passagem de argumentos por valor (o padrão), passagem por referência e valores de argumento padrão. Listas de argumentos de tamanho variável não são suportadas, mas um efeito similar pode ser obtido pela passagem de arrays. Figura 29 - Outro exemplo de de�nição de função. Fonte: elaborado pelo autor, 2019. Passagem de Argumentospor Referência Por padrão, os argumentos da função são passados por valor, para que se você alterar o valor do argumento dentro da função, ele não seja alterado fora da função. Se você deseja permitir que uma função modi�que seus argumentos, você deverá passá-los por referência. Se você quiser que um argumento para uma função seja sempre passado por referência, você pode preceder um & para o nome do argumento na de�nição da função, conforme �gura 31. Figura 30 - Exemplo de Argumentos da Função. Fonte: elaborado pelo autor, 2019. Se você deseja passar uma variável por referência a uma função que não faz isso por padrão, você pode preceder um & ao nome do argumento na chamada de função, conforme apresentado na �gura 32. Figura 31 - Exemplo de Passagem de Argumentos por Referência. Fonte: elaborado pelo autor, 2019. Argumentos com Valores Pré-De�nidos (Padrão) Uma função pode de�nir valores padrão no estilo C ++ para argumentos escalares da seguinte forma: Figura 32 - Exemplo de Passagem de Argumentos por Referência. Fonte: elaborado pelo autor, 2019. A saída do fragmento acima é: Fazendo uma xícara de cappuccino. Fazendo uma xícara de café expresso. O valor padrão deve ser uma expressão constante, não, por exemplo, uma variável ou membro de classe. Observe que, ao usar argumentos padrão, qualquer padrão deve estar no lado direito de qualquer argumento não padrão; caso contrário, as coisas não funcionarão como esperado. Considere o seguinte trecho de código: Figura 33 - Exemplo de Argumentos com Valores Padrão. Fonte: elaborado pelo autor, 2019. A saída do exemplo acima é: Atenção: Falta o argumento 2 na chamada de makeyogurt () em /usr/local/etc/httpd/htdocs/php3test/functest.html on line 41 Fazendo uma tigela de framboesa. Agora, compare o acima com isto: Figura 34 - Exemplo de Argumentos com Valores Padrão. Fonte: elaborado pelo autor, 2019. A saída deste exemplo é: Fazendo uma tigela de framboesa acidophilus. Figura 35 - Exemplo de Argumentos com Valores Padrão. Fonte: elaborado pelo autor, 2019. Recebendo dados de formulários AUTORIA Ricardo Bortolo Vieira Introdução ao Formulário PHP O manuseio de formulários é um dos melhores recursos do PHP. A combinação de HTML para construir um formulário de entrada de dados, PHP para manipular os dados e um servidor de banco de dados para armazenar os dados está no cerne de todos os tipos de tarefas da Web extremamente úteis. Formulários HTML Você já sabe muito do que precisa para manipular formas no PHP. Existem alguns pontos especí�cos a serem apresentados quando falamos de formulários: Sempre use um NOME para cada elemento de entrada de dados INPUT, SELECT, TEXTAREA e assim por diante. Esses atributos NAME se tornarão nomes de variáveis PHP - você não poderá acessar seus valores se não usar um atributo NAME para cada um deles. Um campo de formulário NAME não precisa ser igual ao nome do campo de banco de dados correspondente, mas geralmente é uma boa prática. Você poderá e geralmente deverá especi�car um valor em vez de deixar HTML enviar o valor padrão. Considere substituir um valor numérico por um valor de texto, se possível, porque o banco de dados é muito mais lento em seqüências de caracteres correspondentes do que inteiros. O valor pode ser de�nido para os dados que você deseja exibir no formulário. Lembre-se de que você pode passar variáveis ocultas de um formulário para outro ou página, usando os elementos de entrada de dados HIDDEN. Essa prática poderá ter implicações de segurança negativas, mas geralmente não é pior do que armazenar os dados em um cookie. Lembre-se de que você pode passar múltiplas variáveis em um array - mas você precisará informar ao usuário que esta é uma possibilidade. (Converse; Park; Morgan, 2004. p. 311). Uma das dúvidas mais frequentes entre desenvolvedores iniciantes em PHP é como manipular os dados de formulário enviados para os scripts PHP, principalmente dados de "checkbox" e upload de arquivos. Um formulário HTML é apenas uma tela bonita para onde os usuários poderão inserir informações que serão interpretados de alguma maneira por algum script em um determinado servidor. E no nosso caso, é um script PHP. Primeiro: o formulário deverá conter um botão "submit", através do comando apresentado na �gura 36. Segundo: todos os campos que serão tratados no script PHP deverão conter o parâmetro "name", caso contrário, os dados não serão passados para o script PHP, conforme apresentado na �gura 37. Figura 36 - Exemplo do comando de envio com o botão submit. Fonte: elaborado pelo autor, 2019. Como as informações do formulário serão passadas para esse script PHP e como as informações do formulário enviado serão tratadas, dependerá de você. Existem 2 métodos que poderão ser usados: GET e POST. O recomendável sempre para todos os formulários é usar o método POST, onde os dados enviados não são visíveis nas URLs, ocultando possíveis importantes informações e permitindo o envio de longas informações. O GET é totalmente o contrário disso. Você deve estar se perguntando "como as informações chegam para o script PHP?" Figura 37 - Exemplo de script PHP com parâmetro name. Fonte: elaborado pelo autor, 2019. O formulário apresentado na �gura 39 utiliza o método POST para envio das informações, em um "script.php": Figura 38 - Exemplo de formulário HTML. Fonte: elaborado pelo autor, 2019. Na �gura 13 vemos um exemplo de como utilizar o formulário criado na �gura 12. Se o formulário tivesse sido enviado usando o método GET, você simplesmente teria que usar $_GET no lugar de $_POST. Em vez de usar $_GET ou $_POST você poderá escrever a variável com o mesmo nome do campo do formulário (no exemplo, $campo1 e $campo2). Mas, esse uso não é recomendado, pois se a diretiva "register_globals" na con�guração do seu PHP estiver desativada, as variáveis com nome dos campos dos formulários, terão um valor vazio. Uma solução para isso é usar a função import_request_variables no começo dos seus scripts que interpretam formulários. Essa função aceita 3 letras como argumentos: P, G e C, referentes a $_POST, $_GET e $_COOKIE respectivamente. Exemplo de uso: Figura 39 - Uso de método POST para envio de formulário. Fonte: elaborado pelo autor, 2019. Exemplo: Você possui formulário com os campos "nome", "endereço" e "idade". Assuma que a diretiva "register_globals" do seu PHP esteja desligada, mas, você já havia programado o script usando as variáveis no escopo global, no lugar de $_POST. Adicionando aquela função no começo do script, as variáveis do seu formulário postado estarão conforme a �gura 41. Figura 40 - Exemplo da utilização da função import_request_variables Fonte: elaborado pelo autor, 2019. Serão extraídas cada campo para uma variável diferente: $nome, $endereco e $idade. Campos Hidden Os campos hidden são usados para passar informações que não poderão ser alteradas pelo usuário que estará inserindo informações no formulário. Por exemplo: você tem um site com sistema de login e o usuário quer alterar as informações de login dele. O script que irá manipular esse formulário, precisa saber o ID do usuário para poder alterar as informações no banco de dados, então esse ID é um campo hidden. Exemplos de utilização de campos hidden estão nas �guras 42 e 43. Figura 41 - Exemplo de uma junção no começo do formulário. Fonte: elaborado pelo autor, 2019. Figura 42 - Exemplo de hidden.html. Fonte: elaborado pelo autor, 2019. Figura 43 - Exemplo de hidden.php. Fonte: elaborado pelo autor, 2019. Campos Text e Textarea Os campos text e textarea são os tipos mais simples, onde há somente um possível valor por campo. Dispensam maiores explicações e estão presentes nas Figuras 18 e 44. Figura 45 - Exemplo de texts.php. Fonte: elaborado pelo autor, 2019. Campos Radio Campos Radio permitem um relacionamento de um para muitos entre identi�cador e valor, ou seja, eles têm múltiplos possíveis valores, mas somente um pode ser pré- exibido ou selecionado. Eles sãomelhores para pequenos conjuntos de opções, geralmente entre dois e dez, que precisam de mais do que uma palavra ou duas de texto para se identi�carem. Infelizmente, é um pouco mais difícil representar os dados armazenados em um botão de opção do que em uma caixa de seleção ou campo de texto. Isso ocorre porque existe apenas um valor possível para um texto ou uma área de texto e apenas dois valores possíveis para uma caixa de seleção - mas os botões de opção podem ter mais de dois valores possíveis. Portanto, você terá que produzir parte do formulário atual com o PHP. Isso parece um pouco menos arrumado do que os estilos que empregamos anteriormente, então você deve investir mais tempo e esforço para alcançar um script facilmente legível. Mais uma vez, a experiência de interface de usuário permitida pelos botões de rádio vale a pena o problema extra que isso dá ao desenvolvedor da Web. (Converse; Park; Morgan, 2004.p. 317). Por exemplo: você tem um sistema de "quiz". Figura 45 - Exemplo de texts.php. Fonte: elaborado pelo autor, 2019. Cada pergunta possui 5 possíveis respostas. Cada resposta é um radio, onde os 5 radios dessa pergunta possuem o mesmo identi�cador, mas cada um com valor diferente. Este exemplo está presente nas �guras 46 e 47. Figura 46 - Exemplo de radio.html. Fonte: elaborado pelo autor, 2019. Campos Checkbox O tipo Checkbox tem somente um possível valor por entrada: on value (marcado) ou no value (desmarcado). No script você deve fazer a veri�cação para saber se o campo foi marcado ou não. É possível também utilizar grupos de checkbox com o mesmo nome. Para isso você deve adicionar "[]" no �nal do nome, para o PHP interpretar como array, veja o código exemplo nas �guras 48 e 49. Figura 47 - Exemplo de radio.php. Fonte: elaborado pelo autor, 2019. Figura 48 - Exemplo de checkbox.html. Fonte: elaborado pelo autor, 2019. Figura 49 - Exemplo de checkbox.php. Fonte: elaborado pelo autor, 2019. Campos Select Os campos select permitem tratar uma variedade de opções, onde o usuário pode selecionar apenas uma opção ou múltiplas opções. Quando você permite múltiplas seleções, deve adicionar "[]" no �nal do nome, para o PHP interpretar como array. Nos exemplos das �guras 50 e 51, mostramos o funcionamento e tratamento de ambas. Figura 50 - Exemplo de um select.html. Fonte: elaborado pelo autor, 2019. A manipulação de dados de formulários é uma das coisas mais importantes que todo desenvolvedor deve saber, pois normalmente é por meio dela que existe a comunicação de aplicação x banco de dados. Figura 51 - Exemplo de um select.php. Fonte: elaborado pelo autor, 2019. Validando dados de formulários AUTORIA Ricardo Bortolo Vieira Vamos falar sobre uma funcionalidade do HTML5 que é muito útil na criação de validações de formulários, é o HTML5 Validator. Há muito tempo a validação de um campo de formulário é uma coisa que vem dando muito trabalho aos desenvolvedores, muitos programadores desenvolveram formas de validação em javascript, depois com o surgimento do jQuery logo apareceu um plugin de validação, mas agora com o novo HTML5 as coisas �caram muito mais fáceis, pois a validação tornou-se algo nativo da linguagem. Será apresentado algumas opções de como realizar a validação de um campo, seja ela por javascript ou no HTML5. Validação com Javascript Começaremos pela validação em javascript. Na �gura 52 vamos usar um código simples de um formulário, onde iremos validar se a informação foi preenchida, caso contrário a informação não será enviada. Esse é o nosso formulário, que deverá ser exibido como mostra a �gura 53. Figura 52 - Exemplo validação de um código html. Fonte: elaborado pelo autor, 2019. Agora precisamos usar o Javascript para validar esses campos. O que queremos que aconteça é que seja impossível enviar os dados do formulário com o campo vazio, para isso iremos utilizar um código javascript conforme apresentado na �gura 53. Figura 53 - Aparência do formulário. Fonte: elaborado pelo autor, 2019. Após colocarmos esse código nosso formulário deverá validar, se por exemplo deixarmos o campo nome em branco, ele mostrará a mensagem conforme �gura 55. Figura 54 - Código javascript de validação. Fonte: elaborado pelo autor, 2019. Dessa forma nosso formulário será validado, de forma simples e fácil, mas com um código extenso, como podemos ver. Validando com HTML5 Com a chegada da nova versão do HTML, além de muitas outras melhorias, agora podemos validar um campo sem precisar escrever muito código, tornando o trabalho dos desenvolvedores muito mais prático e fácil. Na �gura 30 veremos que é possível fazer o mesmo do exemplo anterior de uma maneira muito mais fácil e prática e escrevendo menos código. Figura 55 - Resultado da validação. Fonte: elaborado pelo autor, 2019. Você não pode esquecer que para usar recursos HTML5 precisará colocar o doctype referente à linguagem. Como você pode ver, foi escrito muito menos código do que anteriormente e na �gura 57 poderá ver que o resultado é o mesmo da validação com javascript. Figura 56 - Validando formulário com HTML5. Fonte: elaborado pelo autor, 2019. Personalizando a Mensagem de Validação Caso você queira personalizar a mensagem de validação, é possível incluir uma nova mensagem junto da mensagem padrão do browser utilizando o atributo title, mas dessa forma ela não é personalizada por completo. Veja na �gura 58 como isso �caria. Figura 57 - Resultado da validação em HTML5. Fonte: elaborado pelo autor, 2019. Figura 58 - Inserindo mensagem junto com mensagem padrão. Fonte: elaborado pelo autor, 2019. SAIBA MAIS Para dar continuidade aos estudos proponho a você como sugestão para o seu desenvolvimento dentro da Programação para Internet, este minicurso, Introdução ao PHP, da Plataforma Devmedia, que grande que será de grande utilidade como complemento do que foi estudado nesta unidade. ACESSAR https://www.devmedia.com.br/curso/introducao-ao-php/2171 REFLITA “Algumas pessoas acham que foco signi�ca dizer sim para a coisa em que você vai se focar. Mas não é nada disso. Signi�ca dizer não às centenas de outras boas ideias que existem. Você precisa selecionar cuidadosamente.” (Steve Jobs) Inspirado em uma das maiores mentes da computação, Steve Jobs, hoje é o dia certo para estudar, trabalhar, buscar algo novo. Mas, não devemos fazer isso tentando abraçar o mundo, ou seja, tentando fazer tudo ao mesmo tempo, mas sim, um de cada vez, porém de forma completa e totalmente envolvida. Assim, priorizar é a competência que v. deve aprimorar, somente assim será capaz de ir além e fazer coisas que outros não podem. Hoje é o dia! Faça o hoje valer a pena, fazendo boas escolhas! ACESSAR https://www.tecmundo.com.br/internet/3145-frases-impactantes-sobre-tecnologia-e-informatica.htm Caro(a) Aluno(a)! Chegamos ao �nal desta unidade II da Programação para Internet com satisfação de tê-lo aqui conosco, com o sentimento de grande satisfação de saber você querido(a) aluno(a) conseguiu chegar até o �m. Parabéns!!! Nesta unidade, você recebeu uma introdução aos tipos de funções e recebimento e validação de formulários. Caro (a) Aluno (a), mais uma vez gostaria de parabenizá-lo pelo esforço e a dedicação para chegar até aqui. Desejo todo o sucesso que você puder conquistar em sua vida pessoal e pro�ssional. Sucesso!!! Um grande abraço! Leitura complementar Caro(a) aluno(a), na área da tecnologia da informação, é comum haver sempre uma reciclagem dos pro�ssionais. Tudo muda o tempo todo. Tecnologias novas surgem, a forma de fazer a mesma coisa muda, se tornando mais e�ciente. E por que não com as linguagens de programação? Ainda mais relacionadas à web, que é o setor em grande crescimento atualmente. Neste artigo são apresentadas algumas novidades que foram incorporadas ao PHP 5.4. Nesta versão, houve muitas mudanças e incrementos, mas, esse artigo trata de 3 assuntos importantes dentro do PHP, que são os Servidor HTTP embutido, Estrutura de arrays e NameSpaces. Conclusão- Unidade 2 Espero que você aproveite bem este artigo e que ele possa te orientar dentro da Programação para Internet. ACESSAR Livro https://www.devmedia.com.br/novidades-do-php-5-4/27850 Filme Acesse o link https://www.cursoemvideo.com/course/curso-php-iniciante/ Unidade 3 Introdução ao conceito e a utilização de Banco de Dados AUTORIA Ricardo Bortolo Vieira Introdução Caro (a) aluno (a), esta unidade inicia os estudos com uma breve introdução ao conceito e a utilização de Banco de Dados dentro da programação para internet. Na primeira parte você poderá encontrar os assuntos de grande importância como escolher um banco de dados, os bancos de dados suportados pela linguagem PHP e uma introdução ao banco de dados MYSQL. Na segunda parte, será tratada os assuntos relacionados ao acesso ao banco de dados pela linguagem PHP. Você poderá ver os tipos de conexões do MySQL e muito mais. Então vamos em frente, bons estudos e tenha um excelente aproveitamento!!! Introdução a banco de dados AUTORIA Ricardo Bortolo Vieira Poderá ser de�nido como um banco de dados, um conjunto de dados devidamente relacionados. Podem-se compreender como dados os objetos conhecidos que poderão ser armazenados e que possuem um signi�cado implícito, mas o signi�cado do termo banco de dados é mais restrito. Um banco de dados deverá possuir as seguintes propriedades: Uma coleção lógica coerente de dados com um signi�cado inerente; Uma disposição desordenada dos dados não pode ser referenciada como banco de dados; Projetado, construído e preenchido com valores de dados para um propósito especí�co; Um banco de dados deverá possuir um conjunto prede�nido de usuários e de aplicações; Ele pode representar algum aspecto do mundo real, o qual é chamado de "mini mundo"; qualquer alteração efetuada no "mini mundo" será automaticamente re�etida no banco de dados. Escolhendo um Banco de Dados para PHP Uma das maiores vantagens do PHP em relação a outras linguagens é a facilidade de conectividade do banco de dados que ele oferece. O PHP suporta conexões nativas para vários dos bancos de dados mais populares, de código aberto e comercial. Mas, o que é um Banco de Dados? Um banco de dados é um aplicativo separado, que armazena uma coleção de dados. Cada banco de dados tem uma ou mais APIs distintas para criar, acessar, gerenciar, pesquisar e replicar os dados que ele contém. Outros tipos de armazenamento de dados podem ser usados, como arquivos no sistema de arquivos CONECTE-SE Você poderá fazer o downloads das ferramentas de desenvolvimento nos seguintes sites: Neste site você poderá encontrar informações sobre o MySQL, documentação, downloads, tutorial de instalação e muito mais: ACESSAR Este é o link direto para fazer o download do MySQL: ACESSAR Neste site você poderá encontrar o IDE para realizar a programação: ACESSAR ACESSAR Outra opção de IDE para realizar a programação: ACESSAR Observação: Todos os links são de comunidades voltadas para o desenvolvimento, todos os downloads são gratuitos e todas as ferramentas são open source. As duas IDEs são editores de textos, não somente de PHP, nela você terá suporte para outras linguagens de programação como Java, C, C++, C#, Python, etc. https://netbeans.org/kb/docs/ide/install-and-configure-mysql-server_pt_BR.html https://dev.mysql.com/downloads/installer/ https://www.eclipse.org/oxygen/ https://www.eclipse.org/downloads/ http://brackets.io/ ou grandes tabelas de hash na memória, mas quando pro�ssionais falam sobre bancos de dados, eles se referem a um aplicativo independente, como Oracle ou SQL Server, etc. (Converse; Park ;Morgan, 2004. p.233). Por que um Banco de Dados? Se você se der ao trabalho de usar o PHP, precisará de um banco de dados. Mesmo para algo pequeno, como um blog pessoal, você deve pensar bastante sobre as vantagens de usar um banco de dados em vez de páginas estáticas ou arquivos de texto incluídos que não possuem procedimentos de backup ou controle de transação. Manutenção e Escalabilidade Ter o PHP montando suas páginas rapidamente a partir de um modelo e um banco de dados é uma experiência muito boa. Depois disso, você nunca mais voltará a gerenciar um site HTML estático de qualquer tamanho. Para o esforço de programar uma página, você pode produzir um número in�nito de páginas uniformes. Mude um, e você mudou todos eles. Agora há sites com centenas de milhares de páginas separadas - você pode ter certeza de que ninguém as mantém a mão. Se você tem um conceito da Web que pode, eventualmente, crescer para mais de algumas dúzias de páginas, pense em mudar para um banco de dados o quanto antes. Portabilidade Como um banco de dados é um aplicativo e não uma parte do sistema operacional, você pode transferir facilmente sua estrutura e conteúdo de uma máquina para outra ou em certos casos, até mesmo de uma plataforma para outra. Isso é especialmente valioso para os desenvolvedores web, que podem desenvolver um projeto sem poder controlar o ambiente no qual ele será implementado. Existem até mesmo programas PHP conhecidos, como o vBulletin, que mantêm a maior parte do código em um banco de dados para facilitar a distribuição. Segurança Um banco de dados pode adicionar outra camada de segurança se for usado com sua própria senha ou senhas. Por exemplo, digamos que você use o PHP para manter os arquivos de clientes de uma empresa, preenchidos com informações sobre os preços que cada cliente pagou pelo produto e reclamações feitas pelos clientes. Essa informação seria de ouro para seus concorrentes e embaraçosa se vazasse para alguém, mas você precisa colocá-la na Internet para que ela possa ser acessada por seus vendedores. Como estamos usando PHP gravando em um banco de dados, você pode manter as permissões do diretório, somente leitura e também pedir uma segunda senha antes que o banco de dados possa ser alterado. Por exemplo, o caso de um site de conteúdo com um grande número de visitantes, um número menor de escritores e um punhado de editores. Você pode de�nir facilmente os níveis de permissão de banco de dados para cada grupo, para que os visitantes possam ver apenas o conteúdo do banco de dados, formatado em páginas da Web, editores podem procurar e alterar apenas suas próprias entradas e editores podem navegar / alterar / excluir qualquer coisa no site. Bancos de Dados Transacionais Este termo refere-se a um design de banco de dados que busca maximizar a integridade dos dados. O paradigma transacional depende de commits e rollbacks. Commit é o ato de enviar, ou seja, fazer um upload dos códigos para um banco de dados. Os rollbacks são operações que retornam o banco de dados para algum estado anterior. São importantes para a integridade do banco de dados, porque eles signi�cam que o banco de dados pode ser restaurado para uma cópia limpa mesmo depois que operações erradas forem executadas. Eles são cruciais para a recuperação de falhas no servidor de banco de dados; retrocedendo qualquer transação que estava ativa no momento da falha, o banco de dados é restaurado para um estado consistente. As transações concluídas com êxito serão con�rmadas no banco de dados. Aqueles que não forem concluídos com êxito não serão salvos ou o banco de dados será revertido para sua condição anterior. Geralmente, as transações se tornam mais úteis em situações em que você deseja uma con�rmação de tudo ou nada em um grupo de inserções. Um sistema de comércio eletrônico pode usar reversões em situações em que o cartão de crédito de um cliente é recusado, optando por não registrar as informações do cliente, o pedido de compra, a alteração de inventário e assim por diante. Reversões também são úteis no caso de corrupção de dados, como quando um servidor de banco de dados experimenta um incidente de falha de hardware. Bancos de Dados Relacionais e SQL SQL é a linguagem dos bancos de dados relacionais. É uma linguagem comum que possibilita que todos se entendem através de uma ampla gama de diferenças. Uma consulta simples como SELECTde uma tabela será mais ou menos a mesma, independentemente de você estar usando um banco de dados pequeno, como o mSQL (miniSQL), ou um sistema robusto como o Oracle 12i Enterprise. A grande vantagem para você, no desenvolvimento Web, é que, depois de aprender SQL, você poderá interagir com vários bancos de dados em todas as plataformas sem uma curva de recapitulação. Bancos de Dados Suportados por PHP Se você nunca escolheu um banco de dados antes, a grande variedade de produtos compatíveis com PHP pode ser vertiginosa no começo. A Tabela abaixo fornece uma introdução aos vários bancos de dados disponíveis para os usuários PHP. ATENÇÃO Um design de integridade de dados alternativo é chamado de atômico. Os proponentes do paradigma atômico a�rmam que ele é muito mais rápido e igualmente seguro, mas as transações podem ser mais fáceis para um grande número de programadores trabalharem, porque ele coloca mais da lógica na camada de banco de dados. (Converse; Park; Morgan, 2004. p.239). Figura 59 - Extensões de Banco de Dados suportados por PHP. Extensões de Bancos de Dados Camadas de Abstração DBA – Database (dbm-style) Abstraction Layer Dbx ODBC PDO – PHP Data Objects Vendor Speci�c Database Extensions CUBRID DB++ dBase �lePro Firebird/InterBase FrontBase IBM DB2 – IBM DB2, Cloudscape and Apache Derby Informix Ingres – Ingres DBMS, EDBC, and Entreprise Access Gateway MaxDB Mongo – MongoDB driver (legacy) MongoDB – MongoDB driver mSQL Mssql – Microsoft SQL Server MySQL – MySQL Drivers and Plugins OCI8 – Oracle OCI8 Paradox – Paradox File ACCess PostgreSQL SQLite3 SQLSRV - Microsoft SQL Server Driver for PHP Sybase Tokyo_tyrant Mas, o Que é o MySQL? O MySQL é um código aberto e um RDBMS (SQL Relational Database Management System) que é gratuito para muitos usos. No início de sua história, o MySQL ocasionalmente enfrentava oposição devido à falta de suporte para algumas construções SQL básicas, como subseleção e chaves estrangeiras. O MySQL encontrou uma ampla e entusiasmada base de usuários para seus termos liberais de licenciamento, desempenho e facilidade de uso. Sua aceitação foi auxiliada em parte pela ampla variedade de outras tecnologias, como PHP, Java, Perl, Python e outras que incentivaram seu uso por meio de extensões e módulos estáveis e bem documentados. As Bases de dados em geral são úteis, indiscutivelmente a mais útil e consistente família de produtos de software. Como muitos produtos concorrentes, gratuitos e comerciais, o MySQL não é um banco de dados até que você forneça alguma estrutura e forma. Você pode pensar nisso como a diferença entre um banco de dados e um RDBMS, ou seja, o RDBMS mais os requisitos do usuário são iguais a um banco de dados. O MySQL com mais de 10 milhões de instalações, é um dos sistemas de gerenciamento de banco de dados mais popular para servidores web. Ele foi desenvolvido em meados da década de 1990, agora é uma tecnologia madura que alimenta muitos dos destinos de internet mais visitados da atualidade. Uma razão para seu sucesso é que sua utilização é gratuita. Mas também é extremamente poderoso e excepcionalmente rápido - pode ser executado, até mesmo no hardware mais básico e di�cilmente afeta os recursos do sistema. O MySQL também é altamente escalável, o que signi�ca que ele pode crescer com o seu site. Fundamentos do MySQL Um banco de dados (como já foi comentado) é uma coleção estruturada de registros ou dados armazenados em um sistema de computador e organizado de forma que possa ser rapidamente pesquisado e as informações possam ser rapidamente recuperadas. O SQL no MySQL signi�ca Structured Query Language. Essa linguagem é baseada no inglês e também usada em outros bancos de dados, como Oracle e Microsoft SQL Server. Ele é projetado para permitir solicitações simples de um banco de dados por meio de comandos como apresentado nas Figuras 34, 35 e 36. Fonte: EXTENSÕES DE BANCO DE DADOS Um banco de dados MySQL contém uma ou mais tabelas, cada uma contendo registros ou linhas. Dentro dessas linhas há várias colunas ou campos que contêm os dados em si. Figura 60 - Exemplo de estrutura de um Select Figura 61 - Exemplo de uma consulta com Select em banco de dados Figura 62 - Visualização pelo Prompt de Comando da estrutura de um banco de dados MySQL. Acesso ao banco de dados com PHP AUTORIA Ricardo Bortolo Vieira Depois de instalar e con�gurar seu banco de dados MySQL, você pode começar a escrever scripts PHP que interajam com ele. Aqui, explicaremos todas as funções básicas que permitem que você passe dados de um site para outro. Conectando-se ao MySQL O comando básico para iniciar uma conexão MySQL é mysql_connect($hostname, $user, $password); se você estiver usando variáveis ou mysql_connect ('localhost', 'root', 'senha'); se você estiver usando strings literais. O mysql_connect estabelece uma conexão com um servidor MySQL. Todos os argumentos são opcionais e, caso estejam ausentes, os padrões são assumidos ('localhost', nome de usuário do usuário que possui o processo do servidor, senha vazia). A cadeia do nome do host também poderá incluir um número de porta. Por exemplo: "hostname: port". No caso de uma segunda chamada ser feita para mysql_connect com os mesmos argumentos, nenhum novo link será estabelecido, mas, em vez disso, o link identi�cador do link já aberto será retornado. O link para o servidor será fechado assim que a execução do script terminar, a menos que seja fechado anteriormente, chamando explicitamente mysql_close. A senha é opcional, dependendo das características desse usuário do banco de dados, porém, essa exigência é considerada uma boa prática. Se não, apenas deixe essa variável desativada. Você também poderá especi�car uma porta e um soquete para o servidor ($hostname: port: socket). A função mysqli correspondente é mysqli_connect, que adiciona um quarto parâmetro, permitindo que você selecione um banco de dados na mesma função utilizada para a conexão. A função mysqli_select_db() existe, mas você precisará dela apenas se quiser usar vários bancos de dados na mesma conexão. Você não precisará estabelecer uma nova conexão toda vez que quiser consultar o banco de dados no mesmo script. Você precisará executar essa função novamente, no entanto, para cada script que interage com o banco de dados de alguma forma. Em seguida, você deseja escolher um banco de dados para trabalhar: mysql_select_db ($database); se você estiver usando variáveis. mysql_select_db ('phpbook'); se você estiver usando uma String literal. Um banco de dados deverá selecionar toda vez que você �zer uma conexão, o que signi�ca pelo menos uma vez por página ou sempre que mudar de banco de dados. Caso contrário, você receberá um erro de banco de dados não selecionado. Mesmo se você criou apenas um banco de dados por daemon, você deve fazer isso, porque o MySQL também vem com bancos de dados padrão, chamados mysql e teste, que você pode não estar levando em conta. Você pode achar conveniente agrupar todas as informações de conexão em uma função de conexão personalizada e colocá-las em algum lugar onde possa acessá- las de todos os seus scripts, por exemplo, o diretório de inclusão do PHP, ou no caso de um servidor virtual, um arquivo de inclusão especí�co do site. Essa função pode ser visualizada na Figura 63. Se desejar, você poderia estender essa função criando links (por exemplo, $link1, $link2) para vários bancos de dados no mesmo servidor. Este código também registra uma mensagem de erro do MySQL no log de erros do PHP. Agora que você estabeleceu uma conexão com um banco de dados especí�co, está pronto para fazer uma consulta. Fazendo Consultas no MySQL Uma consulta ao banco de dados do PHP é basicamente um comando do MySQL que está envolvido em uma pequena função PHP chamada mysql_query (). É aqui que você usará os manuais básicos SQL de SELECT, INSERT, UPDATE e DELETE. Os comandos MySQL para CREATE e DROP, que são usados para criar e descartar respectivamente uma tabela, também
Compartilhar