Compare commits
15 Commits
886e27cb41
...
40a958f6db
| Author | SHA1 | Date | |
|---|---|---|---|
| 40a958f6db | |||
| d2b15ee500 | |||
| d50e3eb070 | |||
| 9d0f175f00 | |||
| f5ad50dac5 | |||
| 398efda11e | |||
| 6e0f6b2753 | |||
| 2afdbe8f50 | |||
| 05124a0092 | |||
| 2e9fbe5361 | |||
| 4467b3ec30 | |||
| b5c4f500bf | |||
| f3ba84eb4b | |||
| 3f3ea89dc4 | |||
| 98e544176c |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -0,0 +1,2 @@
|
|||||||
|
.env
|
||||||
|
.vscode/*
|
||||||
14
.htaccess
14
.htaccess
@@ -1,9 +1,19 @@
|
|||||||
RewriteEngine On
|
RewriteEngine On
|
||||||
|
|
||||||
# Impede que acessem pastas confidenciais (opcional, dependendo da estrutura)
|
# 1. Define a página de erro 404 personalizada na nova pasta
|
||||||
|
ErrorDocument 404 /public/notfound.php
|
||||||
|
|
||||||
|
# 2. Protege pastas de sistema, mas permite acesso à pasta public
|
||||||
|
# Bloqueia src, config e vendor
|
||||||
RewriteRule ^(src|config|vendor)/ - [F,L]
|
RewriteRule ^(src|config|vendor)/ - [F,L]
|
||||||
|
|
||||||
# Se o arquivo ou diretório não existir fisicamente, manda para o index.php
|
# 3. Regra do Roteador (Front Controller)
|
||||||
|
# Se o arquivo ou diretório solicitado não existir fisicamente...
|
||||||
RewriteCond %{REQUEST_FILENAME} !-f
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
RewriteCond %{REQUEST_FILENAME} !-d
|
RewriteCond %{REQUEST_FILENAME} !-d
|
||||||
|
|
||||||
|
# ...E não for a própria página de erro (para evitar loops)
|
||||||
|
RewriteCond %{REQUEST_URI} !^/public/notfound.php
|
||||||
|
|
||||||
|
# Envia a requisição para o index.php
|
||||||
RewriteRule ^(.*)$ index.php [QSA,L]
|
RewriteRule ^(.*)$ index.php [QSA,L]
|
||||||
48
.vscode/launch.json
vendored
Normal file
48
.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
{
|
||||||
|
// Use IntelliSense to learn about possible attributes.
|
||||||
|
// Hover to view descriptions of existing attributes.
|
||||||
|
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Listen for Xdebug",
|
||||||
|
"type": "php",
|
||||||
|
"request": "launch",
|
||||||
|
"port": 9003
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Launch currently open script",
|
||||||
|
"type": "php",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "${file}",
|
||||||
|
"cwd": "${fileDirname}",
|
||||||
|
"port": 0,
|
||||||
|
"runtimeArgs": [
|
||||||
|
"-dxdebug.start_with_request=yes"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"XDEBUG_MODE": "debug,develop",
|
||||||
|
"XDEBUG_CONFIG": "client_port=${port}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Launch Built-in web server",
|
||||||
|
"type": "php",
|
||||||
|
"request": "launch",
|
||||||
|
"runtimeArgs": [
|
||||||
|
"-dxdebug.mode=debug",
|
||||||
|
"-dxdebug.start_with_request=yes",
|
||||||
|
"-S",
|
||||||
|
"localhost:0"
|
||||||
|
],
|
||||||
|
"program": "",
|
||||||
|
"cwd": "${workspaceRoot}",
|
||||||
|
"port": 9003,
|
||||||
|
"serverReadyAction": {
|
||||||
|
"pattern": "Development Server \\(http://localhost:([0-9]+)\\) started",
|
||||||
|
"uriFormat": "http://localhost:%s",
|
||||||
|
"action": "openExternally"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
7
env.example
Normal file
7
env.example
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# Banco de Dados:
|
||||||
|
DB_HOST_INTERNAL=enredero_interno_do_servidor_db
|
||||||
|
DB_HOST_EXTERNAL=enredero_interno_do_servidor_db
|
||||||
|
DB_PORT=porta
|
||||||
|
DB_NAME=nome_do_banco
|
||||||
|
DB_USER=_usuario_do_banco
|
||||||
|
DB_PASS=senha_do_banco
|
||||||
77
exemplos/bootstrap.php
Normal file
77
exemplos/bootstrap.php
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="pt-br">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Protótipo de Interface - Reserva de Hotéis</title>
|
||||||
|
|
||||||
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB" crossorigin="anonymous">
|
||||||
|
</head>
|
||||||
|
<body class="bg-light">
|
||||||
|
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-dark bg-primary shadow-sm">
|
||||||
|
<div class="container">
|
||||||
|
<a class="navbar-brand" href="#">HotelReserve</a>
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarNav">
|
||||||
|
<ul class="navbar-nav ms-auto">
|
||||||
|
<li class="nav-item"><a class="nav-link active" href="#">Busca</a></li>
|
||||||
|
<li class="nav-item"><a class="nav-link" href="#">Minhas Reservas</a></li>
|
||||||
|
<li class="nav-item"><a class="nav-link" href="#">Perfil</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<main class="container my-5">
|
||||||
|
<section class="card border-0 shadow-sm p-4 mb-4">
|
||||||
|
<h2 class="h4 mb-3">Encontre sua próxima estadia</h2>
|
||||||
|
<form class="row g-3">
|
||||||
|
<div class="col-md-4">
|
||||||
|
<label class="form-label">Destino</label>
|
||||||
|
<input type="text" class="form-control" placeholder="Cidade ou Hotel">
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<label class="form-label">Check-in</label>
|
||||||
|
<input type="date" class="form-control">
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<label class="form-label">Hóspedes</label>
|
||||||
|
<select class="form-select">
|
||||||
|
<option>1 Pessoa</option>
|
||||||
|
<option>2 Pessoas</option>
|
||||||
|
<option>Família</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2 d-flex align-items-end">
|
||||||
|
<button type="submit" class="btn btn-warning w-100 fw-bold">Pesquisar</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="row">
|
||||||
|
<div class="col-md-6 col-lg-4">
|
||||||
|
<div class="card h-100 shadow-sm border-0">
|
||||||
|
<img src="https://via.placeholder.com/400x250" class="card-img-top" alt="Hotel Exemplo">
|
||||||
|
<div class="card-body">
|
||||||
|
<h5 class="card-title">Resort Vista Mar</h5>
|
||||||
|
<p class="card-text text-muted">A apenas 50 metros da praia, com café da manhã incluso.</p>
|
||||||
|
<div class="d-flex justify-content-between align-items-center">
|
||||||
|
<span class="fw-bold text-success">R$ 450,00 / dia</span>
|
||||||
|
<a href="#" class="btn btn-outline-primary btn-sm">Ver Detalhes</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="text-center py-4 text-muted">
|
||||||
|
<p>© 2026 - Atividade de ADS - Prototipação de Interfaces</p>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js" integrity="sha384-FKyoEForCGlyvwx9Hj09JcYn3nv7wiPVlz7YYwJrWVcXK/BmnVDxM+D2scQbITxI" crossorigin="anonymous"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
1
public/notfound.php
Normal file
1
public/notfound.php
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Não encontrado
|
||||||
Reference in New Issue
Block a user