示例#1
0
void IntlExtension::initTimeZone() {
  DISP_CONST(SHORT);
  DISP_CONST(LONG);
#if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 44
  DISP_CONST(SHORT_GENERIC);
  DISP_CONST(LONG_GENERIC);
  DISP_CONST(SHORT_GMT);
  DISP_CONST(LONG_GMT);
  DISP_CONST(SHORT_COMMONLY_USED);
  DISP_CONST(GENERIC_LOCATION);
#endif // ICU 4.4

  HHVM_STATIC_ME(IntlTimeZone, countEquivalentIDs);
  HHVM_STATIC_ME(IntlTimeZone, createDefault);
  HHVM_STATIC_ME(IntlTimeZone, createEnumeration);
  HHVM_STATIC_ME(IntlTimeZone, createTimeZone);
  HHVM_STATIC_ME(IntlTimeZone, getCanonicalID);
  HHVM_ME(IntlTimeZone, getDisplayName);
  HHVM_ME(IntlTimeZone, getDSTSavings);
  HHVM_STATIC_ME(IntlTimeZone, getEquivalentID);
  HHVM_ME(IntlTimeZone, getErrorCode);
  HHVM_ME(IntlTimeZone, getErrorMessage);
  HHVM_STATIC_ME(IntlTimeZone, getGMT);
  HHVM_ME(IntlTimeZone, getID);
  HHVM_ME(IntlTimeZone, getOffset);
  HHVM_ME(IntlTimeZone, getRawOffset);
  HHVM_STATIC_ME(IntlTimeZone, getTZDataVersion);
  HHVM_ME(IntlTimeZone, hasSameRules);
  HHVM_ME(IntlTimeZone, useDaylightTime);

#if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 48
  CAL_CONST(TYPE_ANY);
  CAL_CONST(TYPE_CANONICAL);
  CAL_CONST(TYPE_CANONICAL_LOCATION);
  HHVM_STATIC_ME(IntlTimeZone, createTimeZoneIDEnumeration);
  HHVM_STATIC_ME(IntlTimeZone, getRegion);
#endif // ICU 4.8

#if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 49
 HHVM_STATIC_ME(IntlTimeZone, getUnknown);
#endif // ICU 4.9

  Native::registerNativeDataInfo<IntlTimeZone>(s_IntlTimeZone.get());

  loadSystemlib("icu_timezone");
}
示例#2
0
void IntlExtension::initCalendar() {
  FIELD_CONST(ERA);
  FIELD_CONST(YEAR);
  FIELD_CONST(MONTH);
  FIELD_CONST(WEEK_OF_YEAR);
  FIELD_CONST(WEEK_OF_MONTH);
  FIELD_CONST(DATE);
  FIELD_CONST(DAY_OF_YEAR);
  FIELD_CONST(DAY_OF_WEEK);
  FIELD_CONST(DAY_OF_WEEK_IN_MONTH);
  FIELD_CONST(AM_PM);
  FIELD_CONST(HOUR);
  FIELD_CONST(HOUR_OF_DAY);
  FIELD_CONST(MINUTE);
  FIELD_CONST(SECOND);
  FIELD_CONST(MILLISECOND);
  FIELD_CONST(ZONE_OFFSET);
  FIELD_CONST(DST_OFFSET);
  FIELD_CONST(YEAR_WOY);
  FIELD_CONST(DOW_LOCAL);
  FIELD_CONST(EXTENDED_YEAR);
  FIELD_CONST(JULIAN_DAY);
  FIELD_CONST(MILLISECONDS_IN_DAY);
  FIELD_CONST(IS_LEAP_MONTH);
  FIELD_CONST(FIELD_COUNT);
  FIELD_CONST(DAY_OF_MONTH);

  DOW_CONST(SUNDAY);
  DOW_CONST(MONDAY);
  DOW_CONST(TUESDAY);
  DOW_CONST(WEDNESDAY);
  DOW_CONST(THURSDAY);
  DOW_CONST(FRIDAY);
  DOW_CONST(SATURDAY);

#if ((U_ICU_VERSION_MAJOR_NUM * 100) + U_ICU_VERSION_MINOR_NUM) >= 404
  TYPE_CONST(WEEKDAY);
  TYPE_CONST(WEEKEND);
  TYPE_CONST(WEEKEND_CEASE);

  // Not a typo: Zend defines OFFSET as ONSET
  Native::registerClassConstant<KindOfInt64>(
    s_IntlCalendar.get(),
    makeStaticString("DOW_TYPE_WEEKEND_OFFSET"),
    UCAL_WEEKEND_ONSET);
#endif

#if ((U_ICU_VERSION_MAJOR_NUM * 100) + U_ICU_VERSION_MINOR_NUM) >= 409
  CAL_CONST(WALLTIME_FIRST);
  CAL_CONST(WALLTIME_LAST);
  CAL_CONST(WALLTIME_NEXT_VALID);
#endif

  HHVM_ME(IntlCalendar, add);
  HHVM_ME(IntlCalendar, after);
  HHVM_ME(IntlCalendar, before);
  HHVM_ME(IntlCalendar, clear);
  HHVM_STATIC_ME(IntlCalendar, createInstance);
  HHVM_ME(IntlCalendar, equals);
  HHVM_ME(IntlCalendar, fieldDifference);
  HHVM_ME(IntlCalendar, get);
  HHVM_ME(IntlCalendar, getActualMaximum);
  HHVM_ME(IntlCalendar, getActualMinimum);
  HHVM_STATIC_ME(IntlCalendar, getAvailableLocales);
  HHVM_ME(IntlCalendar, getErrorCode);
  HHVM_ME(IntlCalendar, getErrorMessage);
  HHVM_ME(IntlCalendar, getFirstDayOfWeek);
  HHVM_ME(IntlCalendar, getGreatestMinimum);
  HHVM_ME(IntlCalendar, getLeastMaximum);
  HHVM_ME(IntlCalendar, getLocale);
  HHVM_ME(IntlCalendar, getMaximum);
  HHVM_ME(IntlCalendar, getMinimalDaysInFirstWeek);
  HHVM_ME(IntlCalendar, getMinimum);
  HHVM_STATIC_ME(IntlCalendar, getNow);
  HHVM_ME(IntlCalendar, getTime);
  HHVM_ME(IntlCalendar, getTimeZone);
  HHVM_ME(IntlCalendar, getType);
  HHVM_ME(IntlCalendar, inDaylightTime);
  HHVM_ME(IntlCalendar, isEquivalentTo);
  HHVM_ME(IntlCalendar, isLenient);
  HHVM_ME(IntlCalendar, _isSet);
  HHVM_ME(IntlCalendar, roll);
  HHVM_ME(IntlCalendar, __set_array);
  HHVM_ME(IntlCalendar, setFirstDayOfWeek);
  HHVM_ME(IntlCalendar, setLenient);
  HHVM_ME(IntlCalendar, setMinimalDaysInFirstWeek);
  HHVM_ME(IntlCalendar, setTime);
  HHVM_ME(IntlCalendar, setTimeZone);

#if ((U_ICU_VERSION_MAJOR_NUM * 100) + U_ICU_VERSION_MINOR_NUM) >= 402
  HHVM_STATIC_ME(IntlCalendar, getKeywordValuesForLocale);
#endif
#if ((U_ICU_VERSION_MAJOR_NUM * 100) + U_ICU_VERSION_MINOR_NUM) >= 404
  HHVM_ME(IntlCalendar, getDayOfWeekType);
  HHVM_ME(IntlCalendar, getWeekendTransition);
  HHVM_ME(IntlCalendar, isWeekend);
#endif
#if ((U_ICU_VERSION_MAJOR_NUM * 100) + U_ICU_VERSION_MINOR_NUM) >= 409
  HHVM_ME(IntlCalendar, getRepeatedWallTimeOption);
  HHVM_ME(IntlCalendar, getSkippedWallTimeOption);
  HHVM_ME(IntlCalendar, setRepeatedWallTimeOption);
  HHVM_ME(IntlCalendar, setSkippedWallTimeOption);
#endif

  HHVM_ME(IntlGregorianCalendar, __ctor_array);
  HHVM_ME(IntlGregorianCalendar, isLeapYear);
  HHVM_ME(IntlGregorianCalendar, getGregorianChange);
  HHVM_ME(IntlGregorianCalendar, setGregorianChange);

  Native::registerNativeDataInfo<IntlCalendar>(s_IntlCalendar.get());

  loadSystemlib("icu_calendar");
}