- Hash
. Added support for PBKDF2 via hash_pbkdf2(). (Anthony Ferrara)
+- Intl
+ . The intl extension now requires ICU 4.0+.
+ . Added intl.use_exceptions INI directive, which controls what happens when
+ global errors are set together with intl.error_level. (Gustavo)
+ . MessageFormatter::format() and related functions now accepted named
+ arguments and mixed numeric/named arguments in ICU 4.8+. (Gustavo)
+ . MessageFormatter::format() and related functions now don't error out when
+ an insufficient argument count is provided. Instead, the placeholders will
+ remain unsubstituted. (Gustavo)
+ . MessageFormatter::parse() and MessageFormat::format() (and their static
+ equivalents) don't throw away better than second precision in the arguments.
+ (Gustavo)
+ . IntlDateFormatter::__construct and datefmt_create() now accept for the
+ $timezone argument time zone identifiers, IntlTimeZone objects, DateTimeZone
+ objects and NULL. (Gustavo)
+ . IntlDateFormatter::__construct and datefmt_create() no longer accept invalid
+ timezone identifiers or empty strings. (Gustavo)
+ . The default time zone used in IntlDateFormatter::__construct and
+ datefmt_create() (when the corresponding argument is not passed or NULL is
+ passed) is now the one given by date_default_timezone_get(), not the
+ default ICU time zone. (Gustavo)
+ . The time zone passed to the IntlDateFormatter is ignored if it is NULL and
+ if the calendar passed is an IntlCalendar object -- in this case, the
+ IntlCalendar's time zone will be used instead. Otherwise, the time zone
+ specified in the $timezone argument is used instead. This does not affect
+ old code, as IntlCalendar was introduced in this version. (Gustavo)
+ . IntlDateFormatter::__construct and datefmt_create() now accept for the
+ $calendar argument also IntlCalendar objects. (Gustavo)
+ . IntlDateFormatter::getCalendar() and datefmt_get_calendar() return false
+ if the IntlDateFormatter was set up with an IntlCalendar instead of the
+ constants IntlDateFormatter::GREGORIAN/TRADITIONAL. IntlCalendar did not
+ exist before this version. (Gustavo)
+ . IntlDateFormatter::setCalendar() and datefmt_set_calendar() now also accept
+ an IntlCalendar object, in which case its time zone is taken. Passing a
+ constant is still allowed, and still keeps the time zone. (Gustavo)
+ . IntlDateFormatter::setTimeZoneID() and datefmt_set_timezone_id() are
+ deprecated. Use IntlDateFormatter::setTimeZone() or datefmt_set_timezone()
+ instead. (Gustavo)
+ . IntlDateFormatter::format() and datefmt_format() now also accept an
+ IntlCalendar object for formatting. (Gustavo)
+ . Added the classes: IntlCalendar, IntlGregorianCalendar, IntlTimeZone,
+ IntlBreakIterator, IntlRuleBasedBreakIterator and
+ IntlCodePointBreakIterator. (Gustavo)
+ . Added the functions: intlcal_get_keyword_values_for_locale(),
+ intlcal_get_now(), intlcal_get_available_locales(), intlcal_get(),
+ intlcal_get_time(), intlcal_set_time(), intlcal_add(),
+ intlcal_set_time_zone(), intlcal_after(), intlcal_before(), intlcal_set(),
+ intlcal_roll(), intlcal_clear(), intlcal_field_difference(),
+ intlcal_get_actual_maximum(), intlcal_get_actual_minimum(),
+ intlcal_get_day_of_week_type(), intlcal_get_first_day_of_week(),
+ intlcal_get_greatest_minimum(), intlcal_get_least_maximum(),
+ intlcal_get_locale(), intlcal_get_maximum(),
+ intlcal_get_minimal_days_in_first_week(), intlcal_get_minimum(),
+ intlcal_get_time_zone(), intlcal_get_type(),
+ intlcal_get_weekend_transition(), intlcal_in_daylight_time(),
+ intlcal_is_equivalent_to(), intlcal_is_lenient(), intlcal_is_set(),
+ intlcal_is_weekend(), intlcal_set_first_day_of_week(),
+ intlcal_set_lenient(), intlcal_equals(),
+ intlcal_get_repeated_wall_time_option(),
+ intlcal_get_skipped_wall_time_option(),
+ intlcal_set_repeated_wall_time_option(),
+ intlcal_set_skipped_wall_time_option(), intlcal_from_date_time(),
+ intlcal_to_date_time(), intlcal_get_error_code(),
+ intlcal_get_error_message(), intlgregcal_create_instance(),
+ intlgregcal_set_gregorian_change(), intlgregcal_get_gregorian_change() and
+ intlgregcal_is_leap_year(). (Gustavo)
+ . Added the functions: intltz_create_time_zone(), intltz_create_default(),
+ intltz_get_id(), intltz_get_gmt(), intltz_get_unknown(),
+ intltz_create_enumeration(), intltz_count_equivalent_ids(),
+ intltz_create_time_zone_id_enumeration(), intltz_get_canonical_id(),
+ intltz_get_region(), intltz_get_tz_data_version(),
+ intltz_get_equivalent_id(), intltz_use_daylight_time(), intltz_get_offset(),
+ intltz_get_raw_offset(), intltz_has_same_rules(), intltz_get_display_name(),
+ intltz_get_dst_savings(), intltz_from_date_time_zone(),
+ intltz_to_date_time_zone(), intltz_get_error_code(),
+ intltz_get_error_message(). (Gustavo)
+ . Added the methods: IntlDateFormatter::formatObject(),
+ IntlDateFormatter::getCalendarObject(), IntlDateFormatter::getTimeZone(),
+ IntlDateFormatter::setTimeZone(). (Gustavo)
+ . Added the functions: datefmt_format_object(), datefmt_get_calendar_object(),
+ datefmt_get_timezone(), datefmt_set_timezone(),
+ datefmt_get_calendar_object(), intlcal_create_instance(). (Gustavo)
+
- MCrypt
. mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb() and mcrypt_ofb() now throw
E_DEPRECATED. (GoogleGuy)