Skip to content

Commit

Permalink
BUGFIX Removing use of deprecated Object static functions like
Browse files Browse the repository at this point in the history
get_static(), set_static(), uninherited() etc. Replace with equivalent
Config system get(), update()
  • Loading branch information
halkyon committed Apr 18, 2012
1 parent 926daa2 commit 4c6be29
Show file tree
Hide file tree
Showing 9 changed files with 28 additions and 37 deletions.
6 changes: 3 additions & 3 deletions admin/code/CMSBatchActionHandler.php
Expand Up @@ -130,7 +130,7 @@ function handleAction($request) {

function handleApplicablePages($request) {
// Find the action handler
$actions = Object::get_static($this->class, 'batch_actions');
$actions = Config::inst()->get($this->class, 'batch_actions', Config::FIRST_SET);
$actionClass = $actions[$request->param('BatchAction')];
$actionHandler = new $actionClass['class']();

Expand All @@ -152,7 +152,7 @@ function handleApplicablePages($request) {

function handleConfirmation($request) {
// Find the action handler
$actions = Object::get_static($this->class, 'batch_actions');
$actions = Config::inst()->get($this->class, 'batch_actions', Config::FIRST_SET);
$actionClass = $actions[$request->param('BatchAction')];
$actionHandler = new $actionClass();

Expand Down Expand Up @@ -203,7 +203,7 @@ function batchActionList() {
* @return array See {@link register()} for the returned format.
*/
function batchActions() {
$actions = Object::get_static($this->class, 'batch_actions');
$actions = Config::inst()->get($this->class, 'batch_actions', Config::FIRST_SET)
if($actions) foreach($actions as $action) {
if($action['recordClass'] != $this->recordClass) unset($action);
}
Expand Down
18 changes: 9 additions & 9 deletions admin/code/CMSMenu.php
Expand Up @@ -59,9 +59,9 @@ public static function add_controller($controllerClass) {
* Return a CMSMenuItem to add the given controller to the CMSMenu
*/
protected static function menuitem_for_controller($controllerClass) {
$urlBase = Object::get_static($controllerClass, 'url_base');
$urlSegment = Object::get_static($controllerClass, 'url_segment');
$menuPriority = Object::get_static($controllerClass, 'menu_priority');
$urlBase = Config::inst()->get($controllerClass, 'url_base', Config::FIRST_SET);
$urlSegment = Config::inst()->get($controllerClass, 'url_segment', Config::FIRST_SET);
$menuPriority = Config::inst()->get($controllerClass, 'menu_priority', Config::FIRST_SET);

// Don't add menu items defined the old way
if($urlSegment === null && $controllerClass != "CMSMain") return;
Expand All @@ -81,12 +81,12 @@ protected static function menuitem_for_controller($controllerClass) {
* Add the appropriate Director rules for the given controller.
*/
protected static function add_director_rule_for_controller($controllerClass) {
$urlBase = Object::get_static($controllerClass, 'url_base');
$urlSegment = Object::get_static($controllerClass, 'url_segment');
$urlRule = Object::get_static($controllerClass, 'url_rule');
$urlPriority = Object::get_static($controllerClass, 'url_priority');
if($urlSegment || $controllerClass == "CMSMain") {
$urlBase = Config::inst()->get($controllerClass, 'url_base', Config::FIRST_SET);
$urlSegment = Config::inst()->get($controllerClass, 'url_segment', Config::FIRST_SET);
$urlRule = Config::inst()->get($controllerClass, 'url_rule', Config::FIRST_SET);
$urlPriority = Config::inst()->get($controllerClass, 'url_priority', Config::FIRST_SET);

if($urlSegment || $controllerClass == 'CMSMain') {
$link = Controller::join_links($urlBase, $urlSegment) . '/';

// Make director rule
Expand Down
4 changes: 2 additions & 2 deletions control/RequestHandler.php
Expand Up @@ -138,8 +138,8 @@ function handleRequest(SS_HTTPRequest $request, DataModel $model) {

// We stop after RequestHandler; in other words, at ViewableData
while($handlerClass && $handlerClass != 'ViewableData') {
$urlHandlers = Object::get_static($handlerClass, 'url_handlers');
$urlHandlers = Config::inst()->get($handlerClass, 'url_handlers', Config::FIRST_SET);

if($urlHandlers) foreach($urlHandlers as $rule => $action) {
if(isset($_REQUEST['debug_request'])) Debug::message("Testing '$rule' with '" . $request->remaining() . "' on $this->class");
if($params = $request->match($rule, true)) {
Expand Down
22 changes: 7 additions & 15 deletions core/Object.php
Expand Up @@ -333,17 +333,14 @@ public static function static_lookup($class, $name, $default = null) {
* If any extra values are discovered, they are then merged with the default PHP static values, or in some cases
* completely replace the default PHP static when you set $replace = true, and do not define extra data on any child
* classes
*
* Note that from SilverStripe 2.3.2, Object::get_static() can only be used to get public
* static variables, not protected ones.
*
* @param string $class
* @param string $name the property name
* @param bool $uncached if set to TRUE, force a regeneration of the static cache
* @return mixed
*/
public static function get_static($class, $name, $uncached = false) {
Deprecation::notice('3.1.0', 'combined_static is deprecated, replaced by Config#get');
Deprecation::notice('3.1.0', 'get_static is deprecated, replaced by Config#get');
return Config::inst()->get($class, $name, Config::FIRST_SET);
}

Expand All @@ -355,17 +352,12 @@ public static function get_static($class, $name, $uncached = false) {
* @param mixed $value
*/
public static function set_static($class, $name, $value) {
Deprecation::notice('3.1.0', 'set_static is deprecated, replaced by Config#set');
Deprecation::notice('3.1.0', 'set_static is deprecated, replaced by Config#update');
Config::inst()->update($class, $name, $value);
}

/**
* Get an uninherited static variable - a variable that is explicity set in this class, and not in the parent class.
*
* Note that from SilverStripe 2.3.2, Object::uninherited_static() can only be used to get public
* static variables, not protected ones.
*
* @todo Recursively filter out parent statics, currently only inspects the parent class
*
* @param string $class
* @param string $name
Expand Down Expand Up @@ -401,7 +393,7 @@ public static function combined_static($class, $name, $ceiling = false) {
* @param bool $replace replace existing static vars
*/
public static function addStaticVars($class, $properties, $replace = false) {
Deprecation::notice('3.1.0', 'addStaticVars is deprecated, replaced by Config#set');
Deprecation::notice('3.1.0', 'addStaticVars is deprecated, replaced by Config#update');
foreach($properties as $prop => $value) self::add_static_var($class, $prop, $value, $replace);
}

Expand All @@ -422,7 +414,7 @@ public static function addStaticVars($class, $properties, $replace = false) {
* @param bool $replace completely replace existing static values
*/
public static function add_static_var($class, $name, $value, $replace = false) {
Deprecation::notice('3.1.0', 'add_static_var is deprecated, replaced by Config#set');
Deprecation::notice('3.1.0', 'add_static_var is deprecated, replaced by Config#remove and Config#update');

if ($replace) Config::inst()->remove($class, $name);
Config::inst()->update($class, $name, $value);
Expand Down Expand Up @@ -783,21 +775,21 @@ protected function createMethod($method, $code) {
* @see Object::get_static()
*/
public function stat($name, $uncached = false) {
return self::get_static(($this->class ? $this->class : get_class($this)), $name, $uncached);
return Config::inst()->get(($this->class ? $this->class : get_class($this)), $name, Config::FIRST_SET);
}

/**
* @see Object::set_static()
*/
public function set_stat($name, $value) {
self::set_static(($this->class ? $this->class : get_class($this)), $name, $value);
Config::inst()->update(($this->class ? $this->class : get_class($this)), $name, $value);
}

/**
* @see Object::uninherited_static()
*/
public function uninherited($name) {
return self::uninherited_static(($this->class ? $this->class : get_class($this)), $name);
return Config::inst()->get(($this->class ? $this->class : get_class($this)), $name, Config::UNINHERITED);
}

/**
Expand Down
2 changes: 1 addition & 1 deletion dev/Deprecation.php
Expand Up @@ -145,7 +145,7 @@ public static function notice($atVersion, $string = '') {

// Get the level to raise the notice as
$level = self::$notice_level;
if (!$level) $level = defined('E_USER_DEPRECATED') ? E_USER_DEPRECATED : E_USER_NOTICE;
if (!$level) $level = E_USER_DEPRECATED;

// Then raise the notice
if(substr($string,-1) != '.') $string .= ".";
Expand Down
6 changes: 3 additions & 3 deletions dev/SapphireTest.php
Expand Up @@ -332,8 +332,8 @@ protected function idFromFixture($className, $identifier) {
$match = $fixture->idFromFixture($className, $identifier);
if($match) return $match;
}
$fixtureFiles = Object::get_static(get_class($this), 'fixture_file');

$fixtureFiles = Config::inst()->get(get_class($this), 'fixture_file', Config::FIRST_SET);
user_error(sprintf(
"Couldn't find object '%s' (class: %s) in files %s",
$identifier,
Expand Down Expand Up @@ -381,7 +381,7 @@ protected function objFromFixture($className, $identifier) {
if($match) return $match;
}

$fixtureFiles = Object::get_static(get_class($this), 'fixture_file');
$fixtureFiles = Config::inst()->get(get_class($this), 'fixture_file', Config::FIRST_SET);
user_error(sprintf(
"Couldn't find object '%s' (class: %s) in files %s",
$identifier,
Expand Down
3 changes: 1 addition & 2 deletions model/DataObject.php
Expand Up @@ -2229,10 +2229,9 @@ function can($perm, $member = null) {
}
}

$this->set_uninherited('permissionCache', $permissionCache);
Config::inst()->update($this->class, 'permissionCache', $permissionCache);
}


if($permissionCache[$memberID][$perm]) {
return in_array($this->ID, $permissionCache[$memberID][$perm]);
}
Expand Down
2 changes: 1 addition & 1 deletion model/Versioned.php
Expand Up @@ -308,7 +308,7 @@ function augmentDatabase() {
else $table = $classTable;

if($fields = DataObject::database_fields($this->owner->class)) {
$options = Object::get_static($this->owner->class, 'create_table_options');
$options = Config::inst()->get($this->owner->class, 'create_table_options', Config::FIRST_SET);
$indexes = $this->owner->databaseIndexes();
if ($suffix && ($ext = $this->owner->getExtensionInstance($allSuffixes[$suffix]))) {
if (!$ext->isVersionedTable($table)) continue;
Expand Down
2 changes: 1 addition & 1 deletion view/ViewableData.php
Expand Up @@ -243,7 +243,7 @@ public function castingHelper($field) {
return $fieldSpec;
}

$specs = Object::combined_static(get_class($this), 'casting');
$specs = Config::inst()->get(get_class($this), 'casting');
if(isset($specs[$field])) return $specs[$field];

if($this->failover) return $this->failover->castingHelper($field);
Expand Down

0 comments on commit 4c6be29

Please sign in to comment.