Archived

This forum has been archived. Please start a new discussion on GitHub.

PHP global $ICE variable not always defined

Hi!

I've been trying to integrate some applications that provide an ice backend with a small gaming community portal.

I currently have Ice 3.3.1 installed on a Debian based system. In most cases everything seems to work fine. But now I've got round to writing plugins and modules for Joomla! CMS and noticed that loading the default Ice profile in the Joomla! context doesn't fail or give me any warnings as such but the global $ICE variable is not defined. Running my small Apps standalone $ICE gets defined. I've been trying to find a solution but have had no luck so far.

I've tried removing (purging) and reinstalling Ice only ending where I started.

In the Apache2 error log (server not vhost) I can see the following warning during service startup:
PHP Warning:  PHP Startup: skipping dictionary ::Ice::ObjectDict - unsupported key type in Unknown on line 0

I don't know wether this log entry is related to the problem.

The corresponding slice file "Ice/Identity.ice" looks as follows:
// **********************************************************************
//
// Copyright (c) 2003-2009 ZeroC, Inc. All rights reserved.
//
// This copy of Ice is licensed to you under the terms described in the
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************

#ifndef ICE_IDENTITY_ICE
#define ICE_IDENTITY_ICE

[["cpp:header-ext:h"]]

module Ice
{

/**
 *
 * The identity of an Ice object. An empty [name] denotes a null
 * object.
 *
 * @see ServantLocator
 * @see ObjectAdapter::addServantLocator
 *
 **/
struct Identity
{
    /**
     *
     * The name of the Ice object.
     *
     **/
    string name;

    /**
     *
     * The Ice object category.
     *
     **/
    string category;
};

/**
 *
 * A mapping between identities and Ice objects.
 *
 **/
local dictionary<Identity, Object> ObjectDict;

/**
 *
 * A sequence of identities.
 *
 **/
sequence<Identity> IdentitySeq;

};

#endif

Should this file by any chance look differently?

Is there a different way to retrieve a Communicator object?

Please help me or perhaps point me in the right direction.

I'm very grateful for any help.