1 NOTE: This file is no longer being updated. See the CHANGES file in
2 the top-level directory.
5 Changes since version 3.2.0
6 ---------------------------
8 - Added support for protected class data members using the new
9 metadata tag ["protected"]. The tag can be applied to a Slice class
10 or to individual data members.
12 - Added Communicator::setProperty.
14 - All local methods on a proxy that return the "same" proxy with
15 a different attribute (such as ice_oneway and ice_secure) now return
16 a proxy of the same class as the original. As a result, once you
17 have downcast a proxy, it will rarely be necessary to downcast it
18 again. For example, you can rewrite the following statements
20 $base = $ICE->stringToProxy(...);
21 $twoway = $base->ice_checkedCast("::Demo::Hello");
22 $oneway = $twoway->ice_oneway()->ice_uncheckedCast("::Demo::Hello");
26 $base = $ICE->stringToProxy(...);
27 $twoway = $base->ice_checkedCast("::Demo::Hello");
28 $oneway = $twoway->ice_oneway();
30 The local methods ice_facet and ice_identity still return a proxy of
31 the base class Ice_ObjectPrx, since a change to the proxy's facet
32 or identity typically refers to an object with a different Slice
33 type and therefore requires a new downcast.
35 This change does not affect the behavior of existing code. However,
36 code that depends on these new semantics will not run correctly
37 using prior versions of Ice.
39 Changes since version 3.1.1
40 ---------------------------
42 - This release is compatible with PHP 5.1.6, 5.2.0, and 5.2.1.
44 - Added the following proxy methods:
48 ice_isThreadPerConnection
49 ice_threadPerConnection
50 ice_getCachedConnection
52 - Added Communicator::propertyToProxy() which creates a proxy from
53 a set of properties. This function allows you to set various local
54 proxy settings, such as the locator cache timeout, which cannot be
55 set using stringToProxy().
57 - The supported platforms for IcePHP are now Linux and Windows XP.
58 The process for building IcePHP on Linux has also changed; see the
59 INSTALL file for details.
61 - Added UnexpectedObjectException. This exception is raised if you
62 use Slice classes and client and server are compiled with mismatched
63 Slice definitions. Alternatively, this exception is raised if you
64 use dynamic invocation and pass a class of the wrong type as an
67 Changes since version 3.1.0
68 ---------------------------
72 Changes since version 3.0.1
73 ---------------------------
75 - Removed removeObjectFactory() from the communicator interface.
77 - PHP 5.1.4 is the required version for this release.
79 - Added identityToString and stringToIdentity to the Communicator
82 - Removed setDefaultContext operation on Communicator.
84 - Eliminated the source of deprecation warnings when E_STRICT is
87 - Added proxy method ice_getSecure.
89 - Deprecated the following proxy methods:
99 These methods will be removed in the next major release. You should
100 use the new methods shown below:
110 - Added the property Ice.Default.LocatorCacheTimeout and the proxy
111 method ice_locatorCacheTimeout(). If a cached endpoint is older
112 than the configured cache timeout, the Ice runtime won't use
113 the cached endpoint. Instead, the Ice runtime will query the
114 Ice locator service to retrieve up-to-date endpoints and then update
115 the locator cache. Please see the Ice manual for more information.
117 - Added the proxy method ice_endpointSelection, which allows an
118 application to control how endpoints are selected at connection
119 establishment. Two endpoint selection types are currently supported:
122 - Added the proxy method ice_cacheConnection. This method allows you
123 to enable or disable the caching of the connection by the proxy. By
124 default, the proxy will cache the connection to avoid looking it up
125 for each request. Disabling the connection caching is useful to do
126 per-request load balancing: the proxy will select a connection for
127 each request and the request will eventually be sent to different
130 - Added support for the Ice::Connection interface.
132 Changes since version 3.0.0
133 ---------------------------
135 - Fixed a bug in the Slice parser that caused problems if an
136 included file contained white space in the file name.
138 - Added source compatibility with PHP 5.1.2. A configure script for
139 PHP 5.1.2 is provided as configure-5.1.2.gz.
141 Changes since version 2.1.2
142 ---------------------------
144 - Removed ice_default() method from proxies.
146 - Added the proxy method ice_connectionId, which allows an application
147 to control connection reuse.
149 - Ice_loadProfile now raises Ice_ProfileNotFoundException if a
150 given profile is not found and Ice_ProfileAlreadyLoadedException
151 if a profile has already been loaded.
153 - Added proxy methods to retrieve the proxy adapter id and endpoints
154 (ice_getAdapterId() and ice_getEndpoints()) and to create a new
155 proxy with a new adapter id or new endpoints (ice_newAdapterId() and
158 - Added ice_communicator() and ice_toString() to proxies. The return
159 value of ice_communicator() is always the value of $ICE.
161 - Ice.ObjectImpl is now an abstract class that cannot be instantiated.
162 This change should be transparent to application code.
164 Changes since version 2.1.0
165 ---------------------------
167 - Added -E option to the various Slice compilers to print preprocessor
170 - A crash occurred if the global variable $ICE was used before a
171 profile was loaded. This now causes an error message.
173 - Attempting to print a proxy value resulted in a fatal error.
174 This has been fixed so that printing a proxy displays it in
177 Changes since version 2.0.0
178 ---------------------------
180 - Added setDefaultContext() and getDefaultContext() to the
181 Ice::Communicator interface. This allows a default context to be
182 established on a communicator-wide basis. See section 29.8.3 in
185 Added ice_defaultContext to Ice::ObjectProxy. This creates a new
186 proxy that uses the default context established on the communicator.
188 Changes since version 1.1.2
189 ---------------------------
191 - Compatibility with Ice 2.0.0.
193 - Added the communicator method getProperty(name[, default]).
195 - The configuration directives in an INI file are now named
196 "ice.config", "ice.slice", and "ice.options", for consistency
197 with the global directives. The previous directive names are
200 - Fixed a bug that prevented Apache 1.x from starting.
202 - The documentation has always stated that same-named constructs
203 cannot be directly nested inside each other. (For example, a
204 module `M' cannot contain a constant named `M'.) The Slice parser
205 compiler did not enforce this correctly up to now for modules
206 containing constructs with the same name as the enclosing module.
207 This has been fixed and now results in a diagnostic.
209 - The Slice parser now deprecates Slice definitions at global scope:
210 only modules can be defined at global scope. Everything else
211 (constants, classes, interfaces, etc.) must be defined inside a
214 For the time being, the compiler issues a warning for each global
215 definition but continues to compile the code. Global non-module
216 definitions will elicit a hard error two releases from now.
218 Changes since version 1.1.1
219 ---------------------------
221 - Fixed a compilation error for Visual C++.
223 Changes since version 1.1.0
224 ---------------------------
226 - Compatibility with PHP 5.0.0 (final).
228 Changes since version 1.0.3
229 ---------------------------
231 - Changed facet interface to be compatible with Ice 1.4.0.
233 - Added the proxy methods ice_newContext and ice_getContext.
235 - Fixed a bug that could cause a marshaling exception for uninitialized
238 - Fixed a marshaling bug that caused an assertion failure in the value
241 Changes since version 1.0.2
242 ---------------------------
244 - Fixed a link error when compiling with Visual C++ 6.0.
246 Changes since version 1.0.1
247 ---------------------------
249 - Updated for compatibility with Ice 1.3.0 and PHP5 beta4. The patch
250 in the file patch.txt must be applied to PHP5b4 prior to building
251 it on Unix platforms.
253 - Added the member functions ice_preMarshal and ice_postUnmarshal to
254 Ice_Object. The default implementations do nothing, but subclasses
255 may override them to take special action before marshaling and after
256 unmarshaling, respectively.
258 - Added __toString functions to certain Ice exceptions.
260 - Added support for building on HP-UX with aCC.
262 - Added configure script to simplify building on Linux/Solaris/HP-UX.
264 Changes since version 1.0.0
265 ---------------------------
267 - Minor fixes for compatibility with PHP 5.0.0b2.
269 - Fixes for Ice 1.2.0 API changes. The ice_flush operation has been
270 removed from proxies, and the operation flushBatchRequests has been
271 added to the communicator.
273 - The base Ice exception class (Ice_Exception) now derives from the PHP
274 base exception class (Exception). Also, the mapping for exceptions now
275 supports an optional string argument to constructors. This argument
276 represents the exception "message" and is passed to the base Exception
277 constructor unmodified.