\e107\Shims\Internal\InternalTrait::strptime() now tries to run the internal PHP strptime()
function first instead of what's defined, which should defend against accidental infinite
recursion if something else like ./e107_handlers/php_compatibility_handler.php declares
strptime() and calls eShims::strptime().
- NEW: Added \e107\Shims\Internal\StrptimeTrait, which implements PHP internal function
strptime(). On not-Windows, the built-in function is called. If that function fails
or if the operating system is Windows, the alternative pure PHP implementation is
attempted. The first successful call is returned, or false if none are successful.
- MOD: Deprecated e_date::strptime() in favor of eShims::strptime()
- FIX: License misatributed for e_date::strptime() (now eShims::strptime()). The library
used was public domain, not CC BY-NC-SA 2.0 FR by Lionel Sauron.
- MOD: Removed STRPTIME_COMPAT constant now that eShims::strptime() exists
- MOD: Removed support for calling e_date::strptime() with:
- a localized full month name
- a localized abbreviated month name
- AM or PM
- am or pm
because these features were only implemented in Windows mode (STRPTIME_COMPAT).
- MOD: php_compatibility_handler.php now defines global strptime() using the
eShims::strptime() implementation
- NEW: Test all(?) the possibilities of eShims::strptime()
e_shims is an e107 v2-compatible class for the first namespaced core
class, e107\Shims\All.
e107\Shims\All is built from the e107\Shims\InternalShims trait.
e107\Shims\InternalShims currently implements a resilient replacement
for the PHP internal readfile(), which is needed by issue #3528.
As for how the new namespaced classes are handled, the e107 class
(e107_handlers/e107_class.php) has an updated e107::autoload() which
detects namespaced classes and goes to e107::autoload_namespaced().
Namespaced classes handled by e107 are in the \e107 top-level namespace,
and all sub-levels match directory paths under e_HANDLER.