I entered a project written in php that at first had no idea of the proportion it would take. So I've written so much code that even I'm a little lost to locate some problems.
In order to do the project, as I was doing it, I was also learning about the language, but without any idea how the organization would be.
I have standardized some things that would not fit correctly.
In this way: Files with the html code are released at the root of the folder. Those who perform some logic are in the controls folder. Those that have the functions that search, insert, change, and delete records in the database are in the classes folder. And an api folder I made to return a Json when using a mobile application.
So far so good, I think it gets organized. But some class files for example are too large.
Ex (this class has 440 rows and rising):
function inserePedido($id_cliente){
$query = "INSERT INTO pedido (id_cliente) VALUES ({$id_cliente});";
$conexao = Conexao::criarConexao();
return $conexao->exec($query);
}
function inserePedidoItem($cliente,$produto,$tipo_cobranca,$id_tabela,$preco,$sequencia,$vendedor,$data,$cod_barras){
$uuid=uniqid(rand(), true);
$data_vencimento = date('Y-m-d',strtotime("+20 days",strtotime($data)));
$query = "INSERT INTO pedido_item (id_cliente,id_produto,sequencia,tamanho,
id_vendedor,preco,situacao,data_hora,data_vencimento,cod_barras,tipo_cobranca,id_tabela,uuid) VALUES (
{$cliente},{$produto['id']},{$sequencia},{$produto['tamanho']},
{$vendedor},{$preco},6,'{$data}','{$data_vencimento}','{$cod_barras}',{$tipo_cobranca},{$id_tabela},'{$uuid}');";
$conexao = Conexao::criarConexao();
return $conexao->exec($query);
}
function inserePedidoItemReserva($cliente,$produto,$tipo_cobranca,$id_tabela,
$preco,$sequencia,$vendedor,$data,$cod_barras){
$uuid=uniqid(rand(), true);
$data_vencimento = date('Y-m-d',strtotime("+20 days",strtotime($data)));
$query = "INSERT INTO pedido_item (id_cliente,id_produto,sequencia,tamanho,
id_vendedor,preco,situacao,data_hora,data_vencimento,cod_barras,tipo_cobranca,id_tabela,uuid)
VALUES ({$cliente},{$produto['id']},{$sequencia},{$produto['tamanho']},
{$vendedor},{$preco},15,'{$data}','{$data_vencimento}','{$cod_barras}',{$tipo_cobranca},{$id_tabela},'{$uuid}');";
$conexao = Conexao::criarConexao();
return $conexao->exec($query);
}
function inserePedidoItemCodigo($cliente,$produto,$tipo_cobranca,$id_tabela,
$preco,$sequencia,$vendedor,$data,$cod_barras){
$uuid=uniqid(rand(), true);
$data_vencimento = date('Y-m-d',strtotime("+20 days",strtotime($data)));
$query = "INSERT INTO pedido_item (id_cliente,id_produto,sequencia,tamanho,
id_vendedor,preco,situacao,data_hora,data_vencimento,cod_barras,tipo_cobranca,id_tabela,uuid)
VALUES ({$cliente},{$produto['id']},{$sequencia},{$produto['tamanho']},{$vendedor},
{$preco},4,'{$data}','{$data_vencimento}','{$cod_barras}',{$tipo_cobranca},{$id_tabela},'{$uuid}');";
$conexao = Conexao::criarConexao();
return $conexao->exec($query);
}
function inserePedidoParcialItemCodigo($cliente,$produto,$tipo_cobranca,$id_tabela,
$preco,$sequencia,$vendedor,$data,$cod_barras){
$uuid=uniqid(rand(), true);
$data_vencimento = date('Y-m-d',strtotime("+20 days",strtotime($data)));
$query = "INSERT INTO pedido_item (id_cliente,id_produto,sequencia,tamanho,confirmado,
id_vendedor,preco,situacao,data_hora,data_vencimento,cod_barras,tipo_cobranca,id_tabela,uuid)
VALUES ({$cliente},{$produto['id']},{$sequencia},{$produto['tamanho']},1,{$vendedor},
{$preco},4,'{$data}','{$data_vencimento}','{$cod_barras}',{$tipo_cobranca},{$id_tabela},'{$uuid}');";
$conexao = Conexao::criarConexao();
return $conexao->exec($query);
}
function inserePedidoProdutoDevolucao($cliente,$produto,$tipo_cobranca,
$id_tabela,$preco,$sequencia,$vendedor,$data,$cod_barras){
$uuid=uniqid(rand(), true);
$query = "INSERT INTO pedido_item (id_cliente,id_produto,sequencia,tamanho,
id_vendedor,preco,situacao,data_hora,cod_barras,tipo_cobranca,id_tabela,uuid,confirmado)
VALUES ({$cliente},{$produto['id']},{$sequencia},{$produto['tamanho']},
{$vendedor},{$preco},8,'{$data}','{$cod_barras}',{$tipo_cobranca},{$id_tabela},'{$uuid}',1);";
$conexao = Conexao::criarConexao();
return $conexao->exec($query);
}
function removePedidoProdutoUnidade($id_cliente,$sequencia){
$query = "DELETE FROM pedido_item WHERE id_cliente={$id_cliente}
AND sequencia={$sequencia} AND (situacao = 6 OR situacao = 4 OR situacao=15);";
$conexao = Conexao::criarConexao();
return $conexao->exec($query);
}
function removePedidoItemDevolucao($id_cliente){
$query = "DELETE FROM pedido_item WHERE id_cliente={$id_cliente} AND (situacao = 8 OR situacao = 12);";
$conexao = Conexao::criarConexao();
return $conexao->exec($query);
}
function excluirProdutoPedidoTotal($id_cliente,$id_produto,$data){
$query = "DELETE FROM pedido_item WHERE id_cliente={$id_cliente}
AND DATE(data_hora)=DATE('{$data}') AND id_produto={$id_produto}
AND (situacao = 6 OR situacao = 4 OR SITUACAO=15);";
$conexao = Conexao::criarConexao();
return $conexao->exec($query);
}
function removerPedidoUnidade($id_cliente,$sequencia){
$query = "DELETE FROM pedido_item WHERE id_cliente={$id_cliente}
AND sequencia={$sequencia}";
$conexao = Conexao::criarConexao();
return $conexao->exec($query);
}
function removerPedidoNaoConfirmados($cliente){
$query = "DELETE FROM pedido_item WHERE id_cliente={$cliente}
AND confirmado=0";
$conexao = Conexao::criarConexao();
return $conexao->exec($query);
}
function finalizarPedidoMaisTarde($cliente){
$query = "UPDATE pedido set finalizar = 1;";
$conexao = Conexao::criarConexao();
$conexao->exec($query);
}
function finalizarPedidoMaisTardeNao($cliente){
$query = "UPDATE pedido set finalizar = 0;";
$conexao = Conexao::criarConexao();
$conexao->exec($query);
}...
Is there some design pattern I can apply that is recommended in these cases, or some suggestion to address more queries in a simpler way. I know there are some frameworks like laravel, but I do not have more time to learn and do the conversion. And I'm very concerned about maintaining the code.