Posts Tagged PHP

Classe Upload – PHP

A classe Upload gerencia o upload de imagens, possibilitando fazer alguns tratamentos à imagem “upada” como: converter, redimensionar, cortar de diversas maneiras e colocar marcas d’aguas nas imagens.

Primeiro passo: (Classe)

Faça download da classe de upload no site do desenvolvedor: Clique Aqui

Segundo passo: (Formulário)

Crie um arquivo html e insira o formulário abaixo

<form enctype="multipart/form-data" method="post" action="upload.php">
   <input type="file" size="32" name="imagem" value="">
   <input type="submit" name="submit" value="upload">
</form>

Terceiro passo: (Objeto)

Crie um arquivo chamado upload.php e insira o código abaixo:

<?php
$img = new Upload($_FILES['imagem']);
 
if ( $img->uploaded )
{
    $img->file_new_name_body = uniqid(rand());
    $img->image_resize = true;
    $img->image_ratio_y = true;
    $img->image_x = 300;
    $img->Process('img');
 
    if( $img->processed ) {
       echo "Sucesso!";
    } else {
        echo "error : " . $img->error;
    }
}
?>

Outros Exemplos: Classe Upload (Exemplos)

Download: Classe Upload

Desenvolvida por: Verot

, , , , , ,

2 Comentários

Desenvolvimento MVC com Zend Framework

, , , , ,

3 Comentários

Adicionando Manual do PHP.net na barrinha de busca do Mozilla Firefox

Aprenda a adicionar a documentação do PHP.net na barrinha de busca do Mozilla Firefox e tenha acesso rápido para cair de cabeça na documentação do php.

Hoje vou dar uma dica básica pra todo mundo que gosta de trabalhar com PHP e precisa, constantemente, acessar o PHP.net para tirar dúvidas sobre ( funções / argumentos / parâmetros / classes ) e etc… É uma documentação que todos devemos visitar com frequencia.

Primeiro acesse o PHP.net e repare que o íconezinho da barra de busca vai ficar azulado:

Manual do PHP.net nas suas mãos!

Agora é só clicar na setinha e clicar em Adicionar “Add PHP.net search”, como mostra a imagem:

Manual do PHP.net nas suas mãos!

Prontinho! Agora você tem o PHP.net como mais uma opção de busca e é só digitar o nome da função que você deseja e ele vai te levar direto para a documentação ou, caso ele não encontre nada, para uma página de busca com resultados parecidos.

, ,

2 Comentários

Adicionando Virtualhost no Apache do Ubuntu

Virtualhost é o método usado pelos servidores para hospedar mais de um site no mesmo computador, sendo acessados pela sua própria URL.

Vou mostrar abaixo como adicionar um virtualhost para um projeto local em seu computador.

Primeiramente vamos entrar na pasta “sites-available”, que é onde fica as configurações dos hosts virtuais disponíveis.

cd /etc/apache2/sites-available

Vamos criar um arquivo .conf para configuração do virtualhost do nosso projeto.

sudo gedit meusite.dev.conf

Neste arquivo sete o nome que o projeto vai ser chamado e seu caminho como no exemplo abaixo.

<VirtualHost *>
    ServerName meusite.dev
    DocumentRoot /var/www/meusite.dev
</VirtualHost>

Abra o arquivo “hosts” na pasta /etc.

sudo gedit /etc/hosts

Adicionar na lista seu virtualhost como abaixo:

127.0.0.1 meusite.dev

Ativar seu novo virtualhost com o comando “a2ensite”, este comando criará um link para o site na pasta “/etc/apache2/sites-enabled”:

sudo a2ensite meusite.dev.conf

Para alterar as configurações é necessário reiniciar o apache:

sudo /etc/init.d/apache2 reload

Agora é só acessar seu novo virtualhost pelo navegador.

Ao acessar o “http://meusite.dev”, você visualizará o conteúdo da pasta “/var/www/meusite.dev”.

PS.: Você pode adicionar quantos sites quiser usando esses mesmos passos.

, , , , ,

8 Comentários

Dicas para otimizar seu código PHP

Nossas intenções quando desenvolvemos um site é fazer com que ele seja bem acessado.
Muitas vezes quando o site começa a ter um grande número de acessos, começa a ficar lento devido ao desenvolvedor não fazer uso de algumas boas práticas de programação.

Achei interessante e estou compartilhando com vocês um artigo que traduzi do blog de um desenvolvedor web Alemão: Reinhold Weber.

1. Se um método pode ser estático, declare-o estático. Ficará até 4x mais rápido.

2. echo é mais rapido que print.

3. Prefira usar echo com múltiplos parâmetros ao invés de concatenar string.

echo "parametro um", $var , "outro parametro";

4. Defina o valor máximo do loop antes do for e não no for.

for($i=0; $i < count($array); $i++) {
  // Errado
  // A função count será chamada a cada vez que for resolver o loop!
}
$max_for = count($array);
for($i=0; $i < $max_for; $i++) {
  // Certo!!
  // Contar o array antes de entrar no loop!!
}

5. Sempre dê unset em variáveis que não serão mais usadas, principalemente grandes arrays.

6. Tente não usar métodos mágicos, como: __get, __set, __autoload

7. require_once() pode custar caro, prefira o include_once dependendo da necessidade.

8. Use caminhos completos em includes e requires, o PHP gastará menos tempo resolvendo os caminhos.

9. Se você deseja saber o momento em que o script começou a ser executado, $_SERVER[’REQUEST_TIME’] é melhor que time()

10. Se puder, use strncasecmp, strpbrk e stripos no lugar de funcões regex.

11. str_replace é mais rápida que preg_replace, mas strtr é ainda 4x mais rápido que str_replace.

12. Se uma função como troca de string, aceitar tanto arrays quanto caracteres unicos e a sua lista de argumentos não for muito longa, considere escrever algumas vezes o mesmo código passando um caracter por vez ao invés de uma linha passando arrays nos argumentos de pesquisa e troca.

13. É melhor usar switch/case do que multiplos if’s e else.

14. Usar supressão de erros com @ na frente da função deixa muito lento.

15. Ative o mod_deflate do apache (modulo de compressão de resposta).

16. Feche as conexões ao banco de dados quando você não for mais usa-las.

17. $row['id'] é 7x mais rápido que $row[id]

18. Mensagens de erros tem custo elevado, desligue-as em produção.

19. Em cada requisição seus scripts PHP são recompilados, use uma solução de cache, isso pode te dar um ganho de 25 a 100%. Quando possível use memcached – memcached é um objeto de memória cache, utilizado para aliviar a carga do dados em aplicações dinamicas.

20. Incrementar uma variavel local em um método é 2x mais rápido que incrementar uma variável global.

21. Faça Profile do seu código. Um profiler mostra quanto tempo cada parte do seu código consome. A extensão Xdebug ja contém um profiler.

22. Incrementar uma propriedade ( $this->prop++) é 3x mais lento que incrementar uma variável local.

23. Incrementando uma variavel local não definida é de 9x a 10x mais lento do que uma variavel local pré-inicializada.

24. Declarando uma variável global sem usá-la em uma função também atrasa as coisas.

25. A invocação de métodos é independente do número de métodos definidos em uma classe, em uma classe qualquer onde se adicionou 10 metódos não teve mudança de performance.

26. Métodos de classes derivadas rodam mais rápido do que aqueles definidos na classe base.

27. Use ‘ ao invés de ” em strings quando não for preciso usar variaveis ou escapes, assim o PHP não necessita procurar e interpretar esses caracteres especiais.

28. Prefira usar HTML puro se for possível, scripts PHP são de 2 a 10x mais lentos.

29. Faça uso das inúmeras funções pré-definidas.

30. Quando lidar com string e precisar verificar se a string possui certo tamanho, você entendidamente desejará usar a função strlen(). Essa função é bastante rápida, já que ela não faz nenhum calculo, apenas retorna o tamanho já conhecido da string disponível na estrutura zval(estrutura interna do C usada para guardar variaveis PHP). No entanto como strlen() é uma função, ainda assim é lenta, porque o PHP precisa fazer varias operações como lowercase e buscas na hashtable, e em seguida executar a dita função. Você poderá aumentar a velocidade do seu código usando um truque com isset().

// quantidade de caracteres é menor que 5?
if (strlen($foo) < 5) { 
  echo "Variável muito pequena."; 
}
// posição 5 desta variável esta setada?
if (!isset($foo{5})) { 
  echo “Variável muito pequena.; 
}

Usando isset() será mais rápido que strlen(), porque diferente de strlen(), isset() é um construtor de linguagem e não uma função, isso quer dizer que a sua execução não necessita busca na hashtable nem uso de lowercase. Virtualmente você não sobrecarga o código atual para determinar o tamanho da string.

31. Quando incrementando ou decrementando o valor de uma variavel, $i++ normalmente é mais lenta que ++$i. Isso é especifico para PHP, ou seja, não se aplica a outras linguagens, não sai por ai modificando seu código java ou C. Isso se da porque $i++ usa 4 opcodes enquanto ++$i precisa de somente 3.

32. Nem tudo precisa ser OOP, gera muita sobrecarga, cada chamada de método e objeto consome um monte de memória.

33. Não aplicar cada estrutura de dados como uma classe, arrays são utéis também.

34. Não divida muito os métodos, pense bem cada código que será reusado.

35. Você sempre poderá dividir o código no futuro, caso necessário.

Compare preços de livros de PHP.

, ,

3 Comentários