Alteração dos tipos 'Text', 'String' e 'Float' e atributo "No Legacy, Level N"

24 views
Skip to first unread message

Camilo Carromeu

unread,
Jan 13, 2016, 6:29:22 AM1/13/16
to Titan Framework
Olá pessoal,

Visando adaptar o Titan para funcionar corretamente no PHP 7, os nomes dos tipos nativos 'String' e 'Float' foram alterados, respectivamente, para 'Phrase' e 'Double'. Esta alteração foi necessária pois os termos 'string' e 'float' são palavras reservadas no PHP 7.

Antes da alteração dos tipos 'String' e 'Float', o tipo 'Text' já havia sido alterado para 'PlainText' visando resolver problemas de compatibilidade com a biblioteca JPGraph.

Percebam que os tipos 'Text', 'String' e 'Float' permanecem no framework como tipos 'fake', que herdam os tipos reais novos. Desta forma, nenhuma instância que os utiliza será afetada pela mudança. No entanto, quando a instância for ser executada em um ambiente com PHP 7, estes tipos não podem ser utilizados. Para novos sistemas, recomenda-se formetemente o uso dos novos nomes dos tipos, ou seja, 'PlainText', 'Phrase' e 'Double', visando tornar as novas instâncias desenvolvidas compatíveis com o PHP 7.

Para garantir que estas palavras reservadas não sejam utilizadas em ambientes com o PHP 7, foi criado um novo atributo na tag 'type' do arquivo 'configure/titan.xml' denominado "no-legacy-level" (lê-se: "No Legacy, Level N"). Caso não seja informado nenhum valor a este atributo, o Titan irá trabalhar de modo legado, ou seja, todos os tipos serão aceitos. Isto significa que você pode usar um 'field' com o tipo 'String' e outro com o tipo 'Phrase' na mesma instância e ambos funcionarão normalmente e da mesma forma.

Caso seja atribuído ao atributo 'no-legacy-level' o valor '1', o tipo "Text" deixará de estar presente na instância e causará erro fatal caso seja utilizado em algum 'field'. Este nível do no legacy permite que a biblioteca JPGraph seja utilizada sem problemas.

Caso seja atribuído o valor '2' para o 'no-legacy-level', o Titan considera as restrições dos níveis anteriores (neste caso, remove o tipo 'Text' do nível '1') e desabilita os tipos 'String' e 'Float'.

O Cookbook do Titan e a instância-base do framework já foram atualizados com os novos nomes, de tal forma que novos desenvolvedores que iniciem no uso da ferramenta já os utilizem.

Atenção! Esta é apenas uma das diversas mudanças em curso para homologar o Titan para ser executado no PHP 7, ou seja, ele ainda não está apto para tal e seu uso na nova versão do PHP é fortemente não-recomendada.

Abraços,

Camilo

--
Reply all
Reply to author
Forward
0 new messages