Version 0.1.8 - Major Re-architecture
- Removed concept of "on-load" files; did not work as implemented in practice. Deleted 'on-load.php' files. Will revisit soon with a revised architecture.
- Added concept of DEFINES for child classes of Exo_Main_Base.
- Swapped meaning of add_class_filter and add_static_filter as well as action equivalents.
- Called __callStatic() to Exo_Helper_Base to delegate unknown method calls back up to the Main class.
- Added add_class_mixin() to Exo_Instance_Base to enable the bootstrap hook ('_after_setup_theme_11') to externally add mixin classes to other classes. Also added "return $this;" to support add hook chaining although abandoned that pattern after the approach to on-load proved unworkable.
- Moved singular functionality (theme_dir/theme_url, runmode, included template, prefixes) from Exo_Main_Base to Exo class itself.
- Removed initialize() as method to call for implementations in Exo_Main_Base and implemented sorting of implementation loading by priority level.
- Changed registration of implementation of manual to automatically registering non-base child classes or Exo_Main_Base.
- Reordered order of files being required in exo-core.php.
- In class Exo_Implementation
-- Updated constructor to grab information if exists from child class constants FULL_PREFIX, SHORT_PREFIX, and AUTOLOADER and from class methods REQUIRED_FILES() and AUTOLOAD_PATHS().
-- Added HOOKS() method to define hooks used in this class.
-- Added register_autoload_path() to support.
-- Added concept of Required files that need to be loaded.
-- Removed specific methods for loading fils or adding specific autoload dirs such as ones for the MVC classes; they didn't make sense after we moved to a more declarative bootstrap approach.
- In class _Exo_Helpers
-- Added call_class_method() and get_class_declaration() to support getting declaritive metadata from methods like HOOKS(), AUTOLOAD_PATHS(), etc.
-- Added get_class_filepath() and get_class_dir() to support the autoloader.
-- Added get_implementation_type() to support sorting implementations by type for initialization order.
- In class _Exo_Hook_Helpers
-- Added _add_hooks() and _exo_scan_class_hooks() to support bootstrapping.
- In class _Exo_Post_Helpers
-- Moved post type related initialization/bootstrapping into this class via HOOKS(), _exo_scan_class() and _exo_init().
-- Changed register_post_type() to just capture the $args and instead have _fixup_post_types() do the actual registration via _register_post_type().
-- Commented out get_post_type_class() because it ambiguously only returns the first class, which is not robust.
-- Added helper functions get_class_post_type(), get_post_type_classes(), get_exo_post_types() and get_classes_post_type()
- In class Exo itself
-- Added boostrapping hook '_after_setup_theme_11' to bootstrap in dev mode (non-dev mode boostrapping will come soon.)
-- Added theme_dir/theme_url, runmode, included template, prefixes that was previously in Exo_Main_Base and thus previously duplicated for all implementations.
-- Added declarative methods REQUIRED_FILES() and AUTOLOAD_PATHS().
-- Changed response to EXO_LOAD_IN_THEME being defined to load immediately rather than 'after_setup_theme' hook unless a constant EXO_THEME_LOAD_CALLABLE is defined and then it will run that instead.