Ticket #491 (closed melhoria: invalid)
PHP 6
Reported by: | rodsouza | Owned by: | alguem |
---|---|---|---|
Priority: | média | Milestone: | Sandbox - Expresso 3.0 |
Component: | API | Version: | sandbox |
Severity: | média | Keywords: | PHP 6 |
Cc: | WorkGroup: |
Description
O ExpressoLivre? não funciona no PHP 6 devido a problemas de codificação de caracteres.
Por exemplo:
$GLOBALSphpgw_info?server?webserve_url? = '/path';
O índice 'webserver_url' é criado por um resultado do Postgres, os demais estão definidos no código fonte.
var_dump( $GLOBALSphpgw_info?server?webserve_url? ); -> NULL
Para solucionar este problema identificou-se a necessidade de realizar uma tipagem do índice 'webserver_url' com '(binary)'.
var_dump( $GLOBALSphpgw_info?server?[(binary)'webserve_url'] ); -> string(5) "/path"
O operador de tipagem '(binary)' está disponível no PHP na versão 5.2.1. Utilizar o oprador '(string)' não surti efeito.
É totalmente inviável identificar todos os locais no código que apresentam esse problema.
Attachments
Change History
comment:2 Changed 15 years ago by wmerlotto
- Type changed from tarefa to melhoria
- Milestone set to Expresso 2.1
comment:4 Changed 14 years ago by rodsouza
Existem inúmeros problemas que não permitem a utilização da versão 6 do PHP (ainda não oficial).
Um problema que até o momento foi considerado é o inundamento do LOG com mensagens do PHP.
Mensagens essas muitas vezes são do tipo 'NOTICE' porém algumas delas são de funções que estão sob estado de depreciação.
O outro problema é a utilização de espaço físico desnecessário além de atrapalhar a visualização de mensagens relevantes.
comment:5 Changed 14 years ago by rodsouza
Mitigando situações que criam inundam o LOG.
- login.php
- phpgwapi/templates/default/login_default.php
Committed revision r1734.
comment:6 Changed 14 years ago by rodsouza
Mitigando situações que criam inundam o LOG.
- expressoMail1_2/controller.php
- expressoMail1_2/inc/class.db_functions.inc.php
- phpgwapi/inc/class.db.inc.php
Committed revision r1738.
comment:7 Changed 14 years ago by rodsouza
Mitigando situações que criam inundam o LOG.
- expressoMail1_2/inc/class.imap_functions.inc.php
- expressoMail1_2/inc/class.message_components.inc.php
Committed revision r1739.
comment:8 Changed 14 years ago by rodsouza
Mitigando situações que criam inundam o LOG.
- expressoMail1_2/inc/class.imap_functions.inc.php
- expressoMail1_2/inc/class.ldap_functions.inc.php
Committed revision r1740.
comment:9 Changed 14 years ago by niltonneto
Essa melhoria é uma pendência que existia há muito tempo. Mesmo no php5, se o error_reporting estiver como "E_ALL" e não seu valor default, "E_ALL & ~E_NOTICE", várias problemas nas requisições AJAX poderão aparecer, resultando no mal funcionamento do Expresso em várias casos. Muito relevante sua implementação.
comment:10 Changed 14 years ago by rodsouza
A situação adversa do que foi feito é a seguinte:
A verificação feita para mitigar o problema é feita (na maioria dos casos) por meio da função isset() em conjunto com o operador ternário. O problema é que o retorno do operador é NULL, assim existe a necessidade de verificar os locais onde está sendo exibido esse valor na interface e alterar o retorno do operador para uma string vazia.
Em anexo está um exemplo do log de uma requisição. Essa requisição gerou um log de 244K.
Changed 14 years ago by rodsouza
- attachment php.log.txt added
Exemplo do log gerado por uma única requisição.
comment:11 Changed 14 years ago by rodsouza
Na revisão r1740 foi atribuido o valor NULL caso a mensagem não possua valor para Subject, assim ao invés de ser exibido o Subject em branco, aparecia a palavra null.
O valor NULL foi alterado por uma string vazia quando a mensagem não possui assunto.
Condorme dito anteriormente deve existir outros locais que a mesma situação indesejada ocorre.
expressoMail1_2/inc/class.imap_functions.inc.php
Committed revision r1751.
comment:13 Changed 14 years ago by rodsouza
- Status changed from new to closed
- Resolution set to invalid
- Severity set to média
Os problemas que dizem respeito ao PHP 6 não serão mais problemas. Vide: http://news.php.net/php.internals/48974
Assim estou invalidando o presente ticket, os assuntos relacionados deverão ser tratados em tickets específicos.
comment:14 Changed 13 years ago by niltonneto
- Version changed from trunk to sandbox
- Milestone changed from Backlog - Não planejado to Expresso 3.0
comment:15 Changed 13 years ago by rodsouza
Por que esse ticket está sendo alterado? Ele não está fechado, além de ser inválido??!?!?
comment:16 Changed 13 years ago by niltonneto
Tickets finalizados estão sendo realocados para o Marco (milestone) correto. Existe um novo milestone criado para ticket pendentes e ainda não planejados. Apenas isso.