API: Deprecate static methods in favour of Config API.

This commit is contained in:
Will Rossiter 2013-05-24 19:46:15 +12:00
parent fc1e7bd8a2
commit 20e3e5f019
5 changed files with 45 additions and 13 deletions

View File

@ -1,3 +1,4 @@
<?php
Deprecation::notification_version('1.0', 'staticpublisher');
define('STATIC_MODULE_DIR', dirname(__FILE__));

View File

@ -17,6 +17,7 @@ class FilesystemPublisher extends StaticPublisher {
/**
* @var string
*
* @config
*/
private static $static_base_url = null;

View File

@ -3,22 +3,27 @@
* @package staticpublisher
*/
abstract class StaticPublisher extends DataExtension {
/**
* Defines whether to output information about publishing or not. By
* default, this is off, and should be turned on when you want debugging
* (for example, in a cron task).
*
* @var boolean
*
* @config
*/
protected static $echo_progress = false;
private static $echo_progress = false;
/**
* Realtime static publishing... the second a page is saved, it is
* written to the cache.
*
* @var boolean
*
* @config
*/
public static $disable_realtime = false;
private static $disable_realtime = false;
/**
* This is the current static publishing theme, which can be set at any
@ -27,8 +32,10 @@ abstract class StaticPublisher extends DataExtension {
* _config.php
*
* @var string
*
* @config
*/
protected static $static_publisher_theme = false;
private static $static_publisher_theme = false;
/**
* @var boolean includes a timestamp at the bottom of the generated HTML
@ -50,32 +57,45 @@ abstract class StaticPublisher extends DataExtension {
abstract function unpublishPages($pages);
/**
* @deprecated
* @param string
*/
public static function set_static_publisher_theme($theme) {
self::$static_publisher_theme=$theme;
Deprecation::notice('1.0', 'Use the new config system. SSViewer.static_publisher_theme');
Config::inst()->update('StaticPublisher', 'static_publisher_theme', $theme);
}
/**
* @deprecated
*
* @return string
*/
public static function static_publisher_theme() {
return self::$static_publisher_theme;
Deprecation::notice('1.0', 'Use the new config system. SSViewer.static_publisher_theme');
return Config::inst()->get('StaticPublisher', 'static_publisher_theme');
}
/**
* @deprecated
*
* @return boolean
*/
public static function echo_progress() {
return (boolean)self::$echo_progress;
Deprecation::notice('1.0', 'Use the new config system. SSViewer.static_publisher_theme');
return Config::inst()->get('StaticPublisher', 'echo_progress');
}
/**
* Either turns on (boolean true) or off (boolean false) the progress indicators.
* @see StaticPublisher::$echo_progress
* @deprecated
*
*/
public static function set_echo_progress($progress) {
self::$echo_progress = (boolean)$progress;
Deprecation::notice('1.0', 'Use the new config system. SSViewer.static_publisher_theme');
Config::inst()->get('StaticPublisher', 'echo_progress', $progress);
}
/**

View File

@ -5,8 +5,8 @@
class RebuildStaticCacheTask extends BuildTask {
public function run($request) {
StaticPublisher::set_echo_progress(true);
Config::inst()->update('StaticPublisher', 'echo_progress', true);
$page = singleton('Page');
if(!$page->hasMethod('allPagesToCache')) {

View File

@ -1,4 +1,5 @@
<?php
/**
* Tests for the {@link FilesystemPublisher} class.
*
@ -122,6 +123,7 @@ class FilesystemPublisherTest extends SapphireTest {
*/
public function testHasCalledParentConstructor() {
$fsp = new FilesystemPublisher('.', '.html');
$this->assertEquals($fsp->class, 'FilesystemPublisher');
}
@ -146,7 +148,7 @@ class FilesystemPublisherTest extends SapphireTest {
//We can set the static_publishing theme to something completely different:
//Static publishing will use this one instead of the current_custom_theme if it is not false
StaticPublisher::set_static_publisher_theme('otherTheme');
Config::inst()->update('StaticPublisher', 'static_publisher_theme', 'otherTheme');
$current_theme = StaticPublisher::static_publisher_theme();
$this->assertNotEquals($current_theme, $default_theme, 'The static publisher theme overrides the custom theme');
@ -166,6 +168,7 @@ class FilesystemPublisherTest extends SapphireTest {
$l2_1->URLSegment = strtolower(__CLASS__).'-level-2-1';
$l2_1->ParentID = $l1->ID;
$l2_1->write();
$l2_1->doPublish();
$response = Director::test($l2_1->AbsoluteLink());
@ -175,12 +178,16 @@ class FilesystemPublisherTest extends SapphireTest {
$l2_2->URLSegment = strtolower(__CLASS__).'-level-2-2';
$l2_2->ParentID = $l1->ID;
$l2_2->write();
$l2_2->doPublish();
$l2_2->doPublish();
$response = Director::test($l2_2->AbsoluteLink());
$this->assertEquals(trim($response->getBody()), "linkcurrent", "current page is level 2-2");
}
}
/**
* @package staticpublisher
*/
class StaticPublisherTestPage extends Page implements TestOnly {
private static $allowed_children = array(
@ -197,6 +204,9 @@ class StaticPublisherTestPage extends Page implements TestOnly {
}
}
/**
* @package staticpublisher
*/
class StaticPublisherTestPage_Controller extends Page_Controller {
}