Skip to content

Redefining constants leads to warning spam #5

Description

@lgommans
[Tue Jun 09 00:00:37.121924 2026] [php7:notice] [pid 1873272:tid 1873272] [client x:41356] PHP Notice:  Constant SPACEAPI_TEST_CONST already defined in /var/www/spaceAPI_config.php on line 3
[Tue Jun 09 00:00:37.124484 2026] [php7:notice] [pid 1873272:tid 1873272] [client x:41356] PHP Notice:  Constant SPACEAPI_KEY already defined in /var/www/spaceAPI_config.php on line 7

Caused by

include( $_SERVER['DOCUMENT_ROOT']."/../spaceAPI_config.php" );
and
include( $_SERVER['DOCUMENT_ROOT']."/../spaceAPI_config.php" );

I've hotfixed it by suppressing the warnings (see #6). Regarding a long-term fix:

  • Using include_once instead of include causes the database variables not to be set it seems (based on new warnings being shown; I didn't want to have it in a broken state so I quickly reverted that change)
  • PHP does not allow if ( not defined('X')) { const X = ...; } so we can't just wrap it in a check. We could use if ( not defined('X')) { define('X', ...); } maybe
  • Using define('X', ...); instead of const x = ...; behaves differently with scoping. We would need to check if that's a change we can do
  • We could migrate the global constants to variables, so having SPACEAPI_KEY be a $variable_name instead of a constant. Then redefinitions are not a problem.
  • Or vice versa: make them all global constants instead of variables, and we need not include it more than once.
  • The entries could be split out into separate files. Then we include the file with SPACEAPI_KEY once and the file with $variables wherever it is needed

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions