├── Project ├── Day 46-58 │ └── projetoMVC │ │ ├── app │ │ ├── .DS_Store │ │ ├── classes │ │ │ ├── Bind.php │ │ │ └── Uri.php │ │ ├── controllers │ │ │ ├── ContainerController.php │ │ │ └── portal │ │ │ │ ├── CursoController.php │ │ │ │ ├── HomeController.php │ │ │ │ └── ProdutoController.php │ │ ├── exceptions │ │ │ ├── ControllerNotExistException.php │ │ │ └── MethodNotExistException.php │ │ ├── functions │ │ │ ├── helpers.php │ │ │ └── twig.php │ │ ├── models │ │ │ ├── .DS_Store │ │ │ ├── Connection.php │ │ │ ├── Model.php │ │ │ └── portal │ │ │ │ └── User.php │ │ ├── traits │ │ │ └── View.php │ │ └── views │ │ │ └── portal │ │ │ ├── contato.html │ │ │ ├── curso.html │ │ │ ├── home.html │ │ │ └── layout.html │ │ ├── bootstrap.php │ │ ├── composer.json │ │ ├── composer.lock │ │ ├── config.php │ │ ├── core │ │ ├── Controller.php │ │ ├── Method.php │ │ ├── Parameters.php │ │ └── Twig.php │ │ └── public │ │ └── index.php ├── Day01 │ ├── anotacoes.txt │ ├── correcao.php │ ├── exedois.php │ ├── exercicio.php │ ├── exetres.php │ └── index.php ├── Day02 │ ├── 1.png │ ├── 2.png │ └── 3.png ├── Day03 │ ├── 03 │ │ └── teste.php │ ├── index.php │ └── teste.php ├── Day04 │ ├── index.php │ └── teste.php ├── Day05 │ └── ternario.php ├── Day06 │ ├── 4.png │ └── 5.png ├── Day07 │ └── index.php ├── Day08 │ └── index.php ├── Day09 │ ├── 10.png │ ├── 6.png │ ├── 7.png │ ├── 8.png │ └── 9.png ├── Day10 │ ├── index.php │ └── teste.php ├── Day11 │ ├── index.php │ └── teste.php ├── Day12 │ ├── 11.png │ ├── index.php │ └── teste.php ├── Day13 │ ├── index.php │ └── teste.php ├── Day14 │ ├── anotacao.txt │ ├── gravar.php │ └── index.html ├── Day15 │ ├── 12.png │ ├── 13.png │ └── index.php ├── Day16 │ ├── img.jpg │ ├── index.html │ └── index.php ├── Day17 │ ├── 14.png │ └── 15.png ├── Day18-19 │ └── index.php ├── Day20-21 │ ├── README.md │ ├── css │ │ └── style.css │ ├── index.html │ └── index.php ├── Day22 │ └── index.php ├── Day23 │ ├── switchcase.jpeg │ └── switchcase2.jpeg ├── Day24 │ ├── atv1.php │ └── atv2.php ├── Day25-27 │ ├── img.jpg │ ├── index.html │ ├── index.php │ ├── teste.php │ └── validacao.php ├── Day28 │ ├── arquivos.php │ ├── banco │ │ ├── 31231.json │ │ ├── 321321.json │ │ └── 5468.json │ ├── form.html │ └── gravar.php ├── Day29 │ ├── 18.png │ ├── 19.png │ ├── 20.png │ └── 21.png ├── Day30 │ └── index.php ├── Day31-33 │ ├── array.php │ └── index.php ├── Day34 │ ├── ddl.php │ ├── index.php │ └── pilha.php ├── Day35 │ ├── aula102 │ │ ├── arquivos.php │ │ ├── banco │ │ │ ├── 31231.json │ │ │ ├── 321321.json │ │ │ └── 5468.json │ │ ├── form.html │ │ └── gravar.php │ ├── index.php │ └── produto.php ├── Day36 │ ├── 22.png │ ├── 23.png │ └── 24.png ├── Day37-40 │ ├── EmailValidator.php │ ├── index.html │ ├── pedido.php │ └── style.css ├── Day41 │ ├── foguete.php │ ├── index.php │ └── sorvete.php ├── Day44 │ ├── .htaccess │ ├── App │ │ ├── controller │ │ │ └── pages │ │ │ │ └── Home.php │ │ ├── router │ │ │ ├── router.php │ │ │ └── routes.php │ │ └── views │ │ │ ├── emails │ │ │ └── header.php │ │ │ └── login.php │ ├── composer.json │ ├── public │ │ ├── bootstrap.php │ │ └── index.php │ └── vendor │ │ ├── autoload.php │ │ └── composer │ │ ├── ClassLoader.php │ │ ├── LICENSE │ │ ├── autoload_classmap.php │ │ ├── autoload_files.php │ │ ├── autoload_namespaces.php │ │ ├── autoload_psr4.php │ │ ├── autoload_real.php │ │ └── autoload_static.php ├── Day45 │ ├── README.md │ ├── arquivos.php │ ├── banco │ │ └── 22334455.json │ ├── css │ │ └── style.css │ ├── index.html │ ├── index.php │ └── teste.php ├── Day50 │ ├── anotacoes.txt │ ├── contato.php │ ├── footer.php │ ├── header.php │ ├── index.php │ ├── produtos.php │ └── sobre.php ├── Day59 │ └── index.php ├── Day60 │ └── index.php ├── Day61 │ └── index.php ├── Day62 │ ├── 29.png │ ├── 30.png │ ├── 31.png │ ├── 32.png │ ├── 33.png │ ├── insercao.php │ ├── linear.php │ └── linearSequencial.php ├── Day63 │ └── index.php ├── Day64 │ └── index.php ├── Day65 │ ├── index.php │ └── tarefa.php ├── Day66 │ └── index.php ├── Day67-70 │ └── index.php ├── Day78-79 │ └── index.php ├── Day80-81 │ ├── camiseta.php │ └── index.php ├── Day82 │ └── index.php ├── Day83-84 │ ├── cadastro_script.php │ ├── conexao.php │ └── index.php ├── Day85 │ ├── cadastrar.php │ ├── conexao.php │ ├── login.php │ └── testarConexao.php ├── Day86-90 │ ├── .gitattributes │ ├── .htaccess │ ├── README.md │ ├── controller │ │ ├── CategoriaController.php │ │ └── ProdutoController.php │ ├── core │ │ ├── Conexao.php │ │ ├── Core.php │ │ ├── ExceptionPdo.php │ │ ├── Http.php │ │ ├── Request.php │ │ ├── Response.php │ │ └── Routes.php │ ├── index.php │ └── model │ │ ├── CategoriaModel.php │ │ ├── ProdutoModel.php │ │ └── api-soa.zip ├── Day91-92 │ ├── .gitattributes │ ├── .htaccess │ ├── README.md │ ├── controller │ │ ├── AreaAtuacaoController.php │ │ ├── CategoriaController.php │ │ ├── CursoController.php │ │ └── ProdutoController.php │ ├── core │ │ ├── Conexao.php │ │ ├── Core.php │ │ ├── ExceptionPdo.php │ │ ├── Http.php │ │ ├── Request.php │ │ ├── Response.php │ │ └── Routes.php │ ├── index.php │ └── model │ │ ├── AreaAtuacaoModel.php │ │ ├── CategoriaModel.php │ │ ├── CursoModel.php │ │ ├── ProdutoModel.php │ │ └── api-soa.zip ├── Day93 │ ├── .htaccess │ ├── controller │ │ └── VeiculoController.php │ ├── core │ │ ├── Conexao.php │ │ ├── Core.php │ │ ├── ExceptionPdo.php │ │ ├── Http.php │ │ ├── Request.php │ │ ├── Response.php │ │ └── Routes.php │ ├── index.php │ └── model │ │ └── VeiculoModel.php ├── Day94-100 │ ├── DSI-ATV │ │ ├── Readme.md │ │ ├── aula │ │ │ ├── array.php │ │ │ ├── estruturasDeControle.php │ │ │ ├── estruturasDeRepeticao.php │ │ │ ├── hello.php │ │ │ ├── operadores.txt │ │ │ ├── soma.php │ │ │ ├── tiposSuportados.php │ │ │ └── transformacoes.php │ │ └── exercicio │ │ │ ├── exercicio1.php │ │ │ ├── exercicio10.php │ │ │ ├── exercicio11.php │ │ │ ├── exercicio2.php │ │ │ ├── exercicio3.php │ │ │ ├── exercicio4.php │ │ │ ├── exercicio5.php │ │ │ ├── exercicio6.php │ │ │ ├── exercicio7.php │ │ │ ├── exercicio8.php │ │ │ └── exercicio9.php │ ├── anotacao │ │ └── jwt.txt │ ├── api-soa │ │ ├── .gitattributes │ │ ├── .htaccess │ │ ├── README.md │ │ ├── controller │ │ │ ├── CategoriaController.php │ │ │ └── ProdutoController.php │ │ ├── core │ │ │ ├── Conexao.php │ │ │ ├── Core.php │ │ │ ├── ExceptionPdo.php │ │ │ ├── Http.php │ │ │ ├── Request.php │ │ │ ├── Response.php │ │ │ └── Routes.php │ │ ├── index.php │ │ ├── model │ │ │ ├── CategoriaModel.php │ │ │ └── ProdutoModel.php │ │ └── service │ │ │ └── JwtService.php │ └── apisoa │ │ ├── .gitattributes │ │ ├── .htaccess │ │ ├── .idea │ │ ├── .gitignore │ │ ├── apisoa.iml │ │ ├── modules.xml │ │ └── php.xml │ │ ├── .vs │ │ ├── ProjectSettings.json │ │ ├── VSWorkspaceState.json │ │ ├── apisoa │ │ │ └── v17 │ │ │ │ └── .wsuo │ │ └── slnx.sqlite │ │ ├── README.md │ │ ├── controller │ │ ├── CelularController.php │ │ ├── CidadeController.php │ │ ├── FabricantesController.php │ │ ├── PacientesController.php │ │ └── UsuarioController.php │ │ ├── core │ │ ├── Conexao.php │ │ ├── Core.php │ │ ├── ExceptionPdo.php │ │ ├── Http.php │ │ ├── Request.php │ │ ├── Response.php │ │ └── Routes.php │ │ ├── index.php │ │ ├── instruçãoSQL.txt │ │ ├── model │ │ ├── CelularModel.php │ │ ├── CidadeModel.php │ │ ├── EstadoModel.php │ │ ├── FabricantesModel.php │ │ ├── PacientesModel.php │ │ ├── PerfilModel.php │ │ └── UsuarioModel.php │ │ └── service │ │ └── JwtService.php ├── Day95 │ └── Anotações PHP.png ├── IntroductionDay01 │ ├── index.php │ └── sintaxe.html └── README.md └── README.md /Project/Day 46-58/projetoMVC/app/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day 46-58/projetoMVC/app/.DS_Store -------------------------------------------------------------------------------- /Project/Day 46-58/projetoMVC/app/classes/Bind.php: -------------------------------------------------------------------------------- 1 | view([ 16 | 'title' => 'Curso', 17 | // 'curso' => $cursoEncontrado, 18 | ], 'portal.curso'); 19 | } 20 | 21 | public function create() { 22 | 23 | } 24 | 25 | public function store() { 26 | 27 | } 28 | 29 | public function edit($id) { 30 | 31 | } 32 | 33 | public function update($id) { 34 | 35 | } 36 | 37 | public function destroy($id) { 38 | 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /Project/Day 46-58/projetoMVC/app/controllers/portal/HomeController.php: -------------------------------------------------------------------------------- 1 | all(); 14 | 15 | $this->view([ 16 | 'title' => 'Lista de users', 17 | 'users' => $users, 18 | ], 'portal.home'); 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /Project/Day 46-58/projetoMVC/app/controllers/portal/ProdutoController.php: -------------------------------------------------------------------------------- 1 | functions[] = $this->functionsToView('user', function () { 4 | return 'dados user'; 5 | }); 6 | 7 | $this->functions[] = $this->functionsToView('teste', function () { 8 | return 'teste'; 9 | }); -------------------------------------------------------------------------------- /Project/Day 46-58/projetoMVC/app/models/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day 46-58/projetoMVC/app/models/.DS_Store -------------------------------------------------------------------------------- /Project/Day 46-58/projetoMVC/app/models/Connection.php: -------------------------------------------------------------------------------- 1 | database; 13 | 14 | $pdo = new PDO("mysql:host=$config->host;dbname=$config->dbname;charset=$config->charset", $config->username, $config->password, $config->options); 15 | 16 | return $pdo; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Project/Day 46-58/projetoMVC/app/models/Model.php: -------------------------------------------------------------------------------- 1 | connection = Bind::get('connection'); 14 | } 15 | 16 | public function all() { 17 | $sql = "select * from {$this->table}"; 18 | $list = $this->connection->query($sql); 19 | $list->execute(); 20 | 21 | return $list->fetchAll(); 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /Project/Day 46-58/projetoMVC/app/models/portal/User.php: -------------------------------------------------------------------------------- 1 | loadTwig(); 14 | 15 | $twig->loadExtensions(); 16 | 17 | $twig->loadFunctions(); 18 | 19 | return $loadTwig; 20 | } 21 | 22 | public function view($data, $view) 23 | { 24 | $template = $this->twig()->load(str_replace('.', '/', $view) . '.html'); 25 | 26 | return $template->display($data); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Project/Day 46-58/projetoMVC/app/views/portal/contato.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Document 6 | 7 | 8 | xzxzxz 9 | 10 | -------------------------------------------------------------------------------- /Project/Day 46-58/projetoMVC/app/views/portal/curso.html: -------------------------------------------------------------------------------- 1 | {% extends 'portal/layout.html' %} 2 | 3 | {% block portal %} 4 | 5 | 6 | {{ teste() }} 7 | 8 | {% set name = 'Alexandre' %} 9 | 10 | {{ name }} 11 | 12 | 13 | {% endblock %} -------------------------------------------------------------------------------- /Project/Day 46-58/projetoMVC/app/views/portal/home.html: -------------------------------------------------------------------------------- 1 | {% extends 'portal/layout.html' %} 2 | 3 | {% block portal %} 4 | 5 | 6 | 11 | 12 | 13 | {% endblock %} -------------------------------------------------------------------------------- /Project/Day 46-58/projetoMVC/app/views/portal/layout.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{ title }} 6 | 7 | 8 |
9 | {% block portal %}{% endblock %} 10 |
11 | 12 | -------------------------------------------------------------------------------- /Project/Day 46-58/projetoMVC/bootstrap.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'host' => 'localhost', 6 | 'dbname' => 'mvc', 7 | 'username' => 'root', 8 | 'password' => 'root', 9 | 'charset' => 'utf8', 10 | 'options' => [ 11 | PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, 12 | PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ, 13 | ], 14 | ], 15 | 'email' => [ 16 | ], 17 | ]; 18 | -------------------------------------------------------------------------------- /Project/Day 46-58/projetoMVC/core/Controller.php: -------------------------------------------------------------------------------- 1 | uri = Uri::uri(); 20 | } 21 | 22 | public function load() { 23 | if ($this->isHome()) { 24 | return $this->controllerHome(); 25 | } 26 | return $this->controllerNotHome(); 27 | } 28 | 29 | private function controllerHome() { 30 | if (!$this->controllerExist('HomeController')) { 31 | throw new ControllerNotExistException("Esse controller não existe"); 32 | } 33 | 34 | return $this->instantiateController(); 35 | } 36 | 37 | private function controllerNotHome() { 38 | 39 | $controller = $this->getControllerNotHome(); 40 | 41 | if (!$this->controllerExist($controller)) { 42 | throw new ControllerNotExistException("Esse controller não existe"); 43 | } 44 | 45 | return $this->instantiateController(); 46 | 47 | } 48 | 49 | private function getControllerNotHome() { 50 | 51 | if (substr_count($this->uri, '/') > 1) { 52 | list($controller, $method) = array_values(array_filter(explode('/', $this->uri))); 53 | return ucfirst($controller) . 'Controller'; 54 | } 55 | 56 | return ucfirst(ltrim($this->uri, '/')) . 'Controller'; 57 | 58 | } 59 | 60 | private function isHome() { 61 | return ($this->uri == '/'); 62 | } 63 | 64 | private function controllerExist($controller) { 65 | $controllerExist = false; 66 | 67 | foreach ($this->folders as $folder) { 68 | if (class_exists($folder . '\\' . $controller)) { 69 | $controllerExist = true; 70 | $this->namespace = $folder; 71 | $this->controller = $controller; 72 | } 73 | } 74 | 75 | return $controllerExist; 76 | 77 | } 78 | 79 | private function instantiateController() { 80 | $controller = $this->namespace . '\\' . $this->controller; 81 | return new $controller; 82 | } 83 | 84 | } -------------------------------------------------------------------------------- /Project/Day 46-58/projetoMVC/core/Method.php: -------------------------------------------------------------------------------- 1 | uri = Uri::uri(); 14 | } 15 | 16 | public function load($controller) { 17 | $method = $this->getMethod(); 18 | 19 | if (!method_exists($controller, $method)) { 20 | throw new MethodNotExistException("Esse método não existe: {$method}"); 21 | } 22 | 23 | return $method; 24 | } 25 | 26 | private function getMethod() { 27 | 28 | if (substr_count($this->uri, '/') > 1) { 29 | list($controller, $method) = array_values(array_filter(explode('/', $this->uri))); 30 | return $method; 31 | } 32 | 33 | return 'index'; 34 | } 35 | 36 | } -------------------------------------------------------------------------------- /Project/Day 46-58/projetoMVC/core/Parameters.php: -------------------------------------------------------------------------------- 1 | uri = Uri::uri(); 13 | } 14 | 15 | public function load() { 16 | return $this->getParameter(); 17 | } 18 | 19 | private function getParameter() { 20 | 21 | if (substr_count($this->uri, '/') > 2) { 22 | $parameter = array_values(array_filter(explode('/', $this->uri))); 23 | 24 | return (object) [ 25 | 'parameter' => filter_var($parameter[2], FILTER_SANITIZE_STRING), 26 | 'next' => filter_var($this->getNextParameter(2), FILTER_SANITIZE_STRING), 27 | ]; 28 | 29 | } 30 | } 31 | 32 | private function getNextParameter($actual) { 33 | $parameter = array_values(array_filter(explode('/', $this->uri))); 34 | 35 | return $parameter[$actual + 1] ?? $parameter[$actual]; 36 | 37 | } 38 | 39 | } -------------------------------------------------------------------------------- /Project/Day 46-58/projetoMVC/core/Twig.php: -------------------------------------------------------------------------------- 1 | twig = new \Twig_Environment($this->loadViews(), [ 12 | 'debug' => true, 13 | // 'cache' => '/cache', 14 | 'auto_reload' => true, 15 | ]); 16 | 17 | return $this->twig; 18 | } 19 | 20 | private function loadViews() { 21 | return new \Twig_Loader_Filesystem('../app/views'); 22 | } 23 | 24 | public function loadExtensions() { 25 | return $this->twig->addExtension(new \Twig_Extensions_Extension_Text()); 26 | } 27 | 28 | private function functionsToView($name, \Closure $callback) { 29 | return new \Twig_Function($name, $callback); 30 | } 31 | 32 | public function loadFunctions() { 33 | require '../app/functions/twig.php'; 34 | 35 | foreach ($this->functions as $key => $value) { 36 | $this->twig->addFunction($this->functions[$key]); 37 | } 38 | 39 | } 40 | 41 | } -------------------------------------------------------------------------------- /Project/Day 46-58/projetoMVC/public/index.php: -------------------------------------------------------------------------------- 1 | load(); 12 | 13 | $method = new Method; 14 | $method = $method->load($controller); 15 | 16 | $parameters = new Parameters; 17 | $parameters = $parameters->load(); 18 | 19 | $controller->$method($parameters); 20 | 21 | } catch (\Exception $e) { 22 | dd($e->getMessage()); 23 | } -------------------------------------------------------------------------------- /Project/Day01/anotacoes.txt: -------------------------------------------------------------------------------- 1 | //saber criar funcoes para identificar maior ou menor valor dentro de array 2 | 3 | aprender ternario 4 | 5 | praticas har de foreache e logica -------------------------------------------------------------------------------- /Project/Day01/exedois.php: -------------------------------------------------------------------------------- 1 | 2 | 'onze', 11 | 22 => 'vinte e dois', 12 | 3 => 'tres', 13 | 12 => 'doze', 14 | 100 => 'cem', 15 | 51 => 'cinquenta e um', 16 | ]; 17 | 18 | 19 | 20 | foreach ($arrayNumeros as $key => $value){ 21 | if ($key % 2 ==0 ){ 22 | 23 | echo 'os numeros pares sao:' . $value . '
'; 24 | }else{ 25 | $impar = $key + $key; 26 | 27 | } 28 | } -------------------------------------------------------------------------------- /Project/Day01/exercicio.php: -------------------------------------------------------------------------------- 1 | 2 | "; 27 | 28 | }else { 29 | echo "A cor que nao esta é: $value
"; 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /Project/Day01/exetres.php: -------------------------------------------------------------------------------- 1 | 'MARIA', 14 | 'sexo' => 'F', 15 | 'idade' => 23, 16 | 'exp' => 4, 17 | 'escolaridade' => ['ensino medio', 'tecnico'] 18 | ]; 19 | 20 | $candidatos[] = $candidato1; 21 | 22 | // Candidato 2 23 | $candidato2 = [ 24 | 'nome' => 'JOAO', 25 | 'sexo' => 'M', 26 | 'idade' => 30, 27 | 'exp' => 1, 28 | 'escolaridade' => ['ensino medio', 'faculdade', 'especializacao'] 29 | ]; 30 | 31 | $candidatos[] = $candidato2; 32 | 33 | // Candidato 3 34 | $candidato3 = [ 35 | 'nome' => 'JOANA', 36 | 'sexo' => 'F', 37 | 'idade' => 27, 38 | 'exp' => 8, 39 | 'escolaridade' => ['ensino medio'] 40 | ]; 41 | 42 | $candidatos[] = $candidato3; 43 | 44 | // Quantidade de candidatos 45 | $QTDcandidatos = count($candidatos); 46 | echo "Quantidade de candidatos: $QTDcandidatos
"; 47 | 48 | // Encontrar candidatos do sexo feminino 49 | echo "Candidatos mulheres:
"; 50 | foreach ($candidatos as $candidato) { 51 | if ($candidato['sexo'] == 'F') { 52 | echo $candidato['nome'] . "
"; 53 | } 54 | } 55 | 56 | // Calcular pontuação e encontrar o vencedor 57 | $pontuacoes = []; 58 | foreach ($candidatos as $candidato) { 59 | $pontuacao = 0; 60 | foreach ($candidato['escolaridade'] as $nivel) { 61 | $pontuacao += array_search($nivel, $candidato['escolaridade']); 62 | } 63 | $pontuacao += $candidato['exp'] * 5; 64 | $pontuacoes[] = $pontuacao; 65 | } 66 | 67 | $maxPontuacao = max($pontuacoes); //max retorna o valor maximo que ele encontrar em $pontuacoes 68 | $vencedor = $candidatos[array_search($maxPontuacao, $pontuacoes)]['nome']; 69 | 70 | echo "O candidato vencedor é: $vencedor
"; 71 | ?> 72 | -------------------------------------------------------------------------------- /Project/Day01/index.php: -------------------------------------------------------------------------------- 1 | 'um', 10 | 11 => 'onze', 11 | 22 => 'vinte dois' 12 | ]; 13 | 14 | $resultado = []; 15 | 16 | foreach ($arrayNumero as $k => $v){ 17 | 18 | //$resultado[$k] = 'teste'; 19 | $resultado[$k] = $k +1; 20 | echo " chave : $k - valor: $v
"; 21 | } 22 | 23 | 24 | //se nao usar a key, nao tem problema apaga-la $arrayNumero as $v 25 | 26 | -------------------------------------------------------------------------------- /Project/Day02/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day02/1.png -------------------------------------------------------------------------------- /Project/Day02/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day02/2.png -------------------------------------------------------------------------------- /Project/Day02/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day02/3.png -------------------------------------------------------------------------------- /Project/Day03/03/teste.php: -------------------------------------------------------------------------------- 1 | 49 | 50 | 51 | 52 | 53 | //Escreva um script PHP que verifique se um caractere digitado pelo usuário é uma vogal ou uma consoante e imprima o resultado. 54 | //Identificação de Vogais: Crie um programa que determine se um caractere fornecido pelo usuário é uma vogal ou uma consoante. 55 | 56 | 57 | 58 | //Conversão de Unidades: Desenvolva um script que permita ao usuário converter uma medida de uma unidade para outra (por exemplo, metros para centímetros, quilogramas para gra -------------------------------------------------------------------------------- /Project/Day04/teste.php: -------------------------------------------------------------------------------- 1 | 32 | -------------------------------------------------------------------------------- /Project/Day05/ternario.php: -------------------------------------------------------------------------------- 1 | = 18) ? "Adulto" : "Menor de idade"; 10 | echo $status; // Saída: Adulto 11 | -------------------------------------------------------------------------------- /Project/Day06/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day06/4.png -------------------------------------------------------------------------------- /Project/Day06/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day06/5.png -------------------------------------------------------------------------------- /Project/Day07/index.php: -------------------------------------------------------------------------------- 1 | $b) ? $a : $b; 22 | 23 | echo "O maior nmr é $maior"; 24 | 25 | //EM IF ELSE 26 | 27 | $a = 10; 28 | $b = 20; 29 | if ($a > $b) { 30 | echo "O maior nmr é $a"; 31 | }else { 32 | echo "O maior nmr é $b"; 33 | } 34 | 35 | //Escreva um programa que verifique se um aluno foi aprovado ou reprovado em uma disciplina com base na nota 36 | 37 | $nota = 75; 38 | $status = ($nota >= 60) ? "aprovado" : "reprovado"; 39 | echo "o aluno está $status"; 40 | 41 | //EM if else 42 | 43 | $nota = 75; 44 | if ($nota >= 60) { 45 | echo "o aluno está aprovado"; 46 | } else { 47 | echo "O aluno está reprovado"; 48 | } -------------------------------------------------------------------------------- /Project/Day08/index.php: -------------------------------------------------------------------------------- 1 | = 18.7 && $imc < 24.9) ? "Seu peso esta normal" : 11 | (($imc >=25.0 && $imc < 29.9) ? "Voce esta com sobrepeso" : "Voce esta obeso")); 12 | } 13 | 14 | echo CalcularIMC (1.59,72); -------------------------------------------------------------------------------- /Project/Day10/teste.php: -------------------------------------------------------------------------------- 1 | 0) ? "Numero é positivo" : (($numero < 0 )? "Numero é negativo" : "Numero é igual a zero"); 28 | } 29 | 30 | echo PositivoOuNegativo (-5); 31 | 32 | 33 | //Criar uma função em PHP que verifique se um número é divisível por 5 ou não. 34 | 35 | function VerificarNumero ($numero){ 36 | return ($numero % 5 == 0) ? "Esse numero é divisivel por 5" : "Esse numero não é divisivel por 5"; 37 | } 38 | 39 | echo VerificarNumero (35); 40 | 41 | 42 | //Exercicio Idade 43 | 44 | function MaiorDeIdade ($idade){ 45 | return ($idade < 18) ? "Voce é menor de idade" : 46 | (($idade >= 18 && $idade <= 65) ? "Voce é adulto" : 47 | "Voce é uma pessoa idosa"); 48 | } 49 | 50 | echo MaiorDeIdade(70); 51 | -------------------------------------------------------------------------------- /Project/Day11/index.php: -------------------------------------------------------------------------------- 1 | "; 8 | } 9 | 10 | 11 | 12 | //Escreva um script PHP que imprima os números de 1 a 100 na tela. 13 | 14 | for ($i = 1; $i <= 100; $i++) { 15 | 16 | echo $i . "
"; 17 | } 18 | 19 | //Escreva um script PHP que imprima as somas de 1 até 100 20 | 21 | $oma = 0; 22 | for ($i = 1; $i <= 100; $i++) { 23 | 24 | $soma += $i; 25 | } 26 | echo " a soma dos números de 1 a 100 é: " . $soma; 27 | 28 | 29 | 30 | 31 | 32 | //Escreva um script PHP que imprima uma tabuada. 33 | echo ""; 34 | for ($i = 1; $i <= 10; $i++) { 35 | echo ""; 36 | 37 | for ($j = 1; $j <= 10; $j++) { 38 | echo ""; 39 | } 40 | 41 | echo ""; 42 | } 43 | echo "
" . $i . "x" . $j . "=" . ($i * $j) . "
"; 44 | -------------------------------------------------------------------------------- /Project/Day12/teste.php: -------------------------------------------------------------------------------- 1 | "; 7 | } 8 | 9 | 10 | 11 | //Escreva um script PHP que imprima os números de 1 a 100 na tela. 12 | 13 | for ($imprimir = 1; $imprimir <= 100; $imprimir++) { 14 | echo $imprimir . "
"; 15 | } 16 | 17 | -------------------------------------------------------------------------------- /Project/Day13/index.php: -------------------------------------------------------------------------------- 1 | 0) { 13 | $tentativa = readline("Digite a senha: "); 14 | 15 | if ($tentativa === $senhaCorreta) { 16 | 17 | echo "Bem-vindo!"; 18 | 19 | break; // Sai do loop se a senha estiver correta 20 | } else { 21 | 22 | $tentativas_restantes--; 23 | 24 | echo "Senha incorreta, tentativas restantes: $tentativas_restantes\n"; 25 | } 26 | } 27 | 28 | if ($tentativas_restantes === 0) { 29 | 30 | echo "vc utilizou o n° máximo de tentativas, sua conta foi bloqueada"; 31 | } 32 | 33 | 34 | //Gerando numeros aleatorios 35 | 36 | 37 | $soma = 0; 38 | $limite = 10; 39 | 40 | while ($soma <= $limite) { 41 | $numero = rand(1, 5); 42 | echo "$numero "; 43 | $soma += $numero; 44 | } 45 | 46 | echo "Soma total: $soma"; 47 | 48 | 49 | //contagem regressiva 50 | 51 | $contador = 10; 52 | 53 | while ($contador >= 1) { 54 | echo "$contador... "; 55 | $contador--; 56 | } 57 | 58 | echo "Fogo!"; 59 | 60 | 61 | 62 | //Suponha que você tenha um arquivo de texto chamado "dados.txt" com várias linhas de dados e queira processar cada linha desse arquivo. 63 | 64 | //Neste exemplo, o programa abre o arquivo "dados.txt" para leitura e usa o loop "while" para ler e processar cada linha do arquivo até que não haja mais linhas para ler. Dentro do loop, cada linha é exibida e pode ser processada conforme necessário. Ao final, o arquivo é fechado. 65 | 66 | 67 | // Abrir o arquivo para leitura 68 | $arquivo = fopen("dados.txt", "r"); 69 | 70 | // Verificar se o arquivo foi aberto com sucesso 71 | if ($arquivo) { 72 | // Processar cada linha do arquivo 73 | while (($linha = fgets($arquivo)) !== false) { 74 | // Exibir cada linha 75 | echo $linha; 76 | // Realizar algum processamento com cada linha, se necessário 77 | } 78 | 79 | // Fechar o arquivo 80 | fclose($arquivo); 81 | } else { 82 | echo "Não foi possível abrir o arquivo."; 83 | } 84 | -------------------------------------------------------------------------------- /Project/Day13/teste.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day13/teste.php -------------------------------------------------------------------------------- /Project/Day14/anotacao.txt: -------------------------------------------------------------------------------- 1 | date -------------------------------------------------------------------------------- /Project/Day14/gravar.php: -------------------------------------------------------------------------------- 1 | "; 13 | } 14 | 15 | echo 'Grau de conhecimento: ' . $_POST['conhecimento']; -------------------------------------------------------------------------------- /Project/Day14/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Document 7 | 8 | 9 | 10 | 11 | 12 |
13 |

Linguagens

14 | 15 | 18 | 19 | 22 | 23 | 26 |
27 | 28 |

Grau de conhecimento

29 | 30 | Junior 31 | Pleno 32 | Senior 33 |
34 | 35 |

Escolaridade

36 | 37 | 44 |
45 | 46 | 47 |
48 | 49 | 50 | -------------------------------------------------------------------------------- /Project/Day15/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day15/12.png -------------------------------------------------------------------------------- /Project/Day15/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day15/13.png -------------------------------------------------------------------------------- /Project/Day15/index.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day15/index.php -------------------------------------------------------------------------------- /Project/Day16/img.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day16/img.jpg -------------------------------------------------------------------------------- /Project/Day16/index.php: -------------------------------------------------------------------------------- 1 | ord('z')) { 34 | // Se ultrapassar, ajusta para começar de novo em 'a' 35 | $nextCode -= 26; 36 | } 37 | 38 | // Obtém a letra correspondente ao código ASCII calculado 39 | $nextLetter = chr($nextCode); 40 | 41 | $codigo .= $nextLetter; 42 | // .= é um operador de concatenação em PHP, é usado para concatenar o valor à direita com a variável à esquerda e atribuir o resultado à variável à esquerda. 43 | } 44 | } 45 | 46 | // Exibe o código transformado 47 | echo '
'; 48 | echo 'codigo: ' . $codigo; 49 | echo '
'; 50 | } 51 | 52 | ?> 53 | -------------------------------------------------------------------------------- /Project/Day17/14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day17/14.png -------------------------------------------------------------------------------- /Project/Day17/15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day17/15.png -------------------------------------------------------------------------------- /Project/Day18-19/index.php: -------------------------------------------------------------------------------- 1 | ord('z')) { 24 | $nextCode -= 26; 25 | } 26 | $nextLetter = chr($nextCode); 27 | $codigo .= $nextLetter; 28 | } 29 | } 30 | return $codigo; 31 | } 32 | 33 | function exibirCodigoTransformado($codigo) { 34 | echo '
'; 35 | echo 'Código: ' . $codigo; 36 | echo '
'; 37 | } 38 | function exibirFraseCorrespondente($letra) { 39 | $letrasParaFrases = array( 40 | 'A' => 'Bom dia!', 41 | 'B' => 'Boa tarde!', 42 | 'C' => 'Boa noite!' 43 | ); 44 | 45 | if(isset($letrasParaFrases[$letra])) { 46 | $frase = $letrasParaFrases[$letra]; 47 | echo '
'; 48 | echo "Para a letra '$letra', a frase é: '$frase'"; 49 | echo '
'; 50 | } else { 51 | echo '
'; 52 | echo "A letra '$letra' não possui uma frase correspondente"; 53 | echo '
'; 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /Project/Day20-21/README.md: -------------------------------------------------------------------------------- 1 |

Formulário de Cadastro de Produtos

2 | 3 | :pushpin: Projeto Desenvolvido utilizando Conceitos de Estrutura de Dados.
4 | :pencil: Contém 15 campos distintos.
5 | :pencil: Todos os campos estão validados no PHP. 6 | 7 | 8 |

9 | 10 | 11 | ## 📎 Como Utilizar essse arquivos: 12 | 13 | 1. Faça download do Programa "XAMPP" e o instale em seu computador. 14 | 2. Faça download do projeto e descompacte a pasta; 15 | 3. Mova a pasta do projeto dentro da pasta "htdocs" (armazenada na pasta Xampp, localizada no seu disco Local C:); 16 | 4. Abra o Xampp e execute Apache; 17 | 5. No navegador, escreva "localhost/" e coloque o nome da pasta / nome do arquivo index.html 18 | Você entrará na página principal do Projeto. 19 | 20 | ## 💻Conteúdo do Projeto 21 | ## ![PHP](https://img.shields.io/badge/-PHP-777BB4?style=for-the-badge&logo=php&logoColor=white) ![HTML](https://img.shields.io/badge/-HTML5-E34F26?style=for-the-badge&logo=html5&logoColor=white) ![CSS](https://img.shields.io/badge/-CSS3-1572B6?style=for-the-badge&logo=css3&logoColor=white) ![Git](https://img.shields.io/badge/-Git-F05032?style=for-the-badge&logo=git&logoColor=white) 22 | 23 | 24 | - Tela simples contendo um formulário com 15 campos didstintos, contendo os seguintes campos: 25 | - Categoria 26 | - Nome do Produto 27 | - Marca do Produto 28 | - Disponibilidade 29 | - Preço do Produto 30 | - Dimensoes do Produto 31 | - Material do Produto 32 | - Codigo de barras 33 | - Avaliações 34 | - Conservação do Item 35 | - Nome do Fabricante 36 | - Endereço do Fabricante 37 | 38 |
39 | 40 |
41 | 42 | 43 | ## :pushpin: Colaboradores 44 | 45 |

Jennyfer Alvim

46 | 47 | 48 | -------------------------------------------------------------------------------- /Project/Day20-21/css/style.css: -------------------------------------------------------------------------------- 1 | /* Estilo para o corpo da página */ 2 | body { 3 | font-family: Arial, sans-serif; /* Define a fonte para o corpo do texto */ 4 | background-color: #f2f2f2; /* Define a cor de fundo */ 5 | margin: 0; /* Remove as margens padrão */ 6 | padding: 0; /* Remove o preenchimento padrão */ 7 | } 8 | 9 | /* Estilo para a seção de formulário */ 10 | section { 11 | max-width: 800px; /* Define a largura máxima da seção */ 12 | margin: 20px auto; /* Centraliza a seção na página */ 13 | padding: 20px; /* Adiciona um preenchimento interno */ 14 | background-color: #fff; /* Define a cor de fundo */ 15 | border-radius: 10px; /* Adiciona cantos arredondados */ 16 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); /* Adiciona sombra */ 17 | } 18 | 19 | /* Estilo para o título do formulário */ 20 | h1 { 21 | text-align: center; /* Centraliza o texto */ 22 | margin-bottom: 20px; /* Adiciona espaço abaixo do título */ 23 | } 24 | 25 | /* Estilo para os títulos das seções do formulário */ 26 | h2 { 27 | margin-top: 30px; /* Adiciona espaço acima do título */ 28 | } 29 | 30 | /* Estilo para os rótulos dos campos de entrada */ 31 | label { 32 | display: block; /* Faz os rótulos aparecerem em uma nova linha */ 33 | margin-top: 10px; /* Adiciona espaço acima dos rótulos */ 34 | } 35 | 36 | /* Estilo para os campos de entrada */ 37 | input[type="text"], 38 | input[type="number"], 39 | input[type="date"], 40 | select, 41 | textarea { 42 | width: 100%; /* Define a largura total */ 43 | padding: 10px; /* Adiciona preenchimento interno */ 44 | margin-top: 5px; /* Adiciona espaço acima dos campos de entrada */ 45 | margin-bottom: 15px; /* Adiciona espaço abaixo dos campos de entrada */ 46 | border: 1px solid #ccc; /* Adiciona uma borda */ 47 | border-radius: 5px; /* Adiciona cantos arredondados */ 48 | box-sizing: border-box; /* Garante que o preenchimento e a borda não aumentem a largura total */ 49 | } 50 | 51 | /* Estilo para os botões */ 52 | button[type="submit"] { 53 | background-color: #007bff; /* Define a cor de fundo */ 54 | color: #fff; /* Define a cor do texto */ 55 | padding: 10px 20px; /* Adiciona preenchimento */ 56 | border: none; /* Remove a borda */ 57 | border-radius: 5px; /* Adiciona cantos arredondados */ 58 | cursor: pointer; /* Muda o cursor para indicar interatividade */ 59 | } 60 | 61 | button[type="submit"]:hover { 62 | background-color: #0056b3; /* Altera a cor de fundo ao passar o mouse */ 63 | } 64 | -------------------------------------------------------------------------------- /Project/Day22/index.php: -------------------------------------------------------------------------------- 1 | ord('z')) { 24 | $nextCode -= 26; 25 | } 26 | $nextLetter = chr($nextCode); 27 | $codigo .= $nextLetter; 28 | } 29 | } 30 | return $codigo; 31 | } 32 | 33 | function exibirCodigoTransformado($codigo) { 34 | echo '
'; 35 | echo 'Código: ' . $codigo; 36 | echo '
'; 37 | } 38 | function exibirFraseCorrespondente($letra) { 39 | $letrasParaFrases = array( 40 | 'A' => 'Bom dia!', 41 | 'B' => 'Boa tarde!', 42 | 'C' => 'Boa noite!' 43 | ); 44 | 45 | if(isset($letrasParaFrases[$letra])) { 46 | $frase = $letrasParaFrases[$letra]; 47 | echo '
'; 48 | echo "Para a letra '$letra', a frase é: '$frase'"; 49 | echo '
'; 50 | } else { 51 | echo '
'; 52 | echo "A letra '$letra' não possui uma frase correspondente"; 53 | echo '
'; 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /Project/Day28/arquivos.php: -------------------------------------------------------------------------------- 1 | codigo . '
'; 23 | echo 'Nome: ' . $dados -> nome . '
'; 24 | echo 'Sexo: ' . $dados -> sexo . '
'; 25 | echo '-----------------------
'; 26 | 27 | // 4 - FECHAR O RECURSO, PARA RETIRAR DA MEMÓRIA 28 | fclose($recurso); 29 | 30 | 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Project/Day28/banco/31231.json: -------------------------------------------------------------------------------- 1 | {"codigo":"31231","nome":"31231","sexo":"masculino"} -------------------------------------------------------------------------------- /Project/Day28/banco/321321.json: -------------------------------------------------------------------------------- 1 | {"codigo":"321321","nome":"Paulo","sexo":"masculino"} -------------------------------------------------------------------------------- /Project/Day28/banco/5468.json: -------------------------------------------------------------------------------- 1 | {"codigo":"5468","nome":"Deivide","sexo":"masculino"} -------------------------------------------------------------------------------- /Project/Day28/form.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Formulário 7 | 8 | 9 | 10 |

Formulário

11 | 12 |
13 | 14 |
15 | 16 |
17 | 18 | 23 | 24 |
25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Project/Day28/gravar.php: -------------------------------------------------------------------------------- 1 | $codigo, 9 | 'nome' => $nome, 10 | 'sexo' => $sexo 11 | ]; 12 | 13 | $json = json_encode($dados); 14 | 15 | // 1 - NOME DO ARQUIVO 16 | $nome_arquivo = "banco/$codigo.json"; 17 | 18 | //2 - ABRIR O ARQUIVO EM MEMÓRIA 19 | $recurso = fopen($nome_arquivo, 'a+'); 20 | 21 | // 3 - ESCREVER NO ARQUIVO - \n e PHP_EOL servem para quebra de linha; 22 | fwrite($recurso, $json); 23 | 24 | // 4 - FECHAR O RECURSO, PARA RETIRAR DA MEMÓRIA 25 | fclose($recurso); -------------------------------------------------------------------------------- /Project/Day29/18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day29/18.png -------------------------------------------------------------------------------- /Project/Day29/19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day29/19.png -------------------------------------------------------------------------------- /Project/Day29/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day29/20.png -------------------------------------------------------------------------------- /Project/Day29/21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day29/21.png -------------------------------------------------------------------------------- /Project/Day30/index.php: -------------------------------------------------------------------------------- 1 | pilhaTarefas = array(); 7 | } 8 | 9 | public function adicionarTarefa($tarefa) { 10 | array_push($this->pilhaTarefas, $tarefa); 11 | echo "Tarefa adicionada: $tarefa
"; 12 | } 13 | 14 | public function completarTarefa() { 15 | if ($this->isEmpty()) { 16 | echo "Não há tarefas a completar.
"; 17 | return; 18 | } 19 | $tarefa = array_pop($this->pilhaTarefas); 20 | echo "Tarefa completada: $tarefa
"; 21 | } 22 | 23 | public function isEmpty() { 24 | return empty($this->pilhaTarefas); 25 | } 26 | } 27 | 28 | // Simulando o uso do gerenciador de tarefas 29 | $gerenciador = new GerenciadorTarefas(); 30 | $gerenciador->adicionarTarefa("Lavar a louça"); 31 | $gerenciador->adicionarTarefa("Pagar as contas"); 32 | $gerenciador->adicionarTarefa("Fazer compras"); 33 | 34 | echo "
Completando tarefas:
"; 35 | $gerenciador->completarTarefa(); 36 | $gerenciador->completarTarefa(); 37 | $gerenciador->completarTarefa(); 38 | $gerenciador->completarTarefa(); // Tentando completar uma tarefa quando não há mais tarefas 39 | ?> 40 | -------------------------------------------------------------------------------- /Project/Day31-33/array.php: -------------------------------------------------------------------------------- 1 | 'um', 10 | 11 => 'onze', 11 | 22 => 'vinte dois' 12 | ]; 13 | 14 | $resultado = []; 15 | 16 | foreach ($arrayNumero as $k => $v){ 17 | 18 | //$resultado[$k] = 'teste'; 19 | $resultado[$k] = $k +1; 20 | echo " chave : $k - valor: $v
"; 21 | } 22 | 23 | 24 | //se nao usar a key, nao tem problema apaga-la $arrayNumero as $v 25 | 26 | -------------------------------------------------------------------------------- /Project/Day31-33/index.php: -------------------------------------------------------------------------------- 1 | pilha); 11 | } 12 | 13 | // Método para verificar se a pilha está vazia 14 | public function EstaVazia() { 15 | return empty($this->pilha); 16 | } 17 | 18 | // Método para adicionar um elemento à pilha 19 | public function Adicionar($elemento) { 20 | array_push($this->pilha, $elemento); 21 | } 22 | 23 | // Método para remover o elemento do topo da pilha 24 | public function Remover() { 25 | array_pop($this->pilha); 26 | } 27 | 28 | // Método para remover todos os elementos da pilha 29 | public function RemoverTodos() { 30 | while (!$this->EstaVazia()) { 31 | $this->Remover(); 32 | } 33 | } 34 | 35 | // Método para listar os elementos da pilha 36 | public function Listar() { 37 | return array_reverse($this->pilha); 38 | } 39 | } 40 | 41 | // Instanciando a classe Pilha 42 | $pilha = new Pilha(); 43 | 44 | // Adicionando elementos à pilha 45 | $pilha->Adicionar("C#"); 46 | $pilha->Adicionar("C++"); 47 | $pilha->Adicionar("Java"); 48 | $pilha->Adicionar("Python"); 49 | $pilha->Adicionar("Ruby");//ultimo na pilha, 1° a ser exibido 50 | $pilha->Adicionar("Remover esse elemento"); 51 | 52 | // Removendo um elemento da pilha 53 | $pilha->Remover(); 54 | 55 | // Exibindo os elementos restantes na pilha 56 | foreach ($pilha->Listar() as $item) { 57 | echo $item . "
"; 58 | } 59 | -------------------------------------------------------------------------------- /Project/Day34/ddl.php: -------------------------------------------------------------------------------- 1 | push("banana"); 8 | $dll->push("mamão"); 9 | $dll->push("limão"); 10 | $dll->push("maçã"); 11 | $dll->push("uva"); 12 | 13 | echo "Cabeça: " . $dll->bottom() . "
"; // Acessando o primeiro elemento da lista 14 | echo "Cauda: " . $dll->top() . "
"; // Acessando o último elemento da lista 15 | 16 | // Iterando usando métodos do DoublyLinkedList 17 | $dll->rewind(); 18 | $prev = null; // Item anterior 19 | 20 | while ($dll->valid()) { 21 | $current = $dll->current(); // Obtendo o valor atual do ponteiro 22 | echo "Anterior: " . $prev . "
"; 23 | echo "Atual: " . $current . "
"; 24 | 25 | // Avançando o ponteiro para o próximo item 26 | $dll->next(); 27 | 28 | // Verificando se o ponteiro ainda é válido (não atingiu o fim da lista) 29 | if ($dll->valid()) { 30 | $next = $dll->current(); // Obtendo o próximo valor do ponteiro 31 | echo "Próximo: " . $next . "
"; 32 | } 33 | 34 | echo "
"; 35 | 36 | // Atualizando o valor do item anterior 37 | $prev = $current; 38 | } 39 | -------------------------------------------------------------------------------- /Project/Day34/index.php: -------------------------------------------------------------------------------- 1 | setSize(4); 12 | 13 | $fixed[3] = "uva"; 14 | 15 | foreach ($fixed as $key => $value) { 16 | echo "posição $key valor $value
"; 17 | } 18 | */ 19 | 20 | $ddl = new \SplDoublyLinkedList (); 21 | -------------------------------------------------------------------------------- /Project/Day34/pilha.php: -------------------------------------------------------------------------------- 1 | push("laranja"); 7 | $dll->push("banana"); 8 | $dll->push("mamão"); 9 | $dll->push("limão"); 10 | $dll->push("maçã"); 11 | $dll->push("uva"); 12 | 13 | echo "Cabeça: " . $dll->bottom() . "
"; // Acessando o primeiro elemento da lista 14 | echo "Cauda: " . $dll->top() . "
"; // Acessando o último elemento da lista 15 | 16 | // Iterando usando métodos do DoublyLinkedList 17 | $dll->rewind(); //rebobinando itens 18 | $prev = null; // Item anterior 19 | 20 | while ($dll->valid()) { 21 | $current = $dll->current(); // Obtendo o valor atual do ponteiro (current) 22 | echo "Anterior: " . $prev . "
"; 23 | echo "Atual: " . $current . "
"; 24 | 25 | // Avançando o ponteiro para o próximo item 26 | $dll->next(); 27 | 28 | // Verificando se o ponteiro ainda é válido (não atingiu o fim da lista) 29 | if ($dll->valid()) { 30 | $next = $dll->current(); // Obtendo o próximo valor do ponteiro 31 | echo "Próximo: " . $next . "
"; 32 | } 33 | 34 | echo "
"; 35 | 36 | // Atualizando o valor do item anterior 37 | $prev = $current; 38 | } 39 | -------------------------------------------------------------------------------- /Project/Day35/aula102/arquivos.php: -------------------------------------------------------------------------------- 1 | codigo . '
'; 22 | echo 'Nome: ' . $dados -> nome . '
'; 23 | echo 'Sexo: ' . $dados -> sexo . '
'; 24 | echo '-----------------------
'; 25 | 26 | // 4 - FECHAR O RECURSO, PARA RETIRAR DA MEMÓRIA 27 | fclose($recurso); 28 | 29 | 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Project/Day35/aula102/banco/31231.json: -------------------------------------------------------------------------------- 1 | {"codigo":"31231","nome":"31231","sexo":"masculino"} -------------------------------------------------------------------------------- /Project/Day35/aula102/banco/321321.json: -------------------------------------------------------------------------------- 1 | {"codigo":"321321","nome":"Paulo","sexo":"masculino"} -------------------------------------------------------------------------------- /Project/Day35/aula102/banco/5468.json: -------------------------------------------------------------------------------- 1 | {"codigo":"5468","nome":"Deivide","sexo":"masculino"} -------------------------------------------------------------------------------- /Project/Day35/aula102/form.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Formulário 7 | 8 | 9 | 10 |

Formulário

11 | 12 |
13 | 14 |
15 | 16 |
17 | 18 | 23 | 24 |
25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Project/Day35/aula102/gravar.php: -------------------------------------------------------------------------------- 1 | $codigo, 9 | 'nome' => $nome, 10 | 'sexo' => $sexo 11 | ]; 12 | 13 | $json = json_encode($dados); 14 | 15 | // 1 - NOME DO ARQUIVO 16 | $nome_arquivo = "banco/$codigo.json"; 17 | 18 | //2 - ABRIR O ARQUIVO EM MEMÓRIA 19 | $recurso = fopen($nome_arquivo, 'a+'); 20 | 21 | // 3 - ESCREVER NO ARQUIVO - \n e PHP_EOL servem para quebra de linha; 22 | fwrite($recurso, $json); 23 | 24 | // 4 - FECHAR O RECURSO, PARA RETIRAR DA MEMÓRIA 25 | fclose($recurso); -------------------------------------------------------------------------------- /Project/Day35/index.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 12 | 13 |

Produtos

14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 |
codigonomever
2Coca cola detalhes/a>
3fanta detalhes/a>
34 | 35 | -------------------------------------------------------------------------------- /Project/Day35/produto.php: -------------------------------------------------------------------------------- 1 | Status: --> 7 | */ 8 | 9 | $arquivo = $_GET['arquivo']; 10 | ?> 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | Document 19 | 20 | 21 | 22 |

nome arquivo json:

23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Project/Day36/22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day36/22.png -------------------------------------------------------------------------------- /Project/Day36/23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day36/23.png -------------------------------------------------------------------------------- /Project/Day36/24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day36/24.png -------------------------------------------------------------------------------- /Project/Day37-40/EmailValidator.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Formulário de Pedido de Audiobook 8 | 9 | 10 | 11 |
12 |
13 |

Formulário de Pedido de Audiobook

14 |
15 |
16 |
17 | 18 | 19 |
20 |
21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 |
29 | 30 | 31 |
32 |
33 | 34 | 35 |
36 |
37 | 38 | 39 |
40 | 41 |
42 |
43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /Project/Day37-40/pedido.php: -------------------------------------------------------------------------------- 1 | = MAX_REQUESTS_PER_MINUTE) { 23 | // Limite de solicitações excedido 24 | echo "Limite de solicitações excedido. Tente novamente mais tarde."; 25 | exit; 26 | }mnnmn 27 | 28 | // Adicionar a nova solicitação à fila 29 | $novaSolicitacao = [ 30 | "nome_livro" => $nomeLivro, 31 | "categoria" => $categoria, 32 | "autor" => $autor, 33 | "nome_usuario" => $nomeUsuario, 34 | "email" => $email 35 | ]; 36 | 37 | array_push($filaDeSolicitacoes, $novaSolicitacao); 38 | 39 | // Exibir mensagem de sucesso para o usuário 40 | // Exibir mensagem de sucesso para o usuário 41 | echo ""; 42 | echo "
"; 43 | echo "

Obrigado, $nomeUsuario! Você solicitou o livro '$nomeLivro'. Aguarde e em breve adicionaremos!

"; 44 | echo "
"; 45 | 46 | 47 | } 48 | 49 | // Função para processar uma solicitação (substitua pela lógica real de processamento) 50 | function processarSolicitacao($solicitacao) { 51 | // Lógica para processar a solicitação aqui 52 | } 53 | 54 | // Processamento das solicitações na fila (em um cron job ou script agendado) 55 | foreach ($filaDeSolicitacoes as $solicitacao) { 56 | // Processar a solicitação 57 | processarSolicitacao($solicitacao); 58 | 59 | // Remover a solicitação da fila 60 | $filaDeSolicitacoes = array_diff($filaDeSolicitacoes, [$solicitacao]); 61 | 62 | // Verificar o tempo de execução e aguardar um intervalo antes de processar a próxima solicitação 63 | usleep(60000000 / MAX_REQUESTS_PER_MINUTE); // Aguarda 60 segundos dividido pelo número máximo de solicitações 64 | } 65 | 66 | ?> 67 | -------------------------------------------------------------------------------- /Project/Day37-40/style.css: -------------------------------------------------------------------------------- 1 | /* Estilo do Formulário */ 2 | body { 3 | background-color: #f0f0f0; 4 | } 5 | 6 | .todo-container { 7 | max-width: 400px; 8 | margin: 3rem auto; 9 | background-color: #f8f8f8; 10 | padding: 2rem; 11 | border-radius: 20px; 12 | } 13 | 14 | .todo-container header { 15 | text-align: center; 16 | padding: 0 1rem 1rem; 17 | border-bottom: 2px solid #691248; 18 | font-family: 'Times New Roman', Times, serif; 19 | color: #691248; 20 | } 21 | 22 | .form-control { 23 | margin-bottom: 1rem; 24 | } 25 | 26 | .form-control label { 27 | font-weight: bold; 28 | margin-bottom: 1rem; 29 | color: #691248; 30 | } 31 | 32 | .form-control input[type="text"], 33 | .form-control input[type="email"], 34 | .form-control select { 35 | padding: 0.5rem; 36 | border-radius: 5px; 37 | border: 1px solid #ccc; 38 | width: 100%; 39 | margin-top: 1rem; 40 | } 41 | 42 | /* Estilizando as categorias */ 43 | .category-options { 44 | display: flex; 45 | } 46 | 47 | .category-options label { 48 | margin-right: 1rem; 49 | color: #691248; 50 | } 51 | 52 | .form-control input[type="radio"] { 53 | display: inline-block; 54 | margin-right: 0.5rem; 55 | } 56 | 57 | button[type="submit"] { 58 | background-color: #691248; 59 | color: #fff; 60 | padding: 0.5rem 1rem; 61 | border: none; 62 | border-radius: 5px; 63 | cursor: pointer; 64 | transition: background-color 0.3s ease; 65 | } 66 | 67 | button[type="submit"]:hover { 68 | background-color: #ff009d; 69 | } 70 | 71 | 72 | /*estilo da mensagem php*/ 73 | .message-container { 74 | background-color: #691248; 75 | color: #fff; 76 | padding: 1rem; 77 | border-radius: 5px; 78 | margin-top: 1rem; 79 | text-align: center; 80 | } 81 | 82 | .success-message { 83 | font-size: 1.1rem; 84 | font-weight: bold; 85 | } 86 | -------------------------------------------------------------------------------- /Project/Day41/foguete.php: -------------------------------------------------------------------------------- 1 | ligado = true; 12 | echo "Foguete ligado.
"; 13 | } 14 | 15 | public function desligar() { 16 | $this->ligado = false; 17 | echo "Foguete desligado.
"; 18 | } 19 | 20 | public function aumentarVelocidade($valor) { 21 | if ($this->ligado) { 22 | $this->velocidade += $valor; 23 | echo "Velocidade aumentada para {$this->velocidade} km/h.
"; 24 | } else { 25 | echo "O foguete está desligado, não é possível aumentar a velocidade.
"; 26 | } 27 | } 28 | 29 | public function diminuirVelocidade($valor) { 30 | if ($this->ligado) { 31 | $this->velocidade -= $valor; 32 | if ($this->velocidade < 0) { 33 | $this->velocidade = 0; 34 | } 35 | echo "Velocidade diminuída para {$this->velocidade} km/h.
"; 36 | } else { 37 | echo "O foguete está desligado, não é possível diminuir a velocidade.
"; 38 | } 39 | } 40 | 41 | public function alterarAltitude($valor) { 42 | if ($this->ligado) { 43 | $this->altitude += $valor; 44 | echo "Altitude alterada para {$this->altitude} metros.
"; 45 | } else { 46 | echo "O foguete está desligado, não é possível alterar a altitude.
"; 47 | } 48 | } 49 | } 50 | 51 | // Criar objeto Foguete 52 | $foguete = new Foguete(); 53 | 54 | // Operações com o foguete 55 | $foguete->ligar(); 56 | $foguete->aumentarVelocidade(1000); 57 | $foguete->alterarAltitude(5000); 58 | $foguete->diminuirVelocidade(500); 59 | $foguete->desligar(); 60 | -------------------------------------------------------------------------------- /Project/Day41/index.php: -------------------------------------------------------------------------------- 1 | cor = "Azul"; 30 | $carro1->modelo = "Fusca"; 31 | $carro1->ano = 1975; 32 | 33 | $carro2 = new Carro(); 34 | $carro2->cor = "Vermelho"; 35 | $carro2->modelo = "Civic"; 36 | $carro2->ano = 2020; 37 | 38 | // Usar métodos dos objetos Carro 39 | $carro1->ligar(); // Saída: O carro está ligado. 40 | $carro2->acelerar(); // Saída: O carro está acelerando. 41 | -------------------------------------------------------------------------------- /Project/Day41/sorvete.php: -------------------------------------------------------------------------------- 1 | sabor = $sabor; 12 | $this->valor = $valor;//atribuindo os valores dos parâmetros do construtor às propriedades $sabor e $valor do objeto 13 | echo "Um sorvete de $sabor foi criado.
"; 14 | } 15 | 16 | // Método para comprar o sorvete 17 | public function comprar() { //método público da classe, permite que um objeto de sorvete seja comprado 18 | if ($this->valor <= 10.00) { 19 | echo "Você comprou o sorvete de {$this->sabor} por R$ {$this->valor}.
"; 20 | } else { 21 | echo "Desculpe, o sorvete de {$this->sabor} é muito caro e você não pode comprar.
"; 22 | } 23 | } 24 | } 25 | 26 | // Criando objeto Sorvete 27 | $sorvete1 = new Sorvete("Morango", 5.99); // criando um novo objeto da classe Sorvete, passando "Morango" como sabor e 5.99 como valor 28 | $sorvete2 = new Sorvete("Chocolate Belga", 12.50); // Exemplo de preço em reais 29 | 30 | // Operações de compra com os sorvetes 31 | //$sorvete->comprar();: Chama o método comprar() do objeto $sorvete, que realiza a operação de compra e exibe uma mensagem correspondente 32 | $sorvete1->comprar(); // Saída: Você comprou o sorvete de Morango por R$ 5.99. 33 | $sorvete2->comprar(); // Saída: Desculpe, o sorvete de Chocolate Belga é muito caro e você não pode comprar. 34 | -------------------------------------------------------------------------------- /Project/Day44/.htaccess: -------------------------------------------------------------------------------- 1 | RewriteEngine on 2 | RewriteRule api ./index.php 3 | 4 | -------------------------------------------------------------------------------- /Project/Day44/App/controller/pages/Home.php: -------------------------------------------------------------------------------- 1 | 'Home@index', //quando chamar a '/' na uri, chamará o controle Home e o método @index 9 | '/user/create' => 'User@create' 10 | ]; 11 | } 12 | 13 | //aqui vão as funcoes gerais das rotas 14 | function router(){ 15 | $uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); 16 | echo $uri; 17 | 18 | };*/ 19 | -------------------------------------------------------------------------------- /Project/Day44/App/router/routes.php: -------------------------------------------------------------------------------- 1 | $routes[$uri]] : 8 | []; 9 | } 10 | 11 | function regularExpressionMatchArrayRoutes($uri, $routes) 12 | { 13 | return array_filter( 14 | 15 | 16 | $routes, 17 | function ($value) use ($uri) { 18 | $regex = str_replace('/', '\/', ltrim($value, '/')); 19 | return preg_match("/^$regex$/", ltrim($uri, '/')); 20 | }, 21 | ARRAY_FILTER_USE_KEY 22 | ); 23 | } 24 | 25 | function params($uri, $matchedUri) 26 | { 27 | if (!empty($matchedUri)) { 28 | $matchedToGetParams = array_keys($matchedUri)[0]; 29 | return array_diff( 30 | $uri, 31 | explode('/', ltrim($matchedToGetParams, '/')) 32 | ); 33 | } 34 | return []; 35 | } 36 | 37 | function paramsFormat($uri, $params) 38 | { 39 | $paramsData = []; 40 | foreach ($params as $index => $param) { 41 | $paramsData[$uri[$index - 1]] = $param; 42 | } 43 | 44 | return $paramsData; 45 | } 46 | 47 | 48 | function router() 49 | { 50 | $uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); 51 | 52 | $routes = require 'routes.php'; 53 | $requestMethod = $_SERVER['REQUEST_METHOD']; 54 | 55 | $matchedUri = exactMatchUriInArrayRoutes($uri, $routes[$requestMethod]); 56 | 57 | $params = []; 58 | if (empty($matchedUri)) { 59 | $matchedUri = regularExpressionMatchArrayRoutes($uri, $routes[$requestMethod]); 60 | $uri = explode('/', ltrim($uri, '/')); 61 | $params = params($uri, $matchedUri); 62 | $params = paramsFormat($uri, $params); 63 | } 64 | 65 | if ($_ENV['MAINTENANCE'] === 'true') { 66 | $matchedUri = ['/maintenance' => 'Maintenance@index']; 67 | } 68 | 69 | // dd($matchedUri); 70 | 71 | 72 | if (!empty($matchedUri)) { 73 | return controller($matchedUri, $params); 74 | } 75 | 76 | 77 | throw new Exception('Algo deu errado'); 78 | } -------------------------------------------------------------------------------- /Project/Day44/App/views/emails/header.php: -------------------------------------------------------------------------------- 1 | 8 | 9 |
10 | Bem vindo, 11 | 12 | path) : ?> 13 | 14 | 15 | 16 | firstName; ?> | Logout | 17 | Edit profile 18 | 19 | visitante 20 | 21 |
-------------------------------------------------------------------------------- /Project/Day44/App/views/login.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 14 | 15 |
16 | Bem vindo, 17 | 18 | path) : ?> 19 | 20 | 21 | 22 | firstName; ?> | Logout | 23 | Edit profile 24 | 25 | visitante 26 | 27 |
-------------------------------------------------------------------------------- /Project/Day44/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jennie/day44", 3 | "description": "atividade-rotas", 4 | 5 | "authors": [ 6 | { 7 | "name": "JennieOliveira99", 8 | "email": "jennyferoliveira7315@gmail.com" 9 | } 10 | ], 11 | "require": {}, 12 | 13 | "autoload": { 14 | "files": [ 15 | 16 | "app/router/router.php" 17 | ], 18 | "psr-4": { 19 | "Jennie\\Day44\\": "src/", 20 | "app\\": "app/" 21 | } 22 | } 23 | 24 | 25 | } 26 | -------------------------------------------------------------------------------- /Project/Day44/public/bootstrap.php: -------------------------------------------------------------------------------- 1 | $vendorDir . '/composer/InstalledVersions.php', 10 | ); 11 | -------------------------------------------------------------------------------- /Project/Day44/vendor/composer/autoload_files.php: -------------------------------------------------------------------------------- 1 | $baseDir . '/app/router/router.php', 10 | ); 11 | -------------------------------------------------------------------------------- /Project/Day44/vendor/composer/autoload_namespaces.php: -------------------------------------------------------------------------------- 1 | array($baseDir . '/app'), 10 | 'Jennie\\Day44\\' => array($baseDir . '/src'), 11 | ); 12 | -------------------------------------------------------------------------------- /Project/Day44/vendor/composer/autoload_static.php: -------------------------------------------------------------------------------- 1 | __DIR__ . '/../..' . '/app/router/router.php', 11 | ); 12 | 13 | public static $prefixLengthsPsr4 = array ( 14 | 'a' => 15 | array ( 16 | 'app\\' => 4, 17 | ), 18 | 'J' => 19 | array ( 20 | 'Jennie\\Day44\\' => 13, 21 | ), 22 | ); 23 | 24 | public static $prefixDirsPsr4 = array ( 25 | 'app\\' => 26 | array ( 27 | 0 => __DIR__ . '/../..' . '/app', 28 | ), 29 | 'Jennie\\Day44\\' => 30 | array ( 31 | 0 => __DIR__ . '/../..' . '/src', 32 | ), 33 | ); 34 | 35 | public static $classMap = array ( 36 | 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', 37 | ); 38 | 39 | public static function getInitializer(ClassLoader $loader) 40 | { 41 | return \Closure::bind(function () use ($loader) { 42 | $loader->prefixLengthsPsr4 = ComposerStaticInit0e7b45a4d7cc22b2e5b3987078541c0f::$prefixLengthsPsr4; 43 | $loader->prefixDirsPsr4 = ComposerStaticInit0e7b45a4d7cc22b2e5b3987078541c0f::$prefixDirsPsr4; 44 | $loader->classMap = ComposerStaticInit0e7b45a4d7cc22b2e5b3987078541c0f::$classMap; 45 | 46 | }, null, ClassLoader::class); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /Project/Day45/README.md: -------------------------------------------------------------------------------- 1 |

Formulário de Cadastro de Produtos

2 | 3 | :pushpin: Projeto Desenvolvido utilizando Conceitos de Estrutura de Dados.
4 | :pencil: Contém 15 campos distintos.
5 | :pencil: Todos os campos estão validados no PHP. 6 | 7 | 8 |

9 | 10 | 11 | ## 📎 Como Utilizar essse arquivos: 12 | 13 | 1. Faça download do Programa "XAMPP" e o instale em seu computador. 14 | 2. Faça download do projeto e descompacte a pasta; 15 | 3. Mova a pasta do projeto dentro da pasta "htdocs" (armazenada na pasta Xampp, localizada no seu disco Local C:); 16 | 4. Abra o Xampp e execute Apache; 17 | 5. No navegador, escreva "localhost/" e coloque o nome da pasta / nome do arquivo index.html 18 | Você entrará na página principal do Projeto. 19 | 20 | ## 💻Conteúdo do Projeto 21 | ## ![PHP](https://img.shields.io/badge/-PHP-777BB4?style=for-the-badge&logo=php&logoColor=white) ![HTML](https://img.shields.io/badge/-HTML5-E34F26?style=for-the-badge&logo=html5&logoColor=white) ![CSS](https://img.shields.io/badge/-CSS3-1572B6?style=for-the-badge&logo=css3&logoColor=white) ![Git](https://img.shields.io/badge/-Git-F05032?style=for-the-badge&logo=git&logoColor=white) 22 | 23 | 24 | - Tela simples contendo um formulário com 15 campos didstintos, contendo os seguintes campos: 25 | - Categoria 26 | - Nome do Produto 27 | - Marca do Produto 28 | - Disponibilidade 29 | - Preço do Produto 30 | - Dimensoes do Produto 31 | - Material do Produto 32 | - Codigo de barras 33 | - Avaliações 34 | - Conservação do Item 35 | - Nome do Fabricante 36 | - Endereço do Fabricante 37 | 38 |
39 | 40 |
41 | 42 | 43 | ## :pushpin: Colaboradores 44 | 45 |

Jennyfer Alvim

46 | 47 | 48 | -------------------------------------------------------------------------------- /Project/Day45/arquivos.php: -------------------------------------------------------------------------------- 1 | Categoria . '
'; 20 | echo 'NomeProduto'.$dados->NomeProduto . '
'; 21 | echo 'NomeMarca' .$dados->NomeMarca . '
'; 22 | echo 'DescricaoProduto' . $dados->DescricaoProduto . '
'; 23 | echo 'disponibilidade' . $dados->disponibilidadeOpcao . '
'; 24 | echo 'valorPreco' . $dados->valorPreco . '
'; 25 | echo 'DimensaoProdutoAltura' . $dados->DimensaoProdutoAltura . '
'; 26 | echo 'CodigoDeBarras' . $dados->CodigoDeBarras . '
'; 27 | echo 'data' . $dados->data . '
'; 28 | echo 'garantia' . $dados->$garantiaOpcao . '
'; 29 | echo 'tamanho' . $dados->tamanho . '
'; 30 | echo 'conservacao' . $dados->conservacaoOpcao; 31 | echo 'NomeDoFabricante' . $dados->dados->nomeFabricante . '
'; 32 | echo 'EnderecoFabricante' . $dados->enderecoFabricante . '
'; 33 | 34 | echo '-----------------------------
'; 35 | 36 | // 4 - FECHAR O RECURSO, PARA RETIRAR DA MEMÓRIA 37 | fclose($recurso); 38 | } 39 | } -------------------------------------------------------------------------------- /Project/Day45/banco/22334455.json: -------------------------------------------------------------------------------- 1 | ["Alimenticio","test","tessss","tttt","Disponivel","100","5","22334455","2024-05-08","garantia_1_ano","100","embalagem_a_vacuo","rrrrr","ttttt"] -------------------------------------------------------------------------------- /Project/Day45/css/style.css: -------------------------------------------------------------------------------- 1 | /* Estilo para o corpo da página */ 2 | body { 3 | font-family: Arial, sans-serif; /* Define a fonte para o corpo do texto */ 4 | background-color: #f2f2f2; /* Define a cor de fundo */ 5 | margin: 0; /* Remove as margens padrão */ 6 | padding: 0; /* Remove o preenchimento padrão */ 7 | } 8 | 9 | /* Estilo para a seção de formulário */ 10 | section { 11 | max-width: 800px; /* Define a largura máxima da seção */ 12 | margin: 20px auto; /* Centraliza a seção na página */ 13 | padding: 20px; /* Adiciona um preenchimento interno */ 14 | background-color: #fff; /* Define a cor de fundo */ 15 | border-radius: 10px; /* Adiciona cantos arredondados */ 16 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); /* Adiciona sombra */ 17 | } 18 | 19 | /* Estilo para o título do formulário */ 20 | h1 { 21 | text-align: center; /* Centraliza o texto */ 22 | margin-bottom: 20px; /* Adiciona espaço abaixo do título */ 23 | } 24 | 25 | /* Estilo para os títulos das seções do formulário */ 26 | h2 { 27 | margin-top: 30px; /* Adiciona espaço acima do título */ 28 | } 29 | 30 | /* Estilo para os rótulos dos campos de entrada */ 31 | label { 32 | display: block; /* Faz os rótulos aparecerem em uma nova linha */ 33 | margin-top: 10px; /* Adiciona espaço acima dos rótulos */ 34 | } 35 | 36 | /* Estilo para os campos de entrada */ 37 | input[type="text"], 38 | input[type="number"], 39 | input[type="date"], 40 | select, 41 | textarea { 42 | width: 100%; /* Define a largura total */ 43 | padding: 10px; /* Adiciona preenchimento interno */ 44 | margin-top: 5px; /* Adiciona espaço acima dos campos de entrada */ 45 | margin-bottom: 15px; /* Adiciona espaço abaixo dos campos de entrada */ 46 | border: 1px solid #ccc; /* Adiciona uma borda */ 47 | border-radius: 5px; /* Adiciona cantos arredondados */ 48 | box-sizing: border-box; /* Garante que o preenchimento e a borda não aumentem a largura total */ 49 | } 50 | 51 | /* Estilo para os botões */ 52 | button[type="submit"] { 53 | background-color: #007bff; /* Define a cor de fundo */ 54 | color: #fff; /* Define a cor do texto */ 55 | padding: 10px 20px; /* Adiciona preenchimento */ 56 | border: none; /* Remove a borda */ 57 | border-radius: 5px; /* Adiciona cantos arredondados */ 58 | cursor: pointer; /* Muda o cursor para indicar interatividade */ 59 | } 60 | 61 | button[type="submit"]:hover { 62 | background-color: #0056b3; /* Altera a cor de fundo ao passar o mouse */ 63 | } 64 | -------------------------------------------------------------------------------- /Project/Day45/teste.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Contato 7 | 8 | 9 | 10 | 11 | 13 |

Contato

14 | 15 | 17 | 18 | -------------------------------------------------------------------------------- /Project/Day50/footer.php: -------------------------------------------------------------------------------- 1 |

Jennie

-------------------------------------------------------------------------------- /Project/Day50/header.php: -------------------------------------------------------------------------------- 1 |

Home

2 |

Sobre

3 |

Contato

4 |

Produtos

5 | -------------------------------------------------------------------------------- /Project/Day50/index.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Home 7 | 8 | 9 | 10 | 11 | 13 |

Index

14 | 15 | 17 | 18 | -------------------------------------------------------------------------------- /Project/Day50/produtos.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Produtos 7 | 8 | 9 | 10 | 11 | 13 |

Produtos

14 | 15 | 17 | 18 | -------------------------------------------------------------------------------- /Project/Day50/sobre.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Sobre 7 | 8 | 9 | 10 | 11 | 13 |

Sobre

14 | 15 | 17 | 18 | -------------------------------------------------------------------------------- /Project/Day59/index.php: -------------------------------------------------------------------------------- 1 | data = $data; // Armazenando o valor do nó 14 | $this->next = null; // Inicializando o ponteiro para o próximo nó como nulo(é o ultimo nó da lista, já que é o 1°, inicia null pq nao tem outro conectado) 15 | } 16 | } 17 | 18 | //1° //criando a lista encadeada 19 | class LinkedList { 20 | public $head; //Referência para o primeiro nó da lista. 21 | 22 | //2°Construtor __construct() 23 | public function __construct() { //Define o construtor da classe 24 | $this->head = null; // Inicializando a cabeça da lista ligada indicando que foi criada vazia 25 | } 26 | 27 | //3° Método insert 28 | public function insert($data) { //método que insere um novo nó na lista 29 | $newNode = new Node($data); // Criando um novo nó com o valor fornecido 30 | if ($this->head === null) { // Verificando se a lista está vazia 31 | $this->head = $newNode; // Se estiver vazia, o novo nó se torna a cabeça da lista 32 | } else { 33 | 34 | //4°: Insercao de lista nao vazia 35 | $current = $this->head; // Definindo o nó atual como a cabeça da lista 36 | while ($current->next !== null) { // Percorrendo a lista até o último nó 37 | $current = $current->next; // Movendo para o próximo nó na lista 38 | } 39 | $current->next = $newNode; // Inserindo o novo nó no final da lista 40 | } 41 | } 42 | 43 | public function display() { 44 | //display(): Percorre a lista desde a cabeça até o último nó e exibe 45 | $current = $this->head; // Definindo o nó atual como a cabeça da lista 46 | while ($current !== null) { // Percorrendo a lista até encontrar o último nó 47 | echo $current->data . " "; // Exibindo valor do nó atual 48 | $current = $current->next; // Movendo para o próximo nó na lista 49 | } 50 | } 51 | } 52 | 53 | // Exemplo de uso 54 | $list = new LinkedList(); // Cria uma nova lista ligada 55 | $list->insert("Coca 2L"); // Inserindo valores 56 | $list->insert("Torta de Limão"); 57 | $list->insert("Pastel"); 58 | 59 | $list->display(); // Exibe os valores da lista: Coca 2L Torta de Limão Pastel 60 | 61 | -------------------------------------------------------------------------------- /Project/Day60/index.php: -------------------------------------------------------------------------------- 1 | data = $data; 10 | $this->next = null; 11 | } 12 | } 13 | 14 | class LinkedList { 15 | public $head; 16 | 17 | function __construct() { 18 | $this->head = null; 19 | } 20 | 21 | public function insert($data) { 22 | $newNode = new Node($data); 23 | if ($this->head === null) { 24 | $this->head = $newNode; 25 | } else { 26 | $current = $this->head; 27 | while ($current->next !== null) { 28 | $current = $current->next; 29 | } 30 | $current->next = $newNode; 31 | } 32 | } 33 | 34 | public function reverse() { 35 | $prev = null; 36 | $current = $this->head; 37 | 38 | while ($current !== null) { 39 | $next = $current->next; 40 | $current->next = $prev; 41 | $prev = $current; 42 | $current = $next; 43 | } 44 | 45 | $this->head = $prev; 46 | } 47 | 48 | 49 | public function display() { 50 | $current = $this->head; 51 | while ($current !== null) { 52 | echo $current->data . " "; 53 | $current = $current->next; 54 | } 55 | } 56 | } 57 | 58 | // Exemplo de uso 59 | $list = new LinkedList(); 60 | 61 | $list->insert(1); 62 | $list->insert(2); 63 | $list->insert(3); 64 | 65 | 66 | echo "Lista original: "; 67 | $list->display(); 68 | 69 | $list->reverse(); 70 | 71 | echo "\nLista invertida: "; 72 | $list->display(); 73 | -------------------------------------------------------------------------------- /Project/Day61/index.php: -------------------------------------------------------------------------------- 1 | data = $data; 17 | $this->prev = null; 18 | $this->next = null; 19 | } 20 | } 21 | 22 | class DoublyLinkedList { 23 | public $head; 24 | public $tail; 25 | 26 | public function __construct() { 27 | $this->head = null; 28 | $this->tail = null; 29 | } 30 | 31 | public function isEmpty() { 32 | return $this->head == null; 33 | } 34 | 35 | public function insertAtEnd($data) { 36 | $newNode = new Node($data); 37 | if ($this->isEmpty()) { 38 | $this->head = $newNode; 39 | $this->tail = $newNode; 40 | } else { 41 | $newNode->prev = $this->tail; 42 | $this->tail->next = $newNode; 43 | $this->tail = $newNode; 44 | } 45 | } 46 | 47 | public function display() { 48 | $current = $this->head; 49 | while ($current != null) { 50 | echo $current->data . " "; 51 | $current = $current->next; 52 | } 53 | echo "\n"; 54 | } 55 | } 56 | 57 | // Exemplo de uso: 58 | $list = new DoublyLinkedList(); 59 | $list->insertAtEnd(1); 60 | $list->insertAtEnd(2); 61 | $list->insertAtEnd(3); 62 | $list->display(); // Saída: 1 2 3 63 | -------------------------------------------------------------------------------- /Project/Day62/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day62/29.png -------------------------------------------------------------------------------- /Project/Day62/30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day62/30.png -------------------------------------------------------------------------------- /Project/Day62/31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day62/31.png -------------------------------------------------------------------------------- /Project/Day62/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day62/32.png -------------------------------------------------------------------------------- /Project/Day62/33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day62/33.png -------------------------------------------------------------------------------- /Project/Day62/insercao.php: -------------------------------------------------------------------------------- 1 | 2 | data = $data; 10 | $this->next = null; 11 | } 12 | } 13 | 14 | class LinkedList { 15 | public $head; 16 | 17 | public function __construct() { 18 | $this->head = null; 19 | } 20 | 21 | public function insertAtBeginning($data) { 22 | $newNode = new Node($data); 23 | $newNode->next = $this->head; 24 | $this->head = $newNode; 25 | } 26 | 27 | public function insertAtPosition($data, $position) { 28 | $newNode = new Node($data); 29 | $current = $this->head; 30 | $prev = null; 31 | $count = 1; 32 | 33 | while ($current !== null && $count < $position) { 34 | $prev = $current; 35 | $current = $current->next; 36 | $count++; 37 | } 38 | 39 | $newNode->next = $current; 40 | if ($prev !== null) { 41 | $prev->next = $newNode; 42 | } else { 43 | $this->head = $newNode; 44 | } 45 | } 46 | } 47 | 48 | // Exemplo de uso 49 | $list = new LinkedList(); 50 | $list->insertAtBeginning(3); // Insere o valor 3 no início da lista 51 | $list->insertAtPosition(2, 2); // Insere o valor 2 na posição 2 52 | -------------------------------------------------------------------------------- /Project/Day62/linear.php: -------------------------------------------------------------------------------- 1 | 2 | elements = array_fill(0, $capacity, null); 10 | } 11 | 12 | // Função para adicionar um elemento ao final da lista 13 | public function append($element) { 14 | $this->elements[] = $element; 15 | } 16 | 17 | // Função para imprimir os elementos da lista 18 | public function printList() { 19 | foreach ($this->elements as $element) { 20 | echo $element . " "; 21 | } 22 | } 23 | } 24 | 25 | // Exemplo de uso 26 | $list = new SequentialList(5); 27 | $list->append(1); 28 | $list->append(2); 29 | $list->append(3); 30 | $list->printList(); // Saída: 1 2 3 31 | -------------------------------------------------------------------------------- /Project/Day63/index.php: -------------------------------------------------------------------------------- 1 | php_code = """ $valorBuscado) { 25 | $fim = $meio - 1; 26 | } 27 | // Se o valor no meio for menor, ajuste o limite inicial 28 | // para buscar na metade superior. 29 | else { 30 | $inicio = $meio + 1; 31 | } 32 | } 33 | 34 | // Retorna -1 caso o valor não seja encontrado. 35 | return -1; 36 | } 37 | 38 | // Exemplo de uso da busca binária: 39 | $numeros = [2, 5, 8, 12, 16, 23, 38, 45, 56, 72, 91]; 40 | 41 | // Valor a ser buscado: 42 | $valorBuscado = 23; 43 | 44 | // Chama a função de busca binária e armazena o resultado. 45 | $resultado = buscaBinaria($numeros, $valorBuscado); 46 | 47 | // Exibe o resultado da busca. 48 | if ($resultado != -1) { 49 | echo "Valor $valorBuscado encontrado no índice: $resultado\\n"; 50 | } else { 51 | echo "Valor $valorBuscado não encontrado na lista.\\n"; 52 | } 53 | 54 | -------------------------------------------------------------------------------- /Project/Day65/index.php: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | Lista de Tarefas 25 | 26 | 27 | 28 |

Lista de Tarefas

29 |
30 | 31 | 32 |
33 | 34 |

Tarefas:

35 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /Project/Day65/tarefa.php: -------------------------------------------------------------------------------- 1 | tarefa = $tarefa; 12 | $this->proximo = null; 13 | } 14 | } 15 | 16 | // Classe que representa a lista encadeada de tarefas. 17 | class ListaTarefas 18 | { 19 | private $cabeca; 20 | 21 | public function __construct() 22 | { 23 | $this->cabeca = null; 24 | } 25 | 26 | // Adiciona uma tarefa à lista. 27 | public function adicionar($tarefa) 28 | { 29 | $novoNo = new No($tarefa); 30 | if ($this->cabeca == null) { 31 | $this->cabeca = $novoNo; 32 | } else { 33 | $atual = $this->cabeca; 34 | while ($atual->proximo != null) { 35 | $atual = $atual->proximo; 36 | } 37 | $atual->proximo = $novoNo; 38 | } 39 | } 40 | 41 | // Remove uma tarefa pelo seu índice. 42 | public function remover($indice) 43 | { 44 | if ($this->cabeca == null) 45 | return; 46 | 47 | if ($indice == 0) { 48 | $this->cabeca = $this->cabeca->proximo; 49 | return; 50 | } 51 | 52 | $atual = $this->cabeca; 53 | $anterior = null; 54 | $contador = 0; 55 | 56 | while ($atual != null && $contador != $indice) { 57 | $anterior = $atual; 58 | $atual = $atual->proximo; 59 | $contador++; 60 | } 61 | 62 | if ($atual != null) { 63 | $anterior->proximo = $atual->proximo; 64 | } 65 | } 66 | 67 | // Obtém todas as tarefas em forma de array. 68 | public function getAll() 69 | { 70 | $tarefas = []; 71 | $atual = $this->cabeca; 72 | 73 | while ($atual != null) { 74 | $tarefas[] = $atual->tarefa; 75 | $atual = $atual->proximo; 76 | } 77 | 78 | return $tarefas; 79 | } 80 | } 81 | 82 | -------------------------------------------------------------------------------- /Project/Day78-79/index.php: -------------------------------------------------------------------------------- 1 | raca = $raca; // Inicializa a raça 15 | $this->cor = $cor; // Inicializa a cor 16 | $this->idade = $idade; // Inicializa a idade 17 | } 18 | 19 | // Método para exibir as informações do gato. 20 | public function exibirInformacoes() 21 | { 22 | echo "Gato: Raça: {$this->raca}, Cor: {$this->cor}, Idade: {$this->idade} anos\n"; 23 | } 24 | 25 | // Métodos para modificar os atributos (setters) 26 | public function setRaca($raca) 27 | { 28 | $this->raca = $raca; 29 | } 30 | 31 | public function setCor($cor) 32 | { 33 | $this->cor = $cor; 34 | } 35 | 36 | public function setIdade($idade) 37 | { 38 | $this->idade = $idade; 39 | } 40 | 41 | // Métodos para acessar os atributos (getters) 42 | public function getRaca() 43 | { 44 | return $this->raca; 45 | } 46 | 47 | public function getCor() 48 | { 49 | return $this->cor; 50 | } 51 | 52 | public function getIdade() 53 | { 54 | return $this->idade; 55 | } 56 | } 57 | 58 | // Criando objetos (instâncias da classe Gato) 59 | $gato1 = new Gato("Persa", "Branco", 3); 60 | $gato2 = new Gato("Siamês", "Cinza", 2); 61 | 62 | // Exibindo as informações dos gatos 63 | $gato1->exibirInformacoes(); 64 | $gato2->exibirInformacoes(); 65 | 66 | // Modificando as informações do gato1 67 | $gato1->setIdade(4); 68 | $gato1->setCor("Branco com manchas"); 69 | 70 | echo "Informações atualizadas do gato 1:\n"; 71 | $gato1->exibirInformacoes(); 72 | -------------------------------------------------------------------------------- /Project/Day80-81/camiseta.php: -------------------------------------------------------------------------------- 1 | nomeMarca = $nomeMarca; 15 | $this->cor = $cor; 16 | $this->preco = $preco; 17 | echo "Uma camiseta da marca {$this->nomeMarca} foi criada!\n"; 18 | } 19 | 20 | // Método para exibir informações da camiseta 21 | public function exibirInformacoes() 22 | { 23 | echo "Marca: {$this->nomeMarca}, Cor: {$this->cor}, Preço: R$ {$this->preco}\n"; 24 | } 25 | 26 | // Destrutor: chamado quando o objeto é destruído 27 | public function __destruct() 28 | { 29 | echo "A camiseta da marca {$this->nomeMarca} está indo embora...\n"; 30 | } 31 | } 32 | 33 | // Criando objetos (instâncias da classe Camiseta) 34 | $camiseta1 = new Camiseta("Nike", "Preto", 149.99); 35 | $camiseta2 = new Camiseta("Adidas", "Branco", 129.99); 36 | 37 | // Exibindo as informações das camisetas 38 | $camiseta1->exibirInformacoes(); 39 | $camiseta2->exibirInformacoes(); 40 | 41 | 42 | -------------------------------------------------------------------------------- /Project/Day80-81/index.php: -------------------------------------------------------------------------------- 1 | raca = $raca; 16 | $this->cor = $cor; 17 | $this->idade = $idade; 18 | echo "Um gato da raça {$this->raca} foi criado!\n"; 19 | } 20 | 21 | // Método para exibir informações do gato 22 | public function exibirInformacoes() 23 | { 24 | echo "Raça: {$this->raca}, Cor: {$this->cor}, Idade: {$this->idade} anos\n"; 25 | } 26 | 27 | // Destrutor: chamado quando o objeto é destruído 28 | public function __destruct() 29 | { 30 | echo "O gato da raça {$this->raca} está indo embora...\n"; 31 | } 32 | } 33 | 34 | // Criando objetos (instâncias da classe Gato) 35 | $gato1 = new Gato("Persa", "Branco", 3); 36 | $gato2 = new Gato("Siamês", "Cinza", 2); 37 | 38 | // Exibindo as informações dos gatos 39 | $gato1->exibirInformacoes(); 40 | $gato2->exibirInformacoes(); 41 | 42 | // Finalizando o script, os objetos serão destruídos automaticamente 43 | 44 | -------------------------------------------------------------------------------- /Project/Day82/index.php: -------------------------------------------------------------------------------- 1 | marca = $marca; 16 | $this->modelo = $modelo; 17 | $this->cor = $cor; 18 | $this->preco = $preco; 19 | echo "Um carro da marca {$this->marca} modelo {$this->modelo} foi criado!\n"; 20 | } 21 | 22 | // Método para exibir informações do carro 23 | public function exibirInformacoes() 24 | { 25 | echo "Marca: {$this->marca}, Modelo: {$this->modelo}, Cor: {$this->cor}, Preço: R$ {$this->preco}\n"; 26 | } 27 | 28 | // Destrutor: chamado quando o objeto é destruído 29 | public function __destruct() 30 | { 31 | echo "O carro da marca {$this->marca} modelo {$this->modelo} está indo embora...\n"; 32 | } 33 | } 34 | 35 | // Criando objetos (instâncias da classe Carro) 36 | $carro1 = new Carro("Volkswagen", "Gol", "Prata", 49990.00); 37 | $carro2 = new Carro("Ford", "Fiesta", "Preto", 57990.00); 38 | 39 | // Exibindo as informações dos carros 40 | $carro1->exibirInformacoes(); 41 | $carro2->exibirInformacoes(); 42 | 43 | -------------------------------------------------------------------------------- /Project/Day83-84/cadastro_script.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Cadastro 7 | 8 | 9 | 10 |
11 |
12 | 13 | 37 |
38 |
39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /Project/Day83-84/conexao.php: -------------------------------------------------------------------------------- 1 | $texto"; 18 | } 19 | ?> 20 | -------------------------------------------------------------------------------- /Project/Day83-84/index.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Cadastro 7 | 8 | 16 | 17 | 18 |
19 |

Cadastro

20 |
21 |
22 | 23 | 24 |
25 |
26 | 27 | 28 |
29 |
30 | 31 | 32 |
33 |
34 | 35 | 36 |
37 |
38 | 39 | 40 |
41 | 42 |
43 |
44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /Project/Day85/cadastrar.php: -------------------------------------------------------------------------------- 1 | abrirConexao(); 18 | 19 | $stmt = $con->prepare("INSERT INTO usuarios (nome, usuario, senha) VALUES (?, ?, ?)"); 20 | $stmt->execute([$nome, $usuario, password_hash($senha, PASSWORD_DEFAULT)]); 21 | 22 | echo "Cadastro realizado com sucesso!"; 23 | 24 | $conexao->fecharConexao(); 25 | } catch (PDOException $e) { 26 | echo "Erro ao cadastrar: " . $e->getMessage(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Project/Day85/conexao.php: -------------------------------------------------------------------------------- 1 | con = new PDO("mysql:host=$this->servidor;port=$this->porta;dbname=$this->banco", $this->usuario, $this->senha); 15 | $this->con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 16 | echo "Conexão aberta com sucesso"; 17 | } catch (PDOException $e) { 18 | echo "Erro ao acessar o Banco de Dados: " . $e->getMessage(); 19 | } 20 | return $this->con; 21 | } 22 | 23 | public function fecharConexao() 24 | { 25 | $this->con = null; 26 | echo "Conexão finalizada com sucesso"; 27 | } 28 | } 29 | 30 | -------------------------------------------------------------------------------- /Project/Day85/login.php: -------------------------------------------------------------------------------- 1 | abrirConexao(); 11 | 12 | $stmt = $con->prepare("SELECT * FROM usuarios WHERE usuario = ?"); 13 | $stmt->execute([$usuario]); 14 | 15 | $user = $stmt->fetch(PDO::FETCH_ASSOC); 16 | 17 | if ($user && password_verify($senha, $user['senha'])) { 18 | echo "Login bem-sucedido!"; 19 | // Redirecionar para a página inicial do usuário 20 | } else { 21 | echo "Usuário ou senha inválidos!"; 22 | } 23 | 24 | $conexao->fecharConexao(); 25 | } catch (PDOException $e) { 26 | echo "Erro ao realizar login: " . $e->getMessage(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Project/Day85/testarConexao.php: -------------------------------------------------------------------------------- 1 | abrirConexao(); 6 | 7 | // Aguarda por 4 segundos 8 | sleep(4); 9 | 10 | $conexao->fecharConexao(); 11 | 12 | -------------------------------------------------------------------------------- /Project/Day86-90/.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /Project/Day86-90/.htaccess: -------------------------------------------------------------------------------- 1 | RewriteEngine On 2 | 3 | RewriteCond %{REQUEST_FILENAME} !-d 4 | RewriteCond %{REQUEST_FILENAME} !-f 5 | 6 | RewriteRule ^(.*)$ index.php?url=$1 [QSA] 7 | -------------------------------------------------------------------------------- /Project/Day86-90/README.md: -------------------------------------------------------------------------------- 1 | # framework-php-api 2 | Framework PHP para APIs 3 | -------------------------------------------------------------------------------- /Project/Day86-90/core/Core.php: -------------------------------------------------------------------------------- 1 | 'error', 27 | 'message' => 'method não aceito.' 28 | ], 405); 29 | return; 30 | endif; 31 | 32 | [$controller, $action] = explode('@', $route['action']); 33 | 34 | if (!file_exists("./controller/$controller.php")): 35 | Response::json([ 36 | 'status' => 'error', 37 | 'message' => "arquivo [$controller.php] não existe." 38 | ], 500); 39 | return; 40 | endif; 41 | 42 | require_once "./controller/$controller.php"; 43 | 44 | if (!class_exists($controller)) : 45 | Response::json([ 46 | 'status' => 'error', 47 | 'message' => "class [$controller] não existe." 48 | ], 500); 49 | return; 50 | endif; 51 | 52 | $controller = new $controller(); 53 | 54 | if (!method_exists($controller, $action)) { 55 | Response::json([ 56 | 'status' => 'error', 57 | 'message' => "action [$action] não existe." 58 | ], 500); 59 | return; 60 | } 61 | 62 | $controller->$action(new Request, new Response, $matches); 63 | endif; 64 | endforeach; 65 | 66 | if (!$route_existe) : 67 | Response::json([ 68 | 'status' => 'error', 69 | 'message' => 'rota não existe.' 70 | ], 404); 71 | return; 72 | endif; 73 | } 74 | } -------------------------------------------------------------------------------- /Project/Day86-90/core/ExceptionPdo.php: -------------------------------------------------------------------------------- 1 | $path, 11 | 'action' => $action, 12 | 'method' => 'GET' 13 | ]; 14 | } 15 | 16 | public static function post(string $path, string $action) 17 | { 18 | self::$routes[] = [ 19 | 'path' => $path, 20 | 'action' => $action, 21 | 'method' => 'POST' 22 | ]; 23 | } 24 | 25 | public static function put(string $path, string $action) 26 | { 27 | self::$routes[] = [ 28 | 'path' => $path, 29 | 'action' => $action, 30 | 'method' => 'PUT' 31 | ]; 32 | } 33 | 34 | public static function delete(string $path, string $action) 35 | { 36 | self::$routes[] = [ 37 | 'path' => $path, 38 | 'action' => $action, 39 | 'method' => 'DELETE' 40 | ]; 41 | } 42 | 43 | public static function routes() 44 | { 45 | return self::$routes; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Project/Day86-90/core/Request.php: -------------------------------------------------------------------------------- 1 | body(); 10 | 11 | if ( $campos[ 'area' ] == '' ) { 12 | $response::json( [ 'status' => 'Informe area de atuação' ], 406 ); 13 | exit; 14 | 15 | } 16 | 17 | //********* */ 18 | $areaCurso = new AreaCursoModel(); 19 | if(!empty($area)){ 20 | $campos = $areaCursoModel->insert($campos['area']); 21 | 22 | exit; 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /Project/Day91-92/core/Core.php: -------------------------------------------------------------------------------- 1 | 'error', 27 | 'message' => 'method não aceito.' 28 | ], 405); 29 | return; 30 | endif; 31 | 32 | [$controller, $action] = explode('@', $route['action']); 33 | 34 | if (!file_exists("./controller/$controller.php")): 35 | Response::json([ 36 | 'status' => 'error', 37 | 'message' => "arquivo [$controller.php] não existe." 38 | ], 500); 39 | return; 40 | endif; 41 | 42 | require_once "./controller/$controller.php"; 43 | 44 | if (!class_exists($controller)) : 45 | Response::json([ 46 | 'status' => 'error', 47 | 'message' => "class [$controller] não existe." 48 | ], 500); 49 | return; 50 | endif; 51 | 52 | $controller = new $controller(); 53 | 54 | if (!method_exists($controller, $action)) { 55 | Response::json([ 56 | 'status' => 'error', 57 | 'message' => "action [$action] não existe." 58 | ], 500); 59 | return; 60 | } 61 | 62 | $controller->$action(new Request, new Response, $matches); 63 | endif; 64 | endforeach; 65 | 66 | if (!$route_existe) : 67 | Response::json([ 68 | 'status' => 'error', 69 | 'message' => 'rota não existe.' 70 | ], 404); 71 | return; 72 | endif; 73 | } 74 | } -------------------------------------------------------------------------------- /Project/Day91-92/core/ExceptionPdo.php: -------------------------------------------------------------------------------- 1 | $path, 11 | 'action' => $action, 12 | 'method' => 'GET' 13 | ]; 14 | } 15 | 16 | public static function post(string $path, string $action) 17 | { 18 | self::$routes[] = [ 19 | 'path' => $path, 20 | 'action' => $action, 21 | 'method' => 'POST' 22 | ]; 23 | } 24 | 25 | public static function put(string $path, string $action) 26 | { 27 | self::$routes[] = [ 28 | 'path' => $path, 29 | 'action' => $action, 30 | 'method' => 'PUT' 31 | ]; 32 | } 33 | 34 | public static function delete(string $path, string $action) 35 | { 36 | self::$routes[] = [ 37 | 'path' => $path, 38 | 'action' => $action, 39 | 'method' => 'DELETE' 40 | ]; 41 | } 42 | 43 | public static function routes() 44 | { 45 | return self::$routes; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Project/Day91-92/core/Request.php: -------------------------------------------------------------------------------- 1 | 'error', 27 | 'message' => 'method não aceito.' 28 | ], 405); 29 | return; 30 | endif; 31 | 32 | [$controller, $action] = explode('@', $route['action']); 33 | 34 | if (!file_exists("./controller/$controller.php")): 35 | Response::json([ 36 | 'status' => 'error', 37 | 'message' => "arquivo [$controller.php] não existe." 38 | ], 500); 39 | return; 40 | endif; 41 | 42 | require_once "./controller/$controller.php"; 43 | 44 | if (!class_exists($controller)) : 45 | Response::json([ 46 | 'status' => 'error', 47 | 'message' => "class [$controller] não existe." 48 | ], 500); 49 | return; 50 | endif; 51 | 52 | $controller = new $controller(); 53 | 54 | if (!method_exists($controller, $action)) { 55 | Response::json([ 56 | 'status' => 'error', 57 | 'message' => "action [$action] não existe." 58 | ], 500); 59 | return; 60 | } 61 | 62 | $controller->$action(new Request, new Response, $matches); 63 | endif; 64 | endforeach; 65 | 66 | if (!$route_existe) : 67 | Response::json([ 68 | 'status' => 'error', 69 | 'message' => 'rota não existe.' 70 | ], 404); 71 | return; 72 | endif; 73 | } 74 | } -------------------------------------------------------------------------------- /Project/Day93/core/ExceptionPdo.php: -------------------------------------------------------------------------------- 1 | $path, 11 | 'action' => $action, 12 | 'method' => 'GET' 13 | ]; 14 | } 15 | 16 | public static function post(string $path, string $action) 17 | { 18 | self::$routes[] = [ 19 | 'path' => $path, 20 | 'action' => $action, 21 | 'method' => 'POST' 22 | ]; 23 | } 24 | 25 | public static function put(string $path, string $action) 26 | { 27 | self::$routes[] = [ 28 | 'path' => $path, 29 | 'action' => $action, 30 | 'method' => 'PUT' 31 | ]; 32 | } 33 | 34 | public static function delete(string $path, string $action) 35 | { 36 | self::$routes[] = [ 37 | 'path' => $path, 38 | 'action' => $action, 39 | 'method' => 'DELETE' 40 | ]; 41 | } 42 | 43 | public static function routes() 44 | { 45 | return self::$routes; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Project/Day93/core/Request.php: -------------------------------------------------------------------------------- 1 | "; 15 | print_r($cor); 16 | -------------------------------------------------------------------------------- /Project/Day94-100/DSI-ATV/aula/estruturasDeControle.php: -------------------------------------------------------------------------------- 1 | 7){ 13 | echo "Média: " .$media . "
"; 14 | echo "Aprovado"; 15 | }else if($media < 7){ 16 | echo "Média: " .$media . "
"; 17 | echo "Reprovado"; 18 | }else{ 19 | echo "Média: " .$media . "
"; 20 | echo "Recuperção"; 21 | } 22 | 23 | echo "
"; 24 | echo "
"; 25 | 26 | //Estrutura Switch Case 27 | /*. O comando switch testa linha a linha os cases encontrados, e a partir do momento que encontra um 28 | valor igual ao da variável testada, passa a executar todos os comandos seguintes, mesmo os que 29 | fazem parte de outro teste, até o fim do bloco. 30 | Por isso usa-se o comando break, quebrando o fluxo e fazendo com que o código seja 31 | executado da maneira desejada. Veremos mais sobre o break mais adiante 32 | */ 33 | 34 | $i = 0; 35 | 36 | switch ($i){ 37 | case 0: 38 | print "i = 0"; 39 | break; 40 | case 1: 41 | print "i = 1"; 42 | break; 43 | case 2: 44 | print "i = 2"; 45 | break; 46 | } -------------------------------------------------------------------------------- /Project/Day94-100/DSI-ATV/aula/estruturasDeRepeticao.php: -------------------------------------------------------------------------------- 1 | "; 18 | } 19 | 20 | 21 | print "
"; 22 | print "
"; 23 | 24 | $a= 1; 25 | do { 26 | echo $a++; 27 | echo "
"; 28 | }while($a <=5); 29 | 30 | 31 | print "
"; 32 | print "
"; 33 | /* For 34 | 35 | As três expressões que ficam entre parênteses têm as seguintes finalidades: 36 | ** Inicialização: comando ou seqüência de comandos a serem realizados antes do inicio 37 | do laço. Serve para inicializar variáveis. 38 | *** Condição: Expressão booleana que define se os comandos que estão dentro do laço 39 | serão executados ou não. Enquanto a expressão for verdadeira (valor diferente de zero) os 40 | comandos serão executados. 41 | ****Incremento: Comando executado ao final de cada execução do laço. 42 | 43 | */ 44 | 45 | for($b = 1; $b < 7; $b++){ 46 | echo "o valor de B é: ". $b; 47 | echo "
"; 48 | } 49 | 50 | 51 | print "
"; 52 | print "
"; 53 | 54 | /* Foreach 55 | O FOREACH tem o mesmo funcionamento do FOR, porém, ele não precisa de contador. 56 | Ou seja, você vai correr o laço sabendo em que posição está 57 | */ 58 | 59 | $frutas = array('maçã', 'banana', 'manga'); 60 | foreach($frutas as $fruta) 61 | { 62 | echo " A ruta é: ". $fruta . "
"; 63 | } -------------------------------------------------------------------------------- /Project/Day94-100/DSI-ATV/aula/hello.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Fatec São Roque - Hello World 7 | 8 | 9 | "; 13 | echo "Aulas DSI"; 14 | 15 | //comentários 16 | //echo "teste"; 17 | ?> 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /Project/Day94-100/DSI-ATV/aula/operadores.txt: -------------------------------------------------------------------------------- 1 | 2 | + adição - subtração 3 | * multiplicação 4 | / divisão 5 | % módulo 6 | 7 | Operadores de Strings 8 | concatenação 9 | 10 | Operadores de atribuição 11 | = atribuição simples 12 | += atribuição com adição -= atribuição com subtração 13 | *= atribuição com multiplicação 14 | /= atribuição com divisão 15 | %= atribuição com módulo 16 | .= atribuição com concatenação 17 | 18 | 19 | Operadores Lógicos 20 | and “e” lógico 21 | or “ou” lógico 22 | xor ou exclusivo 23 | ! não (inversão) 24 | && “e” lógico 25 | || “ou” lógico 26 | 27 | 28 | Operadores de Comparação 29 | == igual a 30 | === igual (conteúdo) e também (tipo de dado); 31 | != diferente de 32 | < menor que 33 | > maior que 34 | <= menor ou igual a 35 | >= maior ou igual a 36 | 37 | 38 | Operadores de incremento e decremento 39 | ++ incremento 40 | -- decremento 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /Project/Day94-100/DSI-ATV/aula/soma.php: -------------------------------------------------------------------------------- 1 | "); 8 | //imprimindo soma com echo 9 | echo ("A soma é: ". $soma. "

"); -------------------------------------------------------------------------------- /Project/Day94-100/DSI-ATV/aula/tiposSuportados.php: -------------------------------------------------------------------------------- 1 | "; 16 | 17 | $vivas = "1" ; //atribuindo a string 1 a variavl 18 | $vivas = $vivas + 1; //int 2 = resulatdo da soma da varaivel com o inteiro 1 19 | $vivas = $vivas + 3.7; //double 5,7 pois somou dnv 20 | $vivas = 1 + 1.5; //double 2.5 21 | 22 | echo "valor = $vivas"; 23 | 24 | //laço de repetição 25 | 26 | 27 | -------------------------------------------------------------------------------- /Project/Day94-100/DSI-ATV/aula/transformacoes.php: -------------------------------------------------------------------------------- 1 | "; 28 | 29 | $vivas = "15"; //$ vivas =int 15 30 | $vivas = (double)$vivas; //$vivas = double 15.0 31 | $vivas = 3.9; //$vivas = double 3.9 32 | $vivas = (int)$vivas; //$vivas = int 3 33 | //valor decimal é truncado 34 | echo "O valor é: $vivas
"; 35 | 36 | /* Com a função settype 37 | A função settype converte uma variável para o tipo especificado, que pode ser “integer”, 38 | “double”, “string”,“array” ou “object”. 39 | Sintaxe: 40 | Settype(nomedavariável,novo tipo da variável) 41 | */ 42 | // Definindo a variável como um inteiro 43 | $vivas = 15; // Inicialmente, $vivas é um inteiro com valor 15. 44 | settype($vivas, "double"); // Converte $vivas para o tipo double (float). 45 | echo "O valor é: $vivas
"; // Exibe o valor de $vivas (que agora é 15.0) 46 | 47 | // Definindo novamente a variável como um inteiro 48 | $vivas = 15; // Inicialmente, $vivas é um inteiro com valor 15. 49 | settype($vivas, "string"); // Converte $vivas para o tipo string. 50 | echo "O valor é: $vivas
"; // Exibe o valor de $vivas (que agora é "15") 51 | -------------------------------------------------------------------------------- /Project/Day94-100/DSI-ATV/exercicio/exercicio1.php: -------------------------------------------------------------------------------- 1 | 0) { 16 | echo "Valor Positivo"; 17 | } elseif ($numero < 0) { 18 | echo "Valor Negativo"; 19 | } else { 20 | echo "Igual a Zero"; 21 | } 22 | 23 | 24 | -------------------------------------------------------------------------------- /Project/Day94-100/DSI-ATV/exercicio/exercicio10.php: -------------------------------------------------------------------------------- 1 | $valor2) { 27 | for ($i = $valor2 + 1; $i < $valor1; $i++) { 28 | echo $i . " "; 29 | } 30 | } else { 31 | echo "Os dois valores são iguais"; 32 | } 33 | -------------------------------------------------------------------------------- /Project/Day94-100/DSI-ATV/exercicio/exercicio11.php: -------------------------------------------------------------------------------- 1 | ". $B ; 16 | } 17 | // Se B é menor que A, imprime B e depois A 18 | else { 19 | echo $B . "
" . $A ; 20 | } 21 | 22 | -------------------------------------------------------------------------------- /Project/Day94-100/DSI-ATV/exercicio/exercicio3.php: -------------------------------------------------------------------------------- 1 | = 6 ){ 26 | echo "Aprovado, sua média é: " . number_format($media, 2, ',', '.'); 27 | }else { 28 | echo "Reprovado, sua média é: " . number_format($media, 2, ',', '.'); 29 | } 30 | 31 | -------------------------------------------------------------------------------- /Project/Day94-100/DSI-ATV/exercicio/exercicio4.php: -------------------------------------------------------------------------------- 1 | 'Janeiro', 13 | 2 => "Fevereiro", 14 | 3 => "Março", 15 | 4 => "Abril", 16 | 5 => "Maio", 17 | 6 => "Junho", 18 | 7 => "Julho", 19 | 8 => "Agosto", 20 | 9 => "Setembro", 21 | 10 => "Outubro", 22 | 11 => "Novembro", 23 | 12 => "Dezembro" 24 | ); 25 | 26 | //Usando array_key_exists() para verificar se a chave $n existe no array $meses 27 | if (array_key_exists($n, $meses)) { 28 | echo "Mês: " . $meses[$n] ; 29 | } else { 30 | echo "Não existe mês com este número"; 31 | } -------------------------------------------------------------------------------- /Project/Day94-100/DSI-ATV/exercicio/exercicio5.php: -------------------------------------------------------------------------------- 1 | 300): 22 | //Acima de 300: 30% de reajuste 23 | $reajuste = 0.30; 24 | break; 25 | } 26 | 27 | //Calculando o valor do reajuste e o salário reajustado 28 | $valorReajuste = $salario * $reajuste; 29 | $salarioReajustado = $salario + $valorReajuste; 30 | 31 | //Exibindo o salário reajustado e formatando as casas decimais para 2 depois da vírgula 32 | echo "Salário original: R$ " . number_format($salario, 2, ',', '.'); 33 | echo "Reajuste: R$ " . number_format($valorReajuste, 2, ',', '.'); 34 | echo "Salário reajustado: R$ " . number_format($salarioReajustado, 2, ',', '.'); 35 | -------------------------------------------------------------------------------- /Project/Day94-100/DSI-ATV/exercicio/exercicio8.php: -------------------------------------------------------------------------------- 1 | 1; $i--) { //O fatorial calcula do n° digitado até 1, se o n° é maior que 1, decremente até chegar em 1 19 | $fatorial *= $i; //Multiplica o valor atual de fatorial pelo valor de $i 20 | } 21 | // Exibir o resultado 22 | echo "O fatorial de $numero é: $fatorial"; 23 | -------------------------------------------------------------------------------- /Project/Day94-100/anotacao/jwt.txt: -------------------------------------------------------------------------------- 1 | JSON Web Token 2 | -leve e consome menos recurso 3 | Possui tres partes e sempre tem 2 pontos . 4 | antes do ponto: header(cabeçalho) 5 | no primeiro ponto: payload(conteudo) 6 | depois do segundo ponto: signature(assinatura) 7 | 8 | header: 9 | obrigatoriamente possui a chave alg 10 | "alg":"HS256", 11 | que tipo de algoritmo foi usado para assinatura 12 | campo opcional: "typ": "JWT"//tipo 13 | 14 | payload: 15 | informacoes para deixar guardada como quando vai expirar 16 | ex: 17 | { 18 | "user": "usuario", 19 | //iat: data e hora em que foi gerado 20 | //exp: espira em 21 | } 22 | 23 | signature: 24 | gera um hash a partir das duas informações acima 25 | 26 | *o algoritmo é obrigatorio porem seu tipo muda de acordo com a linguagem utilizada 27 | **algoritmos smpre com letra maiuscula 28 | *typ sempre JWT 29 | 30 | ler: 31 | https://www.totvs.com/blog/gestao-para-assinatura-de-documentos/jwt-token/ -------------------------------------------------------------------------------- /Project/Day94-100/api-soa/.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /Project/Day94-100/api-soa/.htaccess: -------------------------------------------------------------------------------- 1 | RewriteEngine On 2 | 3 | RewriteCond %{REQUEST_FILENAME} !-d 4 | RewriteCond %{REQUEST_FILENAME} !-f 5 | 6 | RewriteRule ^(.*)$ index.php?url=$1 [QSA] 7 | -------------------------------------------------------------------------------- /Project/Day94-100/api-soa/README.md: -------------------------------------------------------------------------------- 1 | # framework-php-api 2 | Framework PHP para APIs 3 | -------------------------------------------------------------------------------- /Project/Day94-100/api-soa/controller/CategoriaController.php: -------------------------------------------------------------------------------- 1 | 'sucesso'], 200); 9 | } 10 | 11 | public function findAll(Request $request, Response $response, array $url) 12 | { 13 | $categoriaModel = new CategoriaModel(); 14 | $response::json(['dados' => $categoriaModel->selectAll()], 200); 15 | } 16 | 17 | public function adicionarCategoria(Request $request, Response $response, array $url) 18 | { 19 | $campos = $request->body();//primeiro passo: receber dados<<<<<<<<<<<<<<<<<< 20 | 21 | if ($campos['descricao'] == ''){ 22 | $response::json(['status' => 'Informe a descricao do produto'], 406); 23 | exit;//tudo quee tiver abaixo nao sera executado 24 | } 25 | 26 | if ($campos['cod'] == ''){ 27 | $response::json(['status' => 'Informe o Codigo do produto'], 406); 28 | exit;//tudo quee tiver abaixo nao sera executado 29 | } 30 | 31 | 32 | 33 | if ($campos['categoria'] == ''){//categoria vazia? 34 | $response::json(['status' => 'Informe o categoria do produto'], 406); 35 | exit;//tudo que tiver abaixo nao sera executado 36 | }else if(!is_numeric($campos['categoria'])){ 37 | $response::json(['status' => 'A categoria deve ser um numero inteiro'], 406); 38 | exit; 39 | } 40 | } 41 | 42 | 43 | } -------------------------------------------------------------------------------- /Project/Day94-100/api-soa/core/Core.php: -------------------------------------------------------------------------------- 1 | 'error', 27 | 'message' => 'method não aceito.' 28 | ], 405); 29 | return; 30 | endif; 31 | 32 | [$controller, $action] = explode('@', $route['action']); 33 | 34 | if (!file_exists("./controller/$controller.php")): 35 | Response::json([ 36 | 'status' => 'error', 37 | 'message' => "arquivo [$controller.php] não existe." 38 | ], 500); 39 | return; 40 | endif; 41 | 42 | require_once "./controller/$controller.php"; 43 | 44 | if (!class_exists($controller)) : 45 | Response::json([ 46 | 'status' => 'error', 47 | 'message' => "class [$controller] não existe." 48 | ], 500); 49 | return; 50 | endif; 51 | 52 | $controller = new $controller(); 53 | 54 | if (!method_exists($controller, $action)) { 55 | Response::json([ 56 | 'status' => 'error', 57 | 'message' => "action [$action] não existe." 58 | ], 500); 59 | return; 60 | } 61 | 62 | $controller->$action(new Request, new Response, $matches); 63 | endif; 64 | endforeach; 65 | 66 | if (!$route_existe) : 67 | Response::json([ 68 | 'status' => 'error', 69 | 'message' => 'rota não existe.' 70 | ], 404); 71 | return; 72 | endif; 73 | } 74 | } -------------------------------------------------------------------------------- /Project/Day94-100/api-soa/core/ExceptionPdo.php: -------------------------------------------------------------------------------- 1 | $path, 11 | 'action' => $action, 12 | 'method' => 'GET' 13 | ]; 14 | } 15 | 16 | public static function post(string $path, string $action) 17 | { 18 | self::$routes[] = [ 19 | 'path' => $path, 20 | 'action' => $action, 21 | 'method' => 'POST' 22 | ]; 23 | } 24 | 25 | public static function put(string $path, string $action) 26 | { 27 | self::$routes[] = [ 28 | 'path' => $path, 29 | 'action' => $action, 30 | 'method' => 'PUT' 31 | ]; 32 | } 33 | 34 | public static function delete(string $path, string $action) 35 | { 36 | self::$routes[] = [ 37 | 'path' => $path, 38 | 'action' => $action, 39 | 'method' => 'DELETE' 40 | ]; 41 | } 42 | 43 | public static function routes() 44 | { 45 | return self::$routes; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Project/Day94-100/api-soa/core/Request.php: -------------------------------------------------------------------------------- 1 | prepare("SELECT * FROM categoria ORDER BY id"); 9 | $stmt->execute(); 10 | return $stmt->fetchAll(PDO::FETCH_OBJ); 11 | }catch (\PDOException $e){ 12 | throw new \Exception(ExceptionPdo::translateError($e->getMessage())); 13 | }catch (\PDOException $e){ 14 | throw new \Exception($e->getMessage()); 15 | } 16 | } 17 | 18 | public funtion selectId($id){ 19 | try{ 20 | $pdo = Conexao::getInstance(); 21 | $stmt = $pdo->prepare("SELECT * FROM categoria WHERE id = :id"); 22 | $stmt->execute(); 23 | return $stmt -> fetch(PDO::FETCH_OBJ); 24 | }catch (\PDOException $e){ 25 | throw new \Exception(ExceptionPdo::translateError($e->getMessage())); 26 | }catch (\PDOException $e){ 27 | throw new \Exception($e->getMessage()); 28 | 29 | } 30 | } 31 | 32 | public function selectDescricao($descricao){ 33 | try { 34 | $pdo = Conexao::getInstance(); 35 | $stmt = $pdo->prepare('SELECT * FROM categoria where descricao = ?'); 36 | $stmt->execute([$descricao]); 37 | 38 | return $stmt -> fetchAll(PDO::FETCH_OBJ); 39 | }catch (\PDOException $e){ 40 | throw new \Exception(ExceptionPdo::translateError($e->getMessage())); 41 | }catch (\PDOException $e){ 42 | throw new \Exception($e->getMessage()); 43 | } 44 | 45 | } 46 | } -------------------------------------------------------------------------------- /Project/Day94-100/apisoa/.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /Project/Day94-100/apisoa/.htaccess: -------------------------------------------------------------------------------- 1 | RewriteEngine On 2 | 3 | RewriteCond %{REQUEST_FILENAME} !-d 4 | RewriteCond %{REQUEST_FILENAME} !-f 5 | 6 | RewriteRule ^(.*)$ index.php?url=$1 [QSA] 7 | -------------------------------------------------------------------------------- /Project/Day94-100/apisoa/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Editor-based HTTP Client requests 5 | /httpRequests/ 6 | # Datasource local storage ignored files 7 | /dataSources/ 8 | /dataSources.local.xml 9 | -------------------------------------------------------------------------------- /Project/Day94-100/apisoa/.idea/apisoa.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Project/Day94-100/apisoa/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Project/Day94-100/apisoa/.idea/php.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 9 | 10 | 13 | 14 | 16 | 17 | 19 | 20 | 22 | -------------------------------------------------------------------------------- /Project/Day94-100/apisoa/.vs/ProjectSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "CurrentProjectSetting": null 3 | } -------------------------------------------------------------------------------- /Project/Day94-100/apisoa/.vs/VSWorkspaceState.json: -------------------------------------------------------------------------------- 1 | { 2 | "ExpandedNodes": [ 3 | "" 4 | ], 5 | "PreviewInSolutionExplorer": false 6 | } -------------------------------------------------------------------------------- /Project/Day94-100/apisoa/.vs/apisoa/v17/.wsuo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day94-100/apisoa/.vs/apisoa/v17/.wsuo -------------------------------------------------------------------------------- /Project/Day94-100/apisoa/.vs/slnx.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day94-100/apisoa/.vs/slnx.sqlite -------------------------------------------------------------------------------- /Project/Day94-100/apisoa/README.md: -------------------------------------------------------------------------------- 1 | # framework-php-api 2 | Framework PHP para APIs 3 | -------------------------------------------------------------------------------- /Project/Day94-100/apisoa/controller/CelularController.php: -------------------------------------------------------------------------------- 1 | body(); 16 | 17 | //ve se nao esta vazio 18 | 19 | if($campos['modelo'] == ''){ 20 | 21 | $response::json(['status'=>'Informe o modelo do celular !'],406); 22 | exit; 23 | 24 | } 25 | 26 | if($campos['fabricante'] == ''){ 27 | 28 | $response::json(['status'=>'Informe o fabricante do celular !'],406); 29 | exit; 30 | 31 | } 32 | 33 | //busca se já tem o fab cadastrado e guarda em $fabricante 34 | 35 | $fabricanteModel = new FabricantesModel(); 36 | $fabricante = $fabricanteModel->selectDescricao($campos['fabricante']); 37 | 38 | //se tem resultado em $fabricante 39 | if($fabricante){ 40 | 41 | //seta o campo id_fabricante com o id guardado na variável $fabricante 42 | $campos['id_fabricante'] = $fabricante->id; 43 | 44 | }else{ 45 | 46 | //Se não 47 | //insere o valor vindo em campos 48 | $fabricante = $fabricanteModel->insert($campos); 49 | 50 | if($fabricante){ 51 | 52 | //Busca o campo cadastrado 53 | $fabricante = $fabricanteModel->selectDescricao($campos['fabricante']); 54 | 55 | $campos['id_fabricante'] = $fabricante->id; 56 | 57 | }else{ 58 | 59 | $response::json(['status'=>'O novo fabricante não foi possível ser cadastrado !'],406); 60 | exit; 61 | 62 | } 63 | 64 | } 65 | 66 | $celularModel = new CelularModel(); 67 | $insert = $celularModel->insert($campos); 68 | 69 | if($insert){ 70 | 71 | $response::json(['status'=>'Cadastrado com sucesso !'],406); 72 | exit; 73 | 74 | }else{ 75 | 76 | $response::json(['Falha ao cadastrar !'],406); 77 | exit; 78 | 79 | } 80 | 81 | } 82 | 83 | 84 | 85 | 86 | } -------------------------------------------------------------------------------- /Project/Day94-100/apisoa/core/ExceptionPdo.php: -------------------------------------------------------------------------------- 1 | $path, 11 | 'action' => $action, 12 | 'method' => 'GET' 13 | ]; 14 | } 15 | 16 | public static function post(string $path, string $action) 17 | { 18 | self::$routes[] = [ 19 | 'path' => $path, 20 | 'action' => $action, 21 | 'method' => 'POST' 22 | ]; 23 | } 24 | 25 | public static function put(string $path, string $action) 26 | { 27 | self::$routes[] = [ 28 | 'path' => $path, 29 | 'action' => $action, 30 | 'method' => 'PUT' 31 | ]; 32 | } 33 | 34 | public static function delete(string $path, string $action) 35 | { 36 | self::$routes[] = [ 37 | 'path' => $path, 38 | 'action' => $action, 39 | 'method' => 'DELETE' 40 | ]; 41 | } 42 | 43 | public static function routes() 44 | { 45 | return self::$routes; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Project/Day94-100/apisoa/core/Request.php: -------------------------------------------------------------------------------- 1 | prepare($sqlInsert); 17 | $stm->execute([$dados['id_fabricante'],$dados['modelo']]); 18 | $retorno = ($stm-> rowCount() > 0); 19 | 20 | return $retorno; 21 | 22 | }catch(\PDOException $e){ 23 | 24 | throw new \Exception(ExceptionPdo::translateError($e->getMessage())); 25 | 26 | }catch(\Exception $e){ 27 | 28 | throw new \Exception($e->getMessage()); 29 | } 30 | 31 | 32 | } 33 | 34 | 35 | 36 | 37 | 38 | 39 | } -------------------------------------------------------------------------------- /Project/Day94-100/apisoa/model/EstadoModel.php: -------------------------------------------------------------------------------- 1 | prepare('SELECT * FROM uf WHERE descricao = ?'); //seleciona todas as colunas de uf onde estado = ao valor recebido 11 | $stmt->execute([$descricao]); 12 | return $stmt->fetch(PDO::FETCH_OBJ); 13 | 14 | } catch (\PDOException $e) { 15 | throw new \Exception('Erro no PDO: ' . $e->getMessage()); 16 | } 17 | } 18 | 19 | public function insertUf($descricao) { //o nosso campo no insomnia se chama descrição ou o campo no banco ? 20 | try { 21 | $pdo = Conexao::getInstance(); 22 | //insere na tabela uf na coluna de estado o valor que será recebido 23 | $stmt = $pdo->prepare('INSERT INTO uf (descricao) VALUES (?)'); 24 | $stmt->execute([$descricao]); 25 | return $pdo->lastInsertId(); 26 | 27 | } catch (\PDOException $e) { 28 | throw new \Exception('Erro no PDO: ' . $e->getMessage()); 29 | } 30 | } 31 | 32 | 33 | } -------------------------------------------------------------------------------- /Project/Day94-100/apisoa/model/PerfilModel.php: -------------------------------------------------------------------------------- 1 | prepare("SELECT * FROM perfil WHERE descricao = ?"); 16 | $stmt->execute(["$descricao"]); 17 | 18 | return $stmt->fetch(PDO::FETCH_OBJ); 19 | 20 | 21 | }catch(\PDOException $e){ 22 | 23 | throw new \Exception(ExceptionPdo::translateError($e->getMessage())); 24 | 25 | }catch(\Exception $e){ 26 | 27 | throw new \Exception($e->getMessage()); 28 | } 29 | 30 | } 31 | 32 | 33 | public function insert( array $dados){ 34 | 35 | try{ 36 | 37 | $pdo = Conexao::getInstance(); 38 | 39 | $sqlInsert = 'INSERT INTO perfil(descricao)'; 40 | $sqlInsert .= 'VALUES (?)'; 41 | $stm = $pdo->prepare($sqlInsert); 42 | $stm->execute([$dados['perfil_descricao']]); 43 | $retorno = ($stm-> rowCount() > 0); 44 | 45 | return $retorno; 46 | 47 | }catch(\PDOException $e){ 48 | 49 | throw new \Exception(ExceptionPdo::translateError($e->getMessage())); 50 | 51 | }catch(\Exception $e){ 52 | 53 | throw new \Exception($e->getMessage()); 54 | } 55 | 56 | 57 | } 58 | } -------------------------------------------------------------------------------- /Project/Day94-100/apisoa/service/JwtService.php: -------------------------------------------------------------------------------- 1 | 'HS256', 14 | 'typ'=>'JWT' 15 | ]); 16 | //3-Criar o PAYLOAD (corpo do token), com as minhas informações 17 | $payload = json_encode([ 18 | 'id_usuario'=>23, 19 | 'usuario'=>'ADMIN', 20 | 'iat'=>time(), 21 | 'exp'=>time()+3600, //quando o tokem vai expirar 22 | ]); 23 | //4- Tratar caracteres que causam problema 24 | //+,/,= 25 | $base64Header=base64_encode($header); 26 | $base64Payload=base64_encode($payload); 27 | 28 | $base64Header = JwtService::replaceCaracteresParaGerarJwt($base64Header); 29 | $base64Payload = JwtService::replaceCaracteresParaGerarJwt($base64Payload); 30 | 31 | //5- Assinar a String (header + payload) usando a função HMAC SHA256 32 | $assinatura=hash_hmac('SHA256',"$base64Header.$base64Payload",CHAVE_PRIVADA, true); 33 | $base64Assinatura=base64_encode($assinatura); 34 | $base64Assinatura= JWTService::replaceCaracteresParaGerarJwt($base64Assinatura); 35 | 36 | //6- Retornar o token para quem pediu 37 | return "$base64Header.$base64Payload.$base64Assinatura"; 38 | 39 | 40 | } 41 | 42 | private static function replaceCaracteresParaGerarJwt($dados){ 43 | return str_replace(['+','/','='],['-','_',''],$dados); 44 | 45 | } 46 | } -------------------------------------------------------------------------------- /Project/Day95/Anotações PHP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JennieOliveira99/100DaysOfCodePHP/a74d42d200c9c27d6317779caf61fdb1f1c14c86/Project/Day95/Anotações PHP.png -------------------------------------------------------------------------------- /Project/IntroductionDay01/index.php: -------------------------------------------------------------------------------- 1 | "João", 32 | "idade" => 30, 33 | "cidade" => "São Paulo" 34 | ); 35 | 36 | echo $dadosPessoa["nome"]; // Saída: João 37 | echo $dadosPessoa["idade"]; // Saída: 30 38 | echo $dadosPessoa["cidade"]; // Saída: São Paulo 39 | 40 | //Printf 41 | printf("Olá, meu nome é %s e eu tenho %d anos.", $nome, $idade); 42 | 43 | -------------------------------------------------------------------------------- /Project/README.md: -------------------------------------------------------------------------------- 1 | 2 | --------------------------------------------------------------------------------