* Due to missing break, the T_STRING case would fall through to array.
* The values were being added to the wrong variable.
* Added missing support for missing null values.
The deprecations are supposed to denote the release where
the functionality will be removed, as opposed to the one where
its deprecated. Having 3.1 as a target for recent changes
in popular methods like Object::add_extension() causes
too many short-term hassles, there's no "grace period".
The entire framework repo (with the exception of system-generated files) has been amended to respect the 120c line-length limit. This is in preparation for the enforcement of this rule with PHP_CodeSniffer.
Config system used to provide an add_static_source method, which was intended for
use by Extensions to add statics. But extensions for a class arent initialised
until at least one instance of that class is created, so before that the
Config system didnt include values from extensions
This patch reverses the control flow, so that the Config system explictly asks
each Object for its additional config sources via the new method
get_extra_config_sources. This method returns an array that can contain
string names of classes and also raw associative arrays.
The developer visible change is that Extension#add_to_class has been
deprecated. Instead there is a new method, get_extra_config, which has
the same method signature but needs to guarantee that it doesnt
cause side effects. Additionally there is no need to call
parent::get_extra_config - this is handled automatically.
BUGFIX Versioned's constructor doesn't provide suitable defaults. Previously a bug/feature in singleton, where it would pass null,true as params to strong_create, which would then get passed through as params to Versioned's constructor, meant that the code still executed fine (as was set to something that wasn't an array, so the null and true were instead taken as args). The fact that the usage of singleton(Versioned) never really used the classes code, purely for value lookup, meant that this never propagated errors. I've now switched singleton() to use the injector for retrieving values, which means these dud values are no longer passed through
CHANGE Given that Config::inst is an implementation of the singleton pattern itself, I've removed the extra call to singleton(). A side effect of this is that it gets around a possibly nasty circular reference with the dependency injector (which relies on the config object); in future, this dependency structure should really be structured from the DI directly.
MINOR Change singleton and strong_create to use dependency injector
CHANGE Given that Config::inst is an implementation of the singleton pattern itself, I've removed the extra call to singleton(). A side effect of this is that it gets around a possibly nasty circular reference with the dependency injector (which relies on the config object); in future, this dependency structure should really be structured from the DI directly.
MINOR Change singleton and strong_create to use dependency injector
API CHANGE: Pass Object::create() calls to Injector::create().
API CHANGE: Add "RequestProcessor" injection point in Director, that Director will call preRequest() and postRequest() on.
This allows DataList::create('SiteTree') as equivalent to Object::create('DataList', 'SiteTree'), without
having to have a create() function on DataList. Required for E_STRICT compliance.
static function on Extension classes.
BUGFIX FulltextSearchable didn't pass through arguments, use now
available $args parameter with FulltextSearchable::add_to_class()
API CHANGE: Introduced new function Object::create_from_string() to instantiate an object from a string like 'Int(50)' (from r101093)
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@111585 467b73ca-7a2a-4603-9d3b-597d59a354a9
From: Andrew Short <andrewjshort@gmail.com>
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@88772 467b73ca-7a2a-4603-9d3b-597d59a354a9
API CHANGE: Extensions can no longer be extended with more Extensions (that would be a really bad idea, now it doesn't work at all, for performance)
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@83439 467b73ca-7a2a-4603-9d3b-597d59a354a9
API CHANGE #4255 sharvey: DataObjectDecorator::extraStatics() can no longer refer to $this because it's called staticly
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@79430 467b73ca-7a2a-4603-9d3b-597d59a354a9
API CHANGE: The result of any extension returned by Object::extInstance() should have setOwner() called on it before calling a method, and clearOwner() after.
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@78414 467b73ca-7a2a-4603-9d3b-597d59a354a9
ENHANCEMENT Added Object->getExtensionInstances()
ENHANCEMENT Added Object::get_extensions()
ENHANCEMENT Unsetting class caches when using Object::add_extension() to avoid problems with defineMethods etc.
BUGFIX Fixed extension comparison with case sensitivity and stripping arguments in Object::has_extension()
BUGFIX Unsetting all cached singletons in Object::remove_extension() to avoid outdated extension_instances
MINOR Documentation in Object
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@73900 467b73ca-7a2a-4603-9d3b-597d59a354a9
BUGFIX: Make object cache testing more robust
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@73059 467b73ca-7a2a-4603-9d3b-597d59a354a9
API CHANGE Deprecated menu manipulation through Object::addStaticVars(), changed internal representation of menu_item array to always use associative arrays
ENHANCEMENT Added LeftAndMain::add_menu_item(), LeftAndMain::replace_menu_item(), LeftAndMain::remove_menu_item()
ENHANCEMENT Moved default menu items from LeftAndMain->MainMenu() to cms/_config.php
ENHANCEMENT Added ReportAdmin::has_reports()
ENHANCEMENT Object::addStaticVars() can replace the whole array optionally
ENHANCEMENT Object::stat() optionally returns uncached results
ENHANCEMENT Moved Object::useCustomClass('SSDateTime') from Object.php to sapphire/_config.php
ENHANCEMENT Misc documentation and formatting in LeftAndMain and Object classes
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@52171 467b73ca-7a2a-4603-9d3b-597d59a354a9
svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/branches/2.2.2
........
r51462 | sminnee | 2008-03-19 18:01:55 +1300 (Wed, 19 Mar 2008) | 1 line
Make Object::hasMethod() and Object::__call() case-insensitive, and added tests for it
........
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@51468 467b73ca-7a2a-4603-9d3b-597d59a354a9
svn://svn.silverstripe.com/silverstripe/modules/sapphire/branches/2.1.0-rc3oriwave2
........
r45654 | sminnee | 2007-11-26 17:00:26 +1300 (Mon, 26 Nov 2007) | 2 lines
Redirect to legislation section when there are only legislation pages
Allow selection of folder when inserting files / images
........
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@49788 467b73ca-7a2a-4603-9d3b-597d59a354a9