KMRodrigo 1 Denunciar post Postado Agosto 22, 2011 Galera o sistema que estou criando é muito grande e terá diversas alterações futuras portanto preciso de um código sempre limpo. Gostaria de deixar esse tópico para que a galera possa sempre tirar dúvidas simples de como é melhor programar. Bom vou começar aqui. O que você preferem, abrir um <?php echo"e jogar o código html cheio de variáveis por aqui tipo: <input type='text' value='$variavel'>"; ?> ou usar o html <html> e a cada <?php echo $variavel;?> abrir e fechar o PHP </html> ? (n quero dizer no código todo, apenas em partes que se usam muitas variáveis como por exemplo em forms) Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Agosto 22, 2011 pessoalmente eu prefiro a segunda forma. <html> e a cada <?php echo $variavel;?> abrir e fechar o PHP </html> um pouco mais lento(talvez), por depender de varios blocos php, mas também equilibrado por fazer menos parse de strings, e menos concatanações. odeio php imprimindo html. Compartilhar este post Link para o post Compartilhar em outros sites
Deleu 0 Denunciar post Postado Agosto 22, 2011 Também não gosto muito de PHP imprimindo HTML não, mas há alguns casos e acasos. Tenho um arquivo de relatórios onde são adquiridos dados dos relatórios. Esse método retorna um array com todos os dados para um arquivo que "prepara" uma saída HTML para uma view. Como a maneira mais viável para mim, naquele momento, era PHP imprimir HTML, fiz de forma mais organizada possível. Segue um trecho: <?php $table = '<table id="relatorio" class="sortable" width="100%" border="1" align="center">'; $table .= '<tr class="header">'; $table .= '<th><div align="center">Fornecedor</div></th>'; $table .= '<th><div align="center">Descrição</div></th>'; $table .= '<th><div align="center">Plano de Conta</div></th>'; $table .= '<th><div align="center">Data de Vecimento</div></th>'; $table .= '<th><div align="center">Data de Pagamento</div></th>'; $table .= '<th><div align="center">Valor</div></th>'; $table .= '<th><div align="center">Multa</div></th>'; $table .= '<th><div align="center">Juros</div></th>'; $table .= '<th><div align="center">Dinheiro</div></th>'; $table .= '<th><div align="center">Cheque</div></th>'; $table .= '<th><div align="center">Valor Total</div></th>'; $table .= '</tr>'; ?> Compartilhar este post Link para o post Compartilhar em outros sites
KMRodrigo 1 Denunciar post Postado Agosto 22, 2011 Obrigado galera, vou dar preferencia a usar o PHP apenas para variável. Até porque (uso notepad++) o echo" " retira as cores de identificação do código o que deixa bem ilegível, um bloco de mais de 10 linhas em cinza já fica chato procurar algo. PS.Deleu concordo contigo nesses casos. Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Agosto 22, 2011 @Deleu, nesse trecho você não tem nenhuma necessidade de usar php. não tem nenhuma variavel, ou processamento server-side. concorda que foi desperdicio de processamento ? apenas um output limpo de HTML seria muito melhor. Independente de você estar trabalhando com OO / MVC, veja como trabalham por exemplo uma engine de template. Compartilhar este post Link para o post Compartilhar em outros sites
Deleu 0 Denunciar post Postado Agosto 22, 2011 Peguei só a metade do trecho que eu realmente desejava ter pego. Concordo que esta parte aí não possui nenhum processamento server-side, mas eu achei mais viável deixar o cabeçalho junto com todo o conteúdo do relatório. De um jeito ou de outro essa informação terá que navegar do servidor ao cliente, não sei se o prejuíso de passar pela memória antes da saída é tão grande. <?php $table = '<table id="relatorio" class="sortable" width="100%" border="1" align="center">'; $table .= '<tr class="header">'; $table .= '<th><div align="center">Fornecedor</div></th>'; $table .= '<th><div align="center">Descrição</div></th>'; $table .= '<th><div align="center">Plano de Conta</div></th>'; $table .= '<th><div align="center">Data de Vecimento</div></th>'; $table .= '<th><div align="center">Data de Pagamento</div></th>'; $table .= '<th><div align="center">Valor</div></th>'; $table .= '<th><div align="center">Multa</div></th>'; $table .= '<th><div align="center">Juros</div></th>'; $table .= '<th><div align="center">Dinheiro</div></th>'; $table .= '<th><div align="center">Cheque</div></th>'; $table .= '<th><div align="center">Valor Total</div></th>'; $table .= '</tr>'; foreach($array as $dados){ $total = $dados['juros'] + $dados['multa'] + $dados['valor']; $totalGeral=$totalGeral+$total; $table .= '<tr>'; $table .= '<td><div align="center">'.utf8_encode($dados['nome']).'</div></td>'; $table .= '<td><div align="center">'.utf8_encode($dados['descricao']).'</div></td>'; $table .= '<td><div align="center">'.utf8_encode($dados['planoConta']).'</div></td>'; $table .= '<td><div align="center">'.($dados['datavencimento']).'</div></td>'; $table .= '<td><div align="center">'.($dados['datapagamento']).'</div></td>'; $table .= '<td><div align="center">'.($dados['valor']).'</div></td>'; $table .= '<td><div align="center">'.$dados['multa'].'</div></td>'; $table .= '<td><div align="center">'.$dados['juros'].'</div></td>'; $table .= '<td><div align="center">'.$dados['valordinheiro'].'</div></td>'; $table .= '<td><div align="center">'.$dados['valorcheque'].'</div></td>'; $table .= '<td><div align="center">'.$total.'</div></td>'; $table .= '</tr>'; } $table .= '</table>'; ?> Compartilhar este post Link para o post Compartilhar em outros sites
vieira.rrafael 2 Denunciar post Postado Agosto 22, 2011 E o que vocês pensam de criar classes PHP para escrever HTML? <?php /** * classe Element * classe para abstração de tags HTML * PHP - Programando com orientaçao a objetos */ class TElement { private $name; // nome da TAG private $properties; // propriedades da TAG protected $children; /** * método construtor * instancia uma tag html * @param $name = nome da tag */ public function __construct($name) { // define o nome do elemento $this->name = $name; } /** * método __set() * intercepta as atribuições à propriedades do objeto * @param $name = nome da propriedade * @param $value = valor */ public function __set($name, $value) { // armazena os valores atribuídos // ao array properties $this->properties[$name] = $value; } /** * método add() * adiciona um elemento filho * @param $child = objeto filho */ public function add($child) { $this->children[] = $child; } /** * método open() * exibe a tag de abertura na tela */ private function open() { // exibe a tag de abertura echo "<{$this->name}"; if ($this->properties) { // percorre as propriedades foreach ($this->properties as $name=>$value) { echo " {$name}=\"{$value}\""; } } echo '>'; } /** * método show() * exibe a tag na tela, juntamente com seu conteúdo */ public function show() { // abre a tag $this->open(); echo "\n"; // se possui conteúdo if ($this->children) { // percorre todos objetos filhos foreach ($this->children as $child) { // se for objeto if (is_object($child)) { $child->show(); } else if ((is_string($child)) or (is_numeric($child))) { // se for texto echo $child; } } // fecha a tag $this->close(); } } /** * método close() * Fecha uma tag HTML */ private function close() { echo "</{$this->name}>\n"; } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Agosto 22, 2011 menino_levado, eu já não vejo necessidade pra isso, muito pelo contrário, já acho perda de processamento. Compartilhar este post Link para o post Compartilhar em outros sites
Deleu 0 Denunciar post Postado Agosto 22, 2011 Classe pra isso acho que já é ir longe... Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Agosto 22, 2011 Classes para criar HTML (pra mim) == Mistura de Camadas Compartilhar este post Link para o post Compartilhar em outros sites
KMRodrigo 1 Denunciar post Postado Agosto 23, 2011 Vcs Costumam usar o endif? (fimse) Se sim, pq? Compartilhar este post Link para o post Compartilhar em outros sites
Deleu 0 Denunciar post Postado Agosto 23, 2011 Eu não. Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Agosto 23, 2011 @KMRodrigo, acho que esse meu post, vai bem de encontro as tuas dúvidas: http://wbruno.com.br/blog/2011/07/31/etica-de-codigo/ endif; é uma sintaxe alternativa. Eu pessoalmente não curto. Prefiro programar no estilo "java", usando {} Compartilhar este post Link para o post Compartilhar em outros sites
KMRodrigo 1 Denunciar post Postado Agosto 23, 2011 hehe eu li esse seu post ontem quando estava no seu blog (deixei até alguns comentários em outras matérias) Dps de ler esse seu post vim e criei esse tópico. Pensei q o EndIF tmb tivesse algum motivo, mas eu tmb uso estilo java "{}" e usando tabs para definir "oque está dentro do que" if() { while() { Conteudo <table> <!-- Ah, tmb uso tabs em tags tipo "mãe" --> <tr> <td></td> </tr> </table> } } Compartilhar este post Link para o post Compartilhar em outros sites
Deleu 0 Denunciar post Postado Agosto 23, 2011 Aqui é BBCode [code] <?php echo $a; ?> [/*code] Compartilhar este post Link para o post Compartilhar em outros sites
KMRodrigo 1 Denunciar post Postado Agosto 26, 2011 Tenho uma pergunta.... Galera (mais especificamente W.Bruno por causa do exemplo q irei usar). W.Bruno no seu site Ofertas da S.Efigênia. A pág principal tem um menu esquerdo com os tipos de loja. Juntamente a frente dele tem o número de empresas cadastradas em cada loja.( http://www.ofertasdasantaefigenia.com.br/ ) Celular(4) GPS(8) Games(12) Televisores(3) etc. Porém a página tem um Loading bem rápido... COMO? você fez um loop com consulta ao banco de dados para cada categoria pra contar o número de lojas? Se sim... é normal ficar leve assim ou você utilizou alguma técnica para deixar mais leve o site? É q o ERP da empresa que trabalho (meu ERP) já está online, por motivos de segurança n posso posta-lo (vou ver se replico e posto pra vcs dps) e começo a me preocupar com a quantidade alta de dados utilizados no sistema. Acredito q essa dúvida faça parte desse tópico (Código limpo) pois o código limpo não é apenas para boa leitura e manutenção mas também para evitar programação desnecessária que acaba gerando delay alto no Sis. Duvida 2. Meu sistema terá muitos dados (mais de 1000 cliente, mais de 100 cotações geradas todo mês-todas sendo gravadas no BD com várias informações para cada uma) O PHP+AJAX+JAVASCRIPT+MYSQL são capazes de gerar um sistema ERP bom o suficiente ? (embora muitos dados o sistema não terá 100 acessos simultâneos) estou com medo, porém acredito q esse forum tem muito mais acessos simultâneos, muitos mais loops em cada tela e etc e funciona perfeitamente. Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Agosto 26, 2011 Porém a página tem um Loading bem rápido... COMO? estrutura de Dados Normalizada. você fez um loop com consulta ao banco de dados para cada categoria pra contar o número de lojas? lógico que não!Isso seria um suicídio! Se sim... é normal ficar leve assim ou você utilizou alguma técnica para deixar mais leve o site? Estude Modelagem SQL. me preocupar com a quantidade alta de dados utilizados no sistema. de qntos usuarios simultaneos estamos falando ? Meu sistema terá muitos dados (mais de 1000 cliente, mais de 100 cotações geradas todo mês-todas sendo gravadas no BD com várias informações para cada uma) isso é pouco, muuuuuito pouco. O PHP+AJAX+JAVASCRIPT+MYSQL são capazes de gerar um sistema ERP bom o suficiente ? se você fizer corretamente sim. Bom, posso te indicar uma leitura: http://wbruno.com.br/blog/2011/03/29/afinal-o-que-e-entidade/ Compartilhar este post Link para o post Compartilhar em outros sites
KMRodrigo 1 Denunciar post Postado Agosto 26, 2011 Hahaha Vlw brunão, pode deixar vou ler e estudar sobre tudo q foi postado. =) Só uma coisa.... KMRodrigo, em 26 agosto 2011 - 11:55 , disse: você fez um loop com consulta ao banco de dados para cada categoria pra contar o número de lojas? lógico que não! Isso seria um suicídio! Se n foi como foi? com técnicas de modelagem de dados? Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Agosto 26, 2011 Meus lojistas são multicategorados. Sei lá, "WB Informatica", pode estar na categoria CDs, Informática e SOM. Para isso, usei algumas entidades, relacionamentos, e uma visão. Ia liberar esse post somente na segunda.. mas foi o livro que li, na semana em que fiz o ofertas: http://wbruno.com.br/blog/2011/08/26/sobre-livro-sql-curso-pratico/ vai valer a pena para você também. Compartilhar este post Link para o post Compartilhar em outros sites
KMRodrigo 1 Denunciar post Postado Agosto 26, 2011 Obrigado novamente. Compartilhar este post Link para o post Compartilhar em outros sites