# 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`