asclows
(usa Slackware)
Enviado em 11/11/2005 - 14:40h
estava pensando em algo mais refinado, porque do modo como me sugeriu eu poderia trabalha de duas formas:
1. Criando método para cadas tipo de consulta:
class Tudo {
function getUserList()
{
$sql = 'SELECT * FROM USER';
}
function getPageList()
{
$sql = 'SELECT * FROM PAGE';
}
function XXXX.... {
}
}
ou
2. Criando vários objetos claro que cada um com suas respectivas consultas.
class User {
function getList()
{
$sql = 'SELECT * FROM USER';
}
function addUser( $C1, $C2 , $CX... )
{
$sql = 'INSERT INTO USER VALUE ( '$C1', $C2, $CX... )';
}
}
class Page {
function method1()
{
$sql1 = /* string SQL */;
/* comandos para manipulação da string */
}
function method2()
{
$sql2 = /* string SQL */;
/* comandos para manipulação da string */
}
}
No entanto tenho procurado uma forma talvez mais limpa "ao meu ver é claro, nada contra sua opinião". Por exemplo, não haveria uma maneira de implementar isto usando arquivo XML. Tipo com isso poderia expressar o que fizemos acima de uma forma declarativa e ao mesmo tempo muito organizada.
Por exemplo:
<user>
<select>SELECT * FROM USER WHERE id = '?'</select>
<update>UPDATE SET USER name='?' WHERE id = '?'</update>
<insert>INSERT INTO USER VALUES ( '', '?', '?', '?' )</insert>
<delete>DELETE FROM USER WHERE id = '?'</delete>
</user>
Dessa mesma forma eu poderia, sei lá, substituir as interrogações (?) por parametros que passaria para um método do objeto usuário por exemplo.
$user->add( '0006', 'Willie Moraes', '3212-3210' );
O método 'add' poderia parsear o xml substituindo as interrogações na sequência exata pela qual os parâmetros foram recebidos. E finalmente executando as strings.
Será este tipo de solução pode ser considerada uma boa alternativa?