├── 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 |
7 | {% for user in users %}
8 | {{ user.name }}
9 | {% endfor %}
10 |
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 "" . $i . "x" . $j . "=" . ($i * $j) . " ";
39 | }
40 |
41 | echo " ";
42 | }
43 | echo "
";
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 |
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 | ##    
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 |
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 |
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 | codigo
19 | nome
20 | ver
21 |
22 |
23 |
24 |
25 | 2
26 | Coca cola
27 | detalhes/a>
28 |
29 |
30 | 3
31 | fanta
32 | detalhes/a>
33 |
34 |
35 |
--------------------------------------------------------------------------------
/Project/Day35/produto.php:
--------------------------------------------------------------------------------
1 | Status: = $status ?> -->
7 | */
8 |
9 | $arquivo = $_GET['arquivo'];
10 | ?>
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | Document
19 |
20 |
21 |
22 | nome arquivo json: = $arquivo ?>
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 |
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 | ##    
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 |
33 |
34 | Tarefas:
35 |
36 | getAll() as $id => $tarefa): ?>
37 |
38 |
39 |
43 |
44 |
45 |
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 |
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 |
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 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
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 |
--------------------------------------------------------------------------------