Programar de forma Hierárquica
A mesma idéia aplicada em $_SESSION pode ser aplicada a outros elementos. Por exemplo, para as variáveis superglobais $_GET e $_POST. Quando montamos um formulário que envia muitos dados, e envolvem atributos de diferentes entidades da aplicação, pode ocorrer de um mesmo nome de atributo ser igual para duas entidades. Para realizar a diferenciação, vamos hierarquizar o formulário também.
Vamos supor um formulário que pretende-se cadastrar um usuário e o nome de um livro ao mesmo tempo (duas entidades diferentes no mesmo formulário). Vamos supor, também, que tanto usuário quanto livro possui o atributo "nome". Um formulário que contorna este problema ficaria assim:
Observe que foi utilizado colchetes nos names dos campos. Desta forma, o PHP coloca os dados no vetor $_POST de forma hierárquica. Por exemplo, para obter o nome do usuário seria acessada a posição $_POST['usuario']['nome'], enquanto que para obter o nome do livro teriamos que acessar $_POST['livro']['nome'].
Colocar prefixos também funciona, porém, para realizar algumas operações mais genéricas com PHP, provavelmente será interessante manter o nome original do atributo. Opcionalmente, é possível criar uma classe que constrói formulários e define um ID único para cada campo, de forma que mesma classe consiga devolver, de forma hierárquica, os nomes utilizados no formulário. Enfim, realizar um mapeamento a um nível de objeto.
Vamos supor um formulário que pretende-se cadastrar um usuário e o nome de um livro ao mesmo tempo (duas entidades diferentes no mesmo formulário). Vamos supor, também, que tanto usuário quanto livro possui o atributo "nome". Um formulário que contorna este problema ficaria assim:
<form method="post" action="..."> <fieldset> <legend>Dados de Usuário</legend> <p> <label for="usuario-nome">Nome:</label> <input name="usuario[nome]" id="usuario-nome" type="text" value="..." /> </p> <p> <label for="usuario-senha">Senha:</label> <input name="usuario[senha]" id="usuario-senha" type="password" /> </p> </fieldset> <fieldset> <legend>Dados do Livro</legend> <p> <label for="livro-nome">Nome:</label> <input name="livro[nome]" id="livro-nome" type="text" value="..." /> </p> <p> <label for="livro-edicao">Edição:</label> <input name="livro[edicao]" id="livro-edicao" type="texto" value="..." /> </p> </fieldset> <p><input type="submit" value="Enviar" /></p> </form>
Observe que foi utilizado colchetes nos names dos campos. Desta forma, o PHP coloca os dados no vetor $_POST de forma hierárquica. Por exemplo, para obter o nome do usuário seria acessada a posição $_POST['usuario']['nome'], enquanto que para obter o nome do livro teriamos que acessar $_POST['livro']['nome'].
Colocar prefixos também funciona, porém, para realizar algumas operações mais genéricas com PHP, provavelmente será interessante manter o nome original do atributo. Opcionalmente, é possível criar uma classe que constrói formulários e define um ID único para cada campo, de forma que mesma classe consiga devolver, de forma hierárquica, os nomes utilizados no formulário. Enfim, realizar um mapeamento a um nível de objeto.
a idéia é usar MVC, no entanto, acredito que os Frameworks lhe deixam limitados a ele.Interessante escrever o próprio Framework, fica mais ao seu gosto.
01/01/2013 5:35pm
(~12 anos atrás)
para ajudar eu faço um mapa mental com o mindmeister.com e coloco em ordem os ítens do site.
09/12/2010 8:06pm
(~14 anos atrás)
para ajudar eu faço um mapa mental com o mindmeister.com e coloco em ordem os ítens do site.
09/12/2010 8:06pm
(~14 anos atrás)
Legal..
Recomendo a quem quer esmiuçar o MVC sob a perspectiva de um Gerenciador de Conteúdo estude a estrutura do Joomla e seus módulos e componentes.
Recomendo a quem quer esmiuçar o MVC sob a perspectiva de um Gerenciador de Conteúdo estude a estrutura do Joomla e seus módulos e componentes.
09/12/2010 3:51pm
(~14 anos atrás)
PARABÉNS E COMO O COLEGA FALOU, ME LEMBRA OS MEUS PRIMEIROS PROJETOS NA FACULDADE.
04/12/2010 6:22pm
(~14 anos atrás)
Muito bacana. E é engraçado quando eu li as suas primeiras palavras e lembrei dos meus primeiros sistemas, meses atrás, com absolutamente tudo jogado numa pasta qualquer.
17/11/2010 12:27am
(~14 anos atrás)
Obrigado!!!!