# Programação Web - Ementa - Começando com PHP - Histórico da linguagem; Vantagens e Desvantagens; - Configurando o Ambiente do PHP - Introdução sobre XAMPP e WAMP; Instalação básica de um ambiente XAMPP e WAMP; - Diferença entre Cliente e Servidor - Introdução ao PHP - Padrões para nomes de arquivos; - Extensão de arquivos; delimitadores de código; Comentários; - Comandos de saída (output) - Tipos de Variáveis - Arrays; Unidimensional, Bidimensional e Associativo - Operador Array Spread - Constantes - Operadores Aritméticos, Relacionais e Lógico - Operadores Condicionais - Operador `NULL CALL` - Estruturas de Repetição - Entrada de Dados a partir de formulário - Tratamento da requisição em PHP, `$_POST`, `$_GET` e `$_REQUEST` - Manipulação de funções - Criando função; Variáveis globais; Variáveis estáticas; Passagem de parâmetros; - Função Flecha (Arrow) - Funções Anônimas - Manipulação de números e strings: - Validação de Campos do Formulário com PHP - Introdução a Linguagem Javascript - Estrutura da Linguagem - Tipos de Variáveis - Operadores Aritméticos, Relacionais e Lógico - Operadores Condicionais - Estruturas de Repetição - Manipulando HTML com Javascript - O que é o DOM (Document Object Model) - Acessando elementos da DOM - Manipulação de Arquivos - Leitura e gravação de arquivos-texto ou propriedades; - Abertura de arquivos (fopen); - Leitura de arquivos (fread); - Gravação de arquivos (fopen, fwrite, fread e fclose); - Redirecionamento de requisições (header) e fluxos de saída; - Utilizando sessão - Criação de uma sessão - Anulação de variáveis de sessão - Salvando os dados e fechando uma sessão - Sessões e usuários autenticados (exemplo prático); - Criando cookies - Definição de cookies (setcookie) - Consulta a cookies ($_COOKIE) - Enviando e-mails com PHP utilizando a função mail(). - PHP e o Acesso a Bancos de Dados - Usando SQL no PHP - Query Object - Critérios de seleção - Instruções SQL (Insert, Update, Delete, Select) - Conectando com um banco de dados - Criando e executando uma consulta de dados - Tratando o retorno de uma consulta - Segurança Básica em PHP - Proteção do SQL contra textos maliciosos - Cross-Site Scripting (XSS) - Criptografando e descriptografando dados - Visão Geral sobre o Framework Laravel --- # ESTRATÉGIA DE ENSINO ## Técnicas de Ensino: serão empregadas para o desenvolvimento dos conteúdos: - Aulas expositivas dialogadas empregando quadro e equipamento de multimídias; - Aulas práticas em laboratório - Resolução intensiva de exercícios; - Uso de ambiente virtual através de fóruns de discussão e aplicação de atividades práticas - Estudos dirigidos em sala de aula; - Aprendizagem baseada em Problemas - Aprendizagem baseada em Projetos ## Tecnologias de Informação e Comunicação – TICs: serão empregadas as ferramentas: - Visual Studio Code - Xampp - Mysql - Apache Server ## AVALIAÇÃO ### Diagnóstica: - Através de perguntas e respostas diretas ao aluno no início do curso; ### Avaliação Formativa: - Exercícios de fixação em grupo para cada tema trabalhado em sala de aula; - Discussões sobre a resolução dos exercícios em sala de aula; - Desafios práticos extraclasse e em grupo para cada estágio; ### Avaliação Somativa: - Avaliações teóricas e individuais em sala de aula para cada estágio. - Aplicações escritas individuais, atividades no Ambiente Virtual de Aprendizagem, seminários e trabalhos desenvolvidos em computador. ### O processo avaliativo compreenderá: Avaliação (A1): no valor de 0,0 a 5,0 pontos contendo a soma dos pesos obtidos dos seguintes instrumentos de avaliação: - Prova teórica com peso no valor de 0,0 a 2,0 pontos. - Listas de exercícios e práticas no valor de 0,0 a 3,0 pontos. ### Avaliação (A2): no valor de 0,0 a 5,0 contendo a soma dos pesos obtidos dos seguintes instrumentos de avaliação: - Prova teórica com peso no valor de 0,0 a 2,0 pontos. - Projeto prático da disciplina no valor de 0,0 a 3,0 pontos. - A Nota Final (NF): resulta da soma destas duas notas (A1 A2). É considerado aprovado na disciplina o aluno que obtiver: - Nota Final (NF) igual ou superior a 6,0 (seis) e que tenha, no mínimo, 75% (setenta e cinco por cento) de frequência às atividades acadêmicas. > Mais informações sobre o processo avaliativo podem ser obtidas no Manual do Aluno e com os respectivos professores das disciplinas. ## BIBLIOGRAFIA ### BÁSICA - ALVES, W. P. Construindo uma aplicação web completa com PHP e MySQL. São Paulo: Novatec, 2017. - ALVES, W. P. Projetos de sistemas web: conceitos, estruturas, criação de banco de dados e ferramentas de desenvolvimento. São Paulo : Érica, 2015. - SARAIVA, M. O.; BARRETO, J. S. Desenvolvimento de sistemas com PHP. Porto Alegre: SAGAH, 2018. ### COMPLEMENTAR - BERTAGNOLLI, S. C.; MILETTO, E. M. Desenvolvimento de software II: introdução ao desenvolvimento web com HTML, CSS, JavaScript e PHP. Porto Alegre: Bookman, 2014. (e-book) - DEITEL, P. J.; DEITEL, H. M. Ajax, Rich internet aplications e desenvolvimento web para programadores. São Paulo: Pearson Prentice Hall, 2008.(e-book). - FLANAGAN, D. JavaScript: o guia definitivo. 6. ed. Porto Alegre: Bookman, 2013. (e-book). - SOARES, W. PHP 5: conceitos, programação e integração com banco de dados. 7. ed. São Paulo: Érica, 2013. (e-book). - ULLMAN, L. E-commerce: com PHP e MySQL. São Paulo: Novatec, 2014. ## Links - [Curso de PHP do eXcript](https://www.youtube.com/playlist?list=PLesCEcYj003TrV2MvUOnmVtMdgIp0C4Pd) - [Curso de PHP para iniciantes - Curso em Vídeo](https://www.youtube.com/playlist?list=PLHz_AreHm4dm4beCCCmW4xwpmLf6EHY9k) - [POO em PHP - Curso em Vídeo](https://www.youtube.com/playlist?list=PLHz_AreHm4dmGuLII3tsvryMMD7VgcT7x) - [consulta sobre imagens Docker para o desenvolvimento em PHP](https://www.google.com/search?q=imagem+docker+para+desenvolvimento+em+PHP&rlz=1C1ONGR_pt-PTBR1005BR1005&oq=imagem+docker+para+desenvolvimento+em+PHP&aqs=chrome..69i57j33i160j33i22i29i30j33i15i22i29i30j33i22i29i30l6.6895j0j7&sourceid=chrome&ie=UTF-8) - [PHP - Uma Introdução à Linguagem](https://www.alura.com.br/artigos/php-uma-introducao-linguagem) - [Ecossistema PHP](https://www.youtube.com/watch?v=yD3BqXWHua4) - [Formação Linguagem PHP](https://cursos.alura.com.br/formacao-linguagem-php) - [Livros Casa do Código em PHP](https://www.casadocodigo.com.br/search?type=product&q=PHP) - [Formação Avançando em PHP](https://cursos.alura.com.br/formacao-avancando-php) - [Imersão CSS e sua página pessoal](https://cursos.alura.com.br/imersoes/aulas/aula-1-css-para-pagina-pessoal-c1) - [Imersão Game DEV](https://cursos.alura.com.br/imersoes/aulas/aula-1-animacoes-basicas-e-trilha-sonora-c28) - [Guia do programador PHP](https://cursos.alura.com.br/guia-do-programador-php-vinicius-dias-p2779) - [Desenvolvimento Web Completo](https://www.udemy.com/course/web-completo/learn/lecture/9797416#overview) - [Desenvolvedor Web completo +10 de projetos](9https://www.udemy.com/course/curso-desenvolvedor-web-completo/learn/lecture/8032260#overview) - [Formação PHP do TreinaWeb](https://www.treinaweb.com.br/painel/formacoes/desenvolvedor-php) ### PHP com MongoDB - https://felipetoscano.com.br/introducao-mongodb-php/ - https://www.devmedia.com.br/utilizando-a-dupla-mongodb-e-php/27798#:~:text=O%20MongoDB%20n%C3%A3o%20%C3%A9%20um,o%20PHP%20e%20o%20MongoDB. - https://www.mongodb.com/docs/drivers/php/ - http://jordankobellarz.github.io/php/mongodb/2015/08/14/usando-driver-mongodb-php.html - https://www.youtube.com/watch?v=j-cjF1GkEMQ - https://imasters.com.br/back-end/mecanismos-de-busca-de-php-com-mongodb - ### Alura+ conteúdo de PHP [Dublês sem expectativa - Criando stubs com PHPUnit21/12/2020](https://cursos.alura.com.br/extra/alura-mais/dubles-sem-expectativa-criando-stubs-com-phpunit-c287) [Novidades do PHP 7.4: Operador de atribuição com coalescência nula15/10/2020](https://cursos.alura.com.br/extra/alura-mais/novidades-do-php-7-4-operador-de-atribuicao-com-coalescencia-nula-c291) [Utilizando constantes no PHP05/10/2020](https://cursos.alura.com.br/extra/alura-mais/utilizando-constantes-no-php-c290) [Strict Types no PHP: Tornando as verificações de tipo mais rígidas29/09/2020](https://cursos.alura.com.br/extra/alura-mais/strict-types-no-php-tornando-as-verificacoes-de-tipo-mais-rigidas-c289) [Novidades do PHP 7.4: Separador de números literais23/09/2020](https://cursos.alura.com.br/extra/alura-mais/novidades-do-php-7-4-separador-de-numeros-literais-c288) [Upload de arquivos com PHP14/09/2020](https://cursos.alura.com.br/extra/alura-mais/upload-de-arquivos-com-php-c205) [Funções anônimas no PHP22/07/2020](https://cursos.alura.com.br/extra/alura-mais/funcoes-anonimas-no-php-c239) [Twig, um Template Engine PHP10/03/2020](https://cursos.alura.com.br/extra/alura-mais/twig-um-template-engine-php-c125) [PHP é interpretado?28/02/2020](https://cursos.alura.com.br/extra/alura-mais/php-e-interpretado--c127) [Mitos sobre PHP20/02/2020](https://cursos.alura.com.br/extra/alura-mais/mitos-sobre-php-c126) [Como utilizar variáveis de ambiente no PHP20/02/2020](https://cursos.alura.com.br/extra/alura-mais/como-utilizar-variaveis-de-ambiente-no-php-c121) [Como lidar com senhas no PHP07/02/2020](https://cursos.alura.com.br/extra/alura-mais/como-lidar-com-senhas-no-php-c120) [Novidades do PHP 7.4 - Arrow Functions19/11/2019](https://cursos.alura.com.br/extra/alura-mais/novidades-do-php-7-4-arrow-functions-c130) [Novidades do PHP 7.4 - Typed Properties18/11/2019](https://cursos.alura.com.br/extra/alura-mais/novidades-do-php-7-4-typed-properties-c129) [Trabalhando com Multibyte String em PHP10/10/2019](https://cursos.alura.com.br/extra/alura-mais/trabalhando-com-multibyte-string-em-php-c64) [Período entre datas em PHP02/10/2019](https://cursos.alura.com.br/extra/alura-mais/periodo-entre-datas-em-php-c67) [Sobre PSRs em PHP05/09/2019](https://cursos.alura.com.br/extra/alura-mais/sobre-psrs-em-php-c66) [Generators em PHP](https://cursos.alura.com.br/extra/alura-mais/generators-em-php-c65) ### Cursos do TreinaWeb - PHP Básico - PHP - Fundamentos - PHP Avançado - PHP - Testes unitários com PHPUnit - PHP - Novidades dos - PHP 7.0 e 7.1 - PHP - Orientação a Objetos - Parte 1 - PHP - Orientação a Objetos - Parte 2 - PHP - Recursos essenciais - PHP - Banco de dados - PHP - Novidades do PHP 8.0 - PHP - Gerenciador de dependências Composer ### Extensões do VSCode: - Code Runner: https://marketplace.visualstudio.com/... - DotEnv: https://marketplace.visualstudio.com/... - EditorConfig for VSCode: https://marketplace.visualstudio.com/... - Path Intelisense: https://marketplace.visualstudio.com/... - Twig: https://marketplace.visualstudio.com/... - PHP Intelephense: https://marketplace.visualstudio.com/... - PHP Debug: https://marketplace.visualstudio.com/... - PHP DocBlocker: https://marketplace.visualstudio.com/... - PHP Sniffer: https://marketplace.visualstudio.com/... - PHP Getters & Setters: https://marketplace.visualstudio.com/... - PHP Unit: https://marketplace.visualstudio.com/... - PHP Unit Test Explorer: https://marketplace.visualstudio.com/... ###### tags: `Programação Web`