All posts by leonardocotta.com.br

Como remover um índice de um Array

jQuery Brasil

Há alguns dias atrás, precisei remover um índice de um array e por um instante fiquei sem saber o que fazer, mas logo um amigo me ajudou me dando a dica que no JavaScript os arrays possuem um método chamadoSplice, neste post vou explicar este método do JavaScript e como usa-lo de forma inteligente com um outro método do jQuery.

O que o método Splice faz?

O método splice, em português é algo como “emendar” ou “juntar“, ele altera os índices de um array enquanto adiciona novos índices ao array em questão.
Um exemplo bem prático seria:

var arr = [0, 1, 2, 3, 4, 5]; 
arr.splice(1, 0, 'a', 'b');
// agora o arr é: [0, "a", "b", 1, 2, 3, 4, 5]

Como usar o método Splice

viaComo remover um índice de um Array.

Com as novidades do PHP 5.5.0 e o que mudou, que impacto terá em projetos prontos, será possivel migrar a versão do php?

Com as novidades do PHP 5.5.0 e o que mudou, que impacto terá em projetos prontos, será possivel migrar a versão do php?

A lista de melhorias gerais da linguagem são:

  • Suporte para generators e coroutines
  • Criação de uma API de hashing de senhas
  • Suporte para utilização de list nas estruturas foreach
  • Suporte à seção finally nas estruturas try/catch/finally
  • Suporte ao derreferenciamento de arrays e strings constantes
  • Melhorias no controle de exceptions e erros
  • Suporte à utilização do comando empty sobre retornos de funções e outras expressões
  • Remoção das funções php_logo_guidphp_egg_logo_guidphp_real_logo_guid e zend_logo_guid
  • Criação da função boolval para casting do tipo bool
  • Nova opção para pack/unpack
  • Suporte à mensagem personalizada em assert
  • Correções de bugs diversos

A definição da API para hashing de senha, que será bem vinda como foi o PDO para a padronização das conexões com bancos de dados.

Melhorias em extensões

Segue um resumo de algumas melhorias em extensões:

  • Melhorias diversas na extensão Curl (requisições remotas)
  • Suporte para PBKDF2 na extensão hash (criptografia)
  • Melhorias diversas na extensão Intl (internacionalização)
  • O modificador /e foi depreciado na extensão PCRE (expressões regulares)
  • Melhorias de escape para extensão pgsql (PostgreSQL)

Neste caso, as melhorias são pouco significativas, o modificador /e do PCRE, servia para aplicar eval em expressões regulares usadas para replace, o que era pouquíssimo usado.

Desvantagem ou melhoria? o que deixou de suportar?

Desde a versão do PHP 5.4 foram descontinuados algumas funções antigas no PHP que podem vir a fazer toda a diferença se você decidir migrar seu projeto vindo de uma versão mais antiga e por isso preste bem atenção se seu projeto está preparado para essa migração, para saber se seu projeto suportará as versões a partir da 5.4 do php vá no link http://www.php.net/ChangeLog-5.php#5.4.0 e veja o que mudou e o que foi descontinuado.

 

Conclusão

Na versão 5.5 não chegaram ainda muitas melhorias assim pelo que pude perceber, posso estar errado, por exemplo, na versão 5.3 ou 5.4 a discrepância foi bem maior .Não foram melhorias relacionadas à POO, e sim melhorias de novas estruturas da linguagem, contudo veja bem se seu projeto suporta essa migração de versões pois com a descontinuidade de algumas funções do php pode ser que você fique na mão e nesse caso ainda é recomendado utilizar até a versão 5.3.

 

Disponível para Dowload em http://windows.php.net/qa/

compilação do PHP 5.4.8

Bibliotecas necessárias

Para conseguir compilar o PHP precisaremos que algumas bibliotecas estejam instaladas, insale-as com esse comando:

1 sudo aptitude install libtidy-dev curl libcurl4-openssl-dev libcurl3 libcurl3-gnutls zlib1g zlib1g-dev libxslt1-dev libzip-dev libzip1 libxml2 libsnmp-base libsnmp15 libxml2-dev libsnmp-dev libjpeg62 libjpeg62-dev libpng12-0 libpng12-dev zlib1g zlib1g-dev libfreetype6 libfreetype6-dev libbz2-dev libmcrypt-dev libxmp-dev libmcrypt4 libltdl-dev libxml2-dev

Após os 10MB de download você já pode partir para o download do código-fonte do PHP.

Download do código-fonte do PHP

Clique neste link http://br.php.net/get/php-5.4.8.tar.bz2/from/a/mirror e faça o download do pacote.

Feito isso você já tem o código fonte do PHP e é hora de configurar o compilador.

Compilando o código-fonte do PHP

1 $ ./configure -with-apxs2=/usr/bin/apxs2 -with-mysql=/usr -with-mysqli=/usr/bin/mysql_config -with-pgsql=/usr -with-tidy=/usr -with-curl=/usr/bin -with-curlwrappers -with-openssl-dir=/usr -with-zlib-dir=/usr -enable-mbstring -with-xpm-dir=/usr -with-pdo-pgsql=/usr -with-pdo-mysql=/usr -with-xsl=/usr -with-ldap -with-xmlrpc -with-iconv-dir=/usr -with-snmp=/usr -enable-exif -enable-calendar -with-bz2=/usr -with-mcrypt=/usr -with-gd -with-jpeg-dir=/usr -with-png-dir=/usr -with-zlib-dir=/usr -with-freetype-dir=/usr -enable-mbstring -enable-zip -with-pear --with-config-file-path=/usr/local/lib

Não se assuste, vão aparecer MUITAS coisas na tela… Mas no final, se tudo deu certo, você receberá a seguinte mensagem:

+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE.  By continuing this installation |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+

Thank you for using PHP.

E agora é hora de compilar, utilize os seguintes comandos:

1 sudo make
2 sudo make -i install

A compilação demora mas é necessária… É isso que vai fazer o PHP funcionar no seu computador.

Quando tudo terminar, você pode digitar o comando php -v para ver a versão atual do PHP instalado no computador:

1 $ php -v
2 PHP 5.3.10-1ubuntu3.4 with Suhosin-Patch (cli) (built: Sep 12 2012 19:00:43)
3 Copyright (c) 1997-2012 The PHP Group
4 Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

Pronto! instalado com sucesso!

Não se esqueça de copiar o php.ini de desenvolvimento para a pasta do PHP:

1 sudo cp php.ini-development /usr/local/lib/php.ini

Fazendo o Apache rodar o PHP corretamente

O PHP precisa ser um módulo do seu servidor WEB para tudo correr bem… Normalmente você não precisaria fazer isso, mas devido ao motivo de uso da flag -i no passo anterior, nós precisamos fazer isso manualmente… Primeiro, mude o diretório:

1 cd /etc/apache2/mods-available

Agora crie um arquivo chamado php5.load e coloque isso dentro dele:

1 LoadModule php5_module /usr/lib/apache2/modules/libphp5.so

Salve o arquivo php5.load e crie outro arquivo, agora chamado php5.conf, com o seguinte conteúdo:

1 AddType application/x-httpd-php .php .phtml .php3
2 AddType application/x-httpd-php-source .phps

Pronto… Terminamos… Só precisamos habilitar o módulo PHP no Apache e reiniciar o servidor, usaremos esses dois comandos:

1 sudo a2enmod php5
2 sudo /etc/init.d/apache2 restart

Bônus – Instalação do PHPUnit

PHPUnit é uma ótima ferramenta de teste unitário que ajuda muito no desenvolvimento, mas isso é assunto para outro artigo. Vamos usar o Pear, que foi instalado junto com o PHP, par instalá-lo da seguinte maneira:

1 sudo pear channel-discover pear.phpunit.de
2 sudo pear channel-discover components.ez.no
3 sudo pear channel-discover pear.symfony-project.com
4 sudo pear install phpunit/PHPUnit

PHPUnit Instalado e já pode passar a usá-lo. veja mais sobre ele em http://www.phpunit.de/manual/3.7/en/index.html

Um grande abraço!

PHP 5.4 novas funcionalidades

 

PHP 5.4 novas funcionalidades

Segurança e Performance

Como toda nova versão do PHP, esta versão traz algumas melhorias significativas à segurança e performance do seu sistema vejamos algumas delas:

Traits

Traits são mecanismos que vieram para melhorar a reutilização de código, e servem perfeitamente para resolver o problema da falta de herança múltipla.

Para mais informações entre no manual e veja http://php.net/manual/en/language.oop5.traits.php

Nova sintaxe para arrays

Antigamente você criava arrays assim:

$nomes = array('Leonardo', 'Fulano', 'Ciclano');
$idades = array('Leonardo' => 23, 'Fulano' => 18, 'Ciclano' => 35);

Agora você pode criá-los com uma sintaxe bem mais limpa:

$nomes = ['Leonardo', 'Fulano', 'Ciclano'];
$idades = [‘Leonardo’ => 23, ‘Fulano’ => 18, ‘Ciclano’ => 35];

Simples pra quem vê mas util pra quem usa. Fino né, legal, para verem mais consultem também o manual do Php! Nele garanto que verão muito mais do que simples mudanças, bacana pra quem quer se atualizar.

http://www.php.net/manual/pt_BR/

 

Notem que tiveram várias mudanças e algumas funções do php foram removidas!

 

http://www.php.net/ChangeLog-5.php#5.4.0

Multitenancy

Multitenancy refere-se a um princípio de arquitetura de software onde uma única instância do software executado em um servidor, servindo múltiplas organizações de clientes (lojistas). Multitenancy é contrastado com uma arquitetura multi-instância onde instâncias de software independentes (ou sistemas de hardware) são criados para organizações clientes diferentes. Com uma arquitetura multitenant, um aplicativo de software é projetado para praticamente partição seus dados e configurações, e cada organização cliente trabalha com uma instância de aplicativo virtual personalizado.

Multitenancy também é considerado como um dos atributos essenciais de computação em nuvem .

O princípio da multitenancy não é universalmente aceito e apoiado dentro da indústria de software, e isso pode ser uma fonte de diferenciação competitiva.

Fonte: http://en.wikipedia.org/wiki/Multitenancy