Projeto

Geral

Perfil

Melhoria #410

Substituir ocorrências de __DIR__

Adicionado por Mauricio Luiz Viani quase 6 anos atrás. Atualizado mais de 1 ano atrás.

Situação:
Fechada
Prioridade:
Normal
Atribuído para:
Categoria:
Admin
Início:
15/02/2019
Data prevista:
% Terminado:

100%


Descrição

Em todo o código trocar a constante "__DIR__" por:

dirname( __FILE__ )

A constante "__DIR__" segue o caminho de inclusão de arquivos por outros arquivos, e pode gerar inconsistência, caso ocorram mais de dois níveis de inclusão. Já a constante "__FILE__" fornece o caminho real do sistema de arquivos.

Revisões associadas

Revisão 8b2f1a5d
Adicionado por Mauricio Luiz Viani quase 6 anos atrás

Issue #410 - Substituicao da constante DIR por dirname(FILE)

Histórico

#1 Atualizado por Mauricio Luiz Vianiquase 6 anos

  • Descrição atualizado(a) (diff)

#2 Atualizado por Mauricio Luiz Vianiquase 6 anos

  • % Terminado alterado de 0 para 80
  • Situação alterado de Nova para Resolvida

#3 Atualizado por Mauricio Luiz Vianiquase 6 anos

  • % Terminado alterado de 80 para 100
  • Situação alterado de Resolvida para Fechada

#4 Atualizado por Mauricio Luiz Vianimais de 1 ano

Chegamos a uma conclusão da causa que levou aos erros de inclusão de classe no ambiente do Expresso, como neste exemplo:

"PHP Fatal error: Cannot redeclare class Singleton in /var/www/expresso/phpgwapi/inc/class.singleton.inc.php on line 3 "

Investigamos através de debug no servidor 10.15.202.54, componente do farmweb, e descobrimos tratar-se de falha na atualização do cache de arquivos "opcache" que vem habilitado por padrão na instalação apache/php

Ocorre em ambientes onde residem, em um mesmo servidor, sites muito idênticos na estrutura de diretórios e arquivos, como é o caso do Expresso.

Localizado um relato no bugtrack do Php:

https://bugs.php.net/bug.php?id=69090

Simulamos em desenvolvimento e comprovamos o bug semelhante ao que ocorre em produção.

Duas abordagens podem ser tomadas para solução:

1) Separação dos sites em servidores diferentes;

2) Desligar o opcache:

"opcache.optimization_level=0"

Incluir a chave no arquivo php.ini da instalação.

Exportar para Atom PDF