Um sistema gerenciador de franquias de cinemas.
- Gerenciamento de unidades da franquia
- Gerenciamento de funcionários
- Gerenciamento de comidas, combos e promoções 🍫
- Gerenciamento de filmes, sessões, assentos
- PHP 5.3.0+
- MySQL
- Git
- (Opcional) Possuir o Xampp
Se ainda não possui o XAMPP, segue um tutorial de como instalá-lo e como funciona 👉 tutorial
Clone o projeto para dentro de htdocs (pasta do XAMPP em que são servidos os arquivos .php):
git clone https://github.com/felipe-jm/cineweb
Após isso:
- Entre em ./application/config/config.php
- Defina as configurações do banco de dados
- Execute as queries .sql localizadas em ./sql:
Para visualizar o banco de dados no XAMPP, basta acessar http://localhost/phpmyadmin
Para iniciar o projeto, basta acessar http://localhost/cineweb e você irá cair na página inicial do sistema.
As URLs da aplicação estão ligadas diretamente aos métodos de seu controller em ./application/controllers
exemplo.com/cineweb/index.php/cidades
irá realizar o que index() executa em ./application/controllers/cidades.php
exemplo.com/cineweb/index.php/cidades/criar
irá realizar o que criar() executa em ./application/controllers/cidades.php
exemplo.com/cineweb/
irá realizar o que index() executa em ./application/controllers/home.php (página padrão).
O método criar() no controller ./application/controllers/cidades.php mostra o header, footer e a view/página criar.php que está em ./application/views/cidades/criar.php
public function criar()
{
// load views
require APP . 'views/_templates/header.php';
require APP . 'views/cidades/criar.php';
require APP . 'views/_templates/footer.php';
}
Para realizar operações sobre dados de um certo model, cujo as funções estão em ./application/model/model.php, basta dentro do controller utilizar $this->model->{nome da função desejada}();
public function index()
{
// pegando todos os filmes
$filmes = Filme::all();
// assim dentro das seguintes views pode-se acessar $filmes
require APP . 'views/_templates/header.php';
require APP . 'views/filmes/index.php';
require APP . 'views/_templates/footer.php';
}
Atualmente, a manipulação de dados ocorre somente em ./application/model/model.php utilizando PDO. Exemplo:
public static function all()
{
$connection = Connection::getConnection();
$sql = "SELECT * FROM filmes";
$query = $connection->prepare($sql);
$query->execute();
return $query->fetchAll();
}
O resultado ($filmes) pode ser utilizado entro das views:
<tbody>
<?php foreach ($filmes as $filme) { ?>
<tr>
<td><?php if (isset($filme->nome)) echo htmlspecialchars($filme->nome, ENT_QUOTES, 'UTF-8'); ?></td>
<td class="acoes">
<a href="<?php echo URL_WITH_INDEX_FILE . 'filmes/editar/' . htmlspecialchars($filme->id, ENT_QUOTES, 'UTF-8'); ?>">
<img src="<?php echo URL; ?>public/img/icons/edit.svg" alt="Editar" height="28" width="28">
</a>
</td>
<td class="acoes">
<a href="<?php echo URL_WITH_INDEX_FILE . 'filmes/deletarFilme/' . htmlspecialchars($filme->id, ENT_QUOTES, 'UTF-8'); ?>">
<img src="<?php echo URL; ?>public/img/icons/trash.svg" alt="Deletar" height="28" width="28">
</a>
</td>
</tr>
<?php } ?>
</tbody>