Novidades PHP 5.3 e PHP 6
-
Upload
bruno-viana -
Category
Technology
-
view
2.396 -
download
1
description
Transcript of Novidades PHP 5.3 e PHP 6
NOVIDADES PHP 5.3 E PHP 6Bruno Viana - Webdeveloper
QUEM?
NO
VIDAD
ES PHP 5.3 E PH
P 6Quem?
Bruno Viana :: [email protected]
DesenvolvedorPHP Zend Certified Engineerhttp://www.tupi.etc.br
PHP 6 = PHP 5 + Unicode
WTF?!?O que é Unicode e por que preciso dele?
mojibake文字化け
Mojibake
Termo japonês para caracteres fantasmas. Usado para descrever problema de caracteres incorretos em softwares.
Unicode• Provê uma numeração única para cada caractere
• Não importa a plataforma
• Não importa o programa
• Não importa a língua
Unicode não é i18n
• Unicode simplifica o desenvolvimento
• Unicode não resolve todos os problemas de internacionalização
Internacionalização :: i18n
• Criação de uma aplicação sem assumir uma única cultura•Mantém uma estrutura eficiente para localização
Localização :: l10n
• Resolve problemas de uma determinada região, cultura ou língua
Localização assume a forma de uma região manipulando:
• Formato de data e hora
• Formato de números e moedas
• Ordenação
• etc...
PHP 6
Suporte a Unicode
• Qualquer canto: engine, extensões, API
• Nativo e completo
Pegue 5 títulos dos feeds de um portal chinês, limpe e gere um JSON
Literais strings serão Unicode
Offsets trabalham com code points
Identificadores Unicode são permitidos
Funções entendem texto UnicodeStrtoupper() e similares
Strip_tags() reconhece os caracteres
Strip_tags() preserva os caracteres corretamente
StreamsCodificação default
Codificação customizada
Text Iterator
• Usado para percorrer pelo texto de forma linear
• Percorre sob code points, caracteres, palavras, linhas indo e voltando
Text Iterator
Percorre caracteres
Resultado
Text Iterator
Percorre de forma reversa
Resultado
Text Iterator
Trunca o texto através de um limite de palavras
Retorna as 2 últimas sentenças do texto
Retorna tudo dentro de um determinado limite
Transliteração
Text Iterator
Como será o nome da Britney Spears em japones?
Collator :: Comparando strings
compare($str1, $str2) = -1,0,1
côte < coté
Collator :: ordenando strings
sort($array, $flags)asort($array, $flags)sortWithSortKeys($array)
Collator :: peso
setStrength($strength)getStrength()
côte == coté
Formatação de números
NumberFormatter::PATTERN_DECIMAL123456.79 (with ##.##)
NumberFormatter::DECIMAL123456.789
NumberFormatter::CURRENCY$123,456.79
NumberFormatter::PERCENT12,345,679%
Formatação de números
NumberFormatter::SCIENTIFIC1.23456789E5
NumberFormatter::SPELLOUTone hundred and twenty-three thousand, four hundred andfifty-six point seven eight nine
NumberFormatter::ORDINAL123,457th
NumberFormatter::DURATION34:17:37
Formatação de números
format($number [, $type])
Formatação de mensagens
Precisamos de:Today is November 21, 2007.
Forma normal no PHP: date(‘F d, Y’)
MessageFormat usará o padrão: Today is {0,date}.Argumento: array(time())
Formatação de mensagens
format($args)
Formatação de mensagens
Diferentes localidades
PHP 5.3
Namespaces
• Feito para resolver problemas de escopo
•Muitas discussões sobre o assunto
Namespaces
Definição
Uso
Lambdas e closures
• Funções anônimas
• Captura o escopo
• Familiar para desenvolvedores Javascript
Lambdas e closures
• Exemplo mais complexo
phar
• PHp Arhiver
• PharData = PDO para arquivos tar e zip
• Aplicações encapsuladas
phar
Acessar arquivos encapsulados
Guardar uma aplicação inteira
Previsõe
• PHP 5.3 está previsto para Janeiro
• PHP 6 está previsto para Maio