MINOR Using late static binding instead of Object::create() calls

This commit is contained in:
Ingo Schommer 2012-04-04 16:59:30 +02:00
parent 6517f4496b
commit 40d73127ae
28 changed files with 73 additions and 86 deletions

View File

@ -969,7 +969,7 @@ class LeftAndMain extends Controller implements PermissionProvider {
* Return the CMS's HTML-editor toolbar * Return the CMS's HTML-editor toolbar
*/ */
public function EditorToolbar() { public function EditorToolbar() {
return Object::create('HtmlEditorField_Toolbar', $this, "EditorToolbar"); return HtmlEditorField_Toolbar::create($this, "EditorToolbar");
} }
/** /**
@ -1032,7 +1032,7 @@ class LeftAndMain extends Controller implements PermissionProvider {
'BatchActionsForm', 'BatchActionsForm',
new FieldList( new FieldList(
new HiddenField('csvIDs'), new HiddenField('csvIDs'),
Object::create('DropdownField', DropdownField::create(
'Action', 'Action',
false, false,
$actionsMap $actionsMap

View File

@ -117,7 +117,7 @@ abstract class ModelAdmin extends LeftAndMain {
$list = $this->getList(); $list = $this->getList();
$exportButton = new GridFieldExportButton(); $exportButton = new GridFieldExportButton();
$exportButton->setExportColumns($this->getExportFields()); $exportButton->setExportColumns($this->getExportFields());
$listField = Object::create('GridField', $listField = GridField::create(
$this->modelClass, $this->modelClass,
false, false,
$list, $list,
@ -180,9 +180,9 @@ abstract class ModelAdmin extends LeftAndMain {
$form = new Form($this, "SearchForm", $form = new Form($this, "SearchForm",
$context->getSearchFields(), $context->getSearchFields(),
new FieldList( new FieldList(
Object::create('ResetFormAction','clearsearch', _t('ModelAdmin.CLEAR_SEARCH','Clear Search')) ResetFormAction::create('clearsearch', _t('ModelAdmin.CLEAR_SEARCH','Clear Search'))
->setUseButtonTag(true)->addExtraClass('ss-ui-action-minor'), ->setUseButtonTag(true)->addExtraClass('ss-ui-action-minor'),
Object::create('FormAction', 'search', _t('MemberTableField.SEARCH', 'Search')) FormAction::create('search', _t('MemberTableField.SEARCH', 'Search'))
->setUseButtonTag(true) ->setUseButtonTag(true)
), ),
new RequiredFields() new RequiredFields()

View File

@ -43,7 +43,7 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider {
$record = $this->getRecord($id); $record = $this->getRecord($id);
if($record && !$record->canView()) return Security::permissionFailure($this); if($record && !$record->canView()) return Security::permissionFailure($this);
$memberList = Object::create('GridField', $memberList = GridField::create(
'Members', 'Members',
false, false,
DataList::create('Member'), DataList::create('Member'),
@ -52,8 +52,7 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider {
)->addExtraClass("members_grid"); )->addExtraClass("members_grid");
$memberListConfig->getComponentByType('GridFieldDetailForm')->setValidator(new Member_Validator()); $memberListConfig->getComponentByType('GridFieldDetailForm')->setValidator(new Member_Validator());
$groupList = Object::create('GridField', $groupList = GridField::create( 'Groups',
'Groups',
false, false,
DataList::create('Group'), DataList::create('Group'),
GridFieldConfig_RecordEditor::create() GridFieldConfig_RecordEditor::create()
@ -104,8 +103,7 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider {
// Add roles editing interface // Add roles editing interface
if(Permission::check('APPLY_ROLES')) { if(Permission::check('APPLY_ROLES')) {
$rolesField = Object::create('GridField', $rolesField = GridField::create( 'Roles',
'Roles',
false, false,
DataList::create('PermissionRole'), DataList::create('PermissionRole'),
GridFieldConfig_RecordEditor::create() GridFieldConfig_RecordEditor::create()

View File

@ -320,7 +320,7 @@ class Convert {
* @return string * @return string
*/ */
public static function raw2url($title) { public static function raw2url($title) {
$f = Object::create('URLSegmentFilter'); $f = URLSegmentFilter::create();
return $f->filter($title); return $f->filter($title);
} }
} }

View File

@ -87,7 +87,7 @@ abstract class Object {
* or calling on Object and passing the class name as the first parameter. The following * or calling on Object and passing the class name as the first parameter. The following
* are equivalent: * are equivalent:
* $list = DataList::create('SiteTree'); * $list = DataList::create('SiteTree');
* $list = Object::create('DataList', 'SiteTree'); * $list = DataList::create('SiteTree');
* *
* @param string $class the class name * @param string $class the class name
* @param mixed $arguments,... arguments to pass to the constructor * @param mixed $arguments,... arguments to pass to the constructor
@ -121,7 +121,7 @@ abstract class Object {
* are respected. * are respected.
* *
* `Object::create_from_string("Versioned('Stage','Live')")` will return the result of * `Object::create_from_string("Versioned('Stage','Live')")` will return the result of
* `Object::create('Versioned', 'Stage', 'Live);` * `Versioned::create('Stage', 'Live);`
* *
* It is designed for simple, clonable objects. The first time this method is called for a given * It is designed for simple, clonable objects. The first time this method is called for a given
* string it is cached, and clones of that object are returned. * string it is cached, and clones of that object are returned.
@ -130,7 +130,7 @@ abstract class Object {
* impossible to pass null as the firstArg argument. * impossible to pass null as the firstArg argument.
* *
* `Object::create_from_string("Varchar(50)", "MyField")` will return the result of * `Object::create_from_string("Varchar(50)", "MyField")` will return the result of
* `Object::create('Vachar', 'MyField', '50');` * `Vachar::create('MyField', '50');`
* *
* Arguments are always strings, although this is a quirk of the current implementation rather * Arguments are always strings, although this is a quirk of the current implementation rather
* than something that can be relied upon. * than something that can be relied upon.

View File

@ -92,7 +92,7 @@ class DevelopmentAdmin extends Controller {
// This action is sake-only right now. // This action is sake-only right now.
unset($actions["modules/add"]); unset($actions["modules/add"]);
$renderer = Object::create('DebugView'); $renderer = DebugView::create();
$renderer->writeHeader(); $renderer->writeHeader();
$renderer->writeInfo("Sapphire Development Tools", Director::absoluteBaseURL()); $renderer->writeInfo("Sapphire Development Tools", Director::absoluteBaseURL());
$base = Director::baseURL(); $base = Director::baseURL();
@ -116,33 +116,33 @@ class DevelopmentAdmin extends Controller {
} }
function tests($request) { function tests($request) {
return Object::create('TestRunner'); return TestRunner::create();
} }
function jstests($request) { function jstests($request) {
return Object::create('JSTestRunner'); return JSTestRunner::create();
} }
function tasks() { function tasks() {
return Object::create('TaskRunner'); return TaskRunner::create();
} }
function viewmodel() { function viewmodel() {
return Object::create('ModelViewer'); return ModelViewer::create();
} }
function build($request) { function build($request) {
if(Director::is_cli()) { if(Director::is_cli()) {
$da = Object::create('DatabaseAdmin'); $da = DatabaseAdmin::create();
return $da->handleRequest($request, $this->model); return $da->handleRequest($request, $this->model);
} else { } else {
$renderer = Object::create('DebugView'); $renderer = DebugView::create();
$renderer->writeHeader(); $renderer->writeHeader();
$renderer->writeInfo("Environment Builder", Director::absoluteBaseURL()); $renderer->writeInfo("Environment Builder", Director::absoluteBaseURL());
echo "<div style=\"margin: 0 2em\">"; echo "<div style=\"margin: 0 2em\">";
echo "<div class=\"status pending\"><h2 class='buildProgress'>Database is building.... Check below for any errors</h2><h2 class='buildCompleted'>Database has been built successfully</h2></div>"; echo "<div class=\"status pending\"><h2 class='buildProgress'>Database is building.... Check below for any errors</h2><h2 class='buildCompleted'>Database has been built successfully</h2></div>";
$da = Object::create('DatabaseAdmin'); $da = DatabaseAdmin::create();
return $da->handleRequest($request, $this->model); return $da->handleRequest($request, $this->model);
echo "</div>"; echo "</div>";
@ -157,10 +157,10 @@ class DevelopmentAdmin extends Controller {
* 'build/defaults' => 'buildDefaults', * 'build/defaults' => 'buildDefaults',
*/ */
function buildDefaults() { function buildDefaults() {
$da = Object::create('DatabaseAdmin'); $da = DatabaseAdmin::create();
if (!Director::is_cli()) { if (!Director::is_cli()) {
$renderer = Object::create('DebugView'); $renderer = DebugView::create();
$renderer->writeHeader(); $renderer->writeHeader();
$renderer->writeInfo("Defaults Builder", Director::absoluteBaseURL()); $renderer->writeInfo("Defaults Builder", Director::absoluteBaseURL());
echo "<div style=\"margin: 0 2em\">"; echo "<div style=\"margin: 0 2em\">";
@ -189,6 +189,6 @@ class DevelopmentAdmin extends Controller {
} }
function viewcode($request) { function viewcode($request) {
return Object::create('CodeViewer'); return CodeViewer::create();
} }
} }

View File

@ -93,7 +93,7 @@ of the CMS you have to take care of instanciation yourself:
// File: mysite/code/MyController.php // File: mysite/code/MyController.php
class MyObjectController extends Controller { class MyObjectController extends Controller {
public function EditorToolbar() { public function EditorToolbar() {
return Object::create('HtmlEditorField_Toolbar', $this, "EditorToolbar"); return HtmlEditorField_Toolbar::create($this, "EditorToolbar");
} }
} }

View File

@ -213,8 +213,8 @@ PHP:
public function search($request) { public function search($request) {
$htmlTitle = '<p>Your results for:' . Convert::raw2xml($request->getVar('Query')) . '</p>'; $htmlTitle = '<p>Your results for:' . Convert::raw2xml($request->getVar('Query')) . '</p>';
return $this->customise(array( return $this->customise(array(
'Query' => DBField::create('Text', $request->getVar('Query')), 'Query' => Text::create($request->getVar('Query')),
'HTMLTitle' => DBField::create('HTMLText', $htmlTitle) 'HTMLTitle' => HTMLText::create($htmlTitle)
)); ));
} }
} }
@ -243,7 +243,7 @@ PHP:
$rssRelativeLink = "/rss?Query=" . urlencode($_REQUEST['query']) . "&sortOrder=asc"; $rssRelativeLink = "/rss?Query=" . urlencode($_REQUEST['query']) . "&sortOrder=asc";
$rssLink = Controller::join_links($this->Link(), $rssRelativeLink); $rssLink = Controller::join_links($this->Link(), $rssRelativeLink);
return $this->customise(array( return $this->customise(array(
"RSSLink" => DBField::create("Text", $rssLink), "RSSLink" => Text::create($rssLink),
)); ));
} }
} }

View File

@ -349,12 +349,12 @@ class File extends DataObject {
} }
//create the file attributes in a FieldGroup //create the file attributes in a FieldGroup
$filePreview = FormField::create('CompositeField', $filePreview = CompositeField::create(
FormField::create('CompositeField', CompositeField::create(
$previewField $previewField
)->setName("FilePreviewImage")->addExtraClass('cms-file-info-preview'), )->setName("FilePreviewImage")->addExtraClass('cms-file-info-preview'),
FormField::create('CompositeField', CompositeField::create(
FormField::create('CompositeField', CompositeField::create(
new ReadonlyField("FileType", _t('AssetTableField.TYPE','File type') . ':'), new ReadonlyField("FileType", _t('AssetTableField.TYPE','File type') . ':'),
new ReadonlyField("Size", _t('AssetTableField.SIZE','File size') . ':', $this->getSize()), new ReadonlyField("Size", _t('AssetTableField.SIZE','File size') . ':', $this->getSize()),
$urlField = new ReadonlyField('ClickableURL', _t('AssetTableField.URL','URL'), $urlField = new ReadonlyField('ClickableURL', _t('AssetTableField.URL','URL'),
@ -566,7 +566,7 @@ class File extends DataObject {
if(!$name) $name = $this->Title; if(!$name) $name = $this->Title;
// Fix illegal characters // Fix illegal characters
$filter = Object::create('FileNameFilter'); $filter = FileNameFilter::create();
$name = $filter->filter($name); $name = $filter->filter($name);
// We might have just turned it blank, so check again. // We might have just turned it blank, so check again.

View File

@ -26,7 +26,7 @@
* *
* See {@link URLSegmentFilter} for a more generic implementation. * See {@link URLSegmentFilter} for a more generic implementation.
*/ */
class FileNameFilter { class FileNameFilter extends Object {
/** /**
* @var Boolean * @var Boolean
@ -100,7 +100,7 @@ class FileNameFilter {
*/ */
function getTransliterator() { function getTransliterator() {
if($this->transliterator === null && self::$default_use_transliterator) { if($this->transliterator === null && self::$default_use_transliterator) {
$this->transliterator = Object::create('Transliterator'); $this->transliterator = Transliterator::create();
} }
return $this->transliterator; return $this->transliterator;
} }

View File

@ -232,7 +232,7 @@ class Folder extends File {
// $parentFolder = Folder::findOrMake("Uploads"); // $parentFolder = Folder::findOrMake("Uploads");
// Generate default filename // Generate default filename
$nameFilter = Object::create('FileNameFilter'); $nameFilter = FileNameFilter::create();
$file = $nameFilter->filter($tmpFile['name']); $file = $nameFilter->filter($tmpFile['name']);
while($file[0] == '_' || $file[0] == '.') { while($file[0] == '_' || $file[0] == '.') {
$file = substr($file, 1); $file = substr($file, 1);

View File

@ -131,7 +131,7 @@ class Upload extends Controller {
} }
// Generate default filename // Generate default filename
$nameFilter = Object::create('FileNameFilter'); $nameFilter = FileNameFilter::create();
$file = $nameFilter->filter($tmpFile['name']); $file = $nameFilter->filter($tmpFile['name']);
$fileName = basename($file); $fileName = basename($file);

View File

@ -816,7 +816,7 @@ class ComplexTableField_Popup extends Form {
$actions = new FieldList(); $actions = new FieldList();
if(!$readonly) { if(!$readonly) {
$actions->push( $actions->push(
Object::create('FormAction', FormAction::create(
"saveComplexTableField", "saveComplexTableField",
_t('CMSMain.SAVE', 'Save') _t('CMSMain.SAVE', 'Save')
) )

View File

@ -112,7 +112,7 @@ class DateField extends TextField {
function FieldHolder() { function FieldHolder() {
// TODO Replace with properly extensible view helper system // TODO Replace with properly extensible view helper system
$d = Object::create('DateField_View_JQuery', $this); $d = DateField_View_JQuery::create($this);
$d->onBeforeRender(); $d->onBeforeRender();
$html = parent::FieldHolder(); $html = parent::FieldHolder();
$html = $d->onAfterRender($html); $html = $d->onAfterRender($html);
@ -459,7 +459,7 @@ class DateField_Disabled extends DateField {
* @package sapphire * @package sapphire
* @subpackage forms * @subpackage forms
*/ */
class DateField_View_JQuery { class DateField_View_JQuery extends Object {
protected $field; protected $field;

View File

@ -57,8 +57,8 @@ class DatetimeField extends FormField {
function __construct($name, $title = null, $value = ""){ function __construct($name, $title = null, $value = ""){
$this->config = self::$default_config; $this->config = self::$default_config;
$this->dateField = Object::create('DateField', $name . '[date]', false); $this->dateField = DateField::create($name . '[date]', false);
$this->timeField = Object::create('TimeField', $name . '[time]', false); $this->timeField = TimeField::create($name . '[time]', false);
$this->timezoneField = new HiddenField($this->getName() . '[timezone]'); $this->timezoneField = new HiddenField($this->getName() . '[timezone]');
parent::__construct($name, $title, $value); parent::__construct($name, $title, $value);

View File

@ -322,7 +322,7 @@ class HtmlEditorField_Toolbar extends RequestHandler {
) )
), ),
new FieldList( new FieldList(
Object::create('ResetFormAction', 'remove', _t('HtmlEditorField.BUTTONREMOVELINK', 'Remove link')) ResetFormAction::create('remove', _t('HtmlEditorField.BUTTONREMOVELINK', 'Remove link'))
->addExtraClass('ss-ui-action-destructive') ->addExtraClass('ss-ui-action-destructive')
->setUseButtonTag(true) ->setUseButtonTag(true)
, ,

View File

@ -407,7 +407,7 @@ class UploadField extends FileField {
* @return UploadField_ItemHandler * @return UploadField_ItemHandler
*/ */
public function getItemHandler($itemID) { public function getItemHandler($itemID) {
return Object::create('UploadField_ItemHandler', $this, $itemID); return UploadField_ItemHandler::create($this, $itemID);
} }
/** /**
@ -415,7 +415,7 @@ class UploadField extends FileField {
* @return UploadField_ItemHandler * @return UploadField_ItemHandler
*/ */
public function handleSelect(SS_HTTPRequest $request) { public function handleSelect(SS_HTTPRequest $request) {
return Object::create('UploadField_SelectHandler', $this, $this->folderName); return UploadField_SelectHandler::create($this, $this->folderName);
} }
/** /**

View File

@ -98,7 +98,7 @@ class GridFieldDeleteAction implements GridField_ColumnProvider, GridField_Actio
*/ */
public function getColumnContent($gridField, $record, $columnName) { public function getColumnContent($gridField, $record, $columnName) {
if($this->removeRelation) { if($this->removeRelation) {
$field = Object::create('GridField_FormAction', $gridField, 'UnlinkRelation'.$record->ID, false, "unlinkrelation", array('RecordID' => $record->ID)) $field = GridField_FormAction::create($gridField, 'UnlinkRelation'.$record->ID, false, "unlinkrelation", array('RecordID' => $record->ID))
->addExtraClass('gridfield-button-unlink') ->addExtraClass('gridfield-button-unlink')
->setAttribute('title', _t('GridAction.UnlinkRelation', "Unlink")) ->setAttribute('title', _t('GridAction.UnlinkRelation', "Unlink"))
->setAttribute('data-icon', 'chain--minus'); ->setAttribute('data-icon', 'chain--minus');
@ -106,7 +106,7 @@ class GridFieldDeleteAction implements GridField_ColumnProvider, GridField_Actio
if(!$record->canDelete()) { if(!$record->canDelete()) {
return; return;
} }
$field = Object::create('GridField_FormAction', $gridField, 'DeleteRecord'.$record->ID, false, "deleterecord", array('RecordID' => $record->ID)) $field = GridField_FormAction::create($gridField, 'DeleteRecord'.$record->ID, false, "deleterecord", array('RecordID' => $record->ID))
->addExtraClass('gridfield-button-delete') ->addExtraClass('gridfield-button-delete')
->setAttribute('title', _t('GridAction.Delete', "Delete")) ->setAttribute('title', _t('GridAction.Delete', "Delete"))
->setAttribute('data-icon', 'decline'); ->setAttribute('data-icon', 'decline');

View File

@ -123,11 +123,11 @@ class GridFieldFilterHeader implements GridField_HTMLProvider, GridField_DataMan
$field = new FieldGroup( $field = new FieldGroup(
$field, $field,
Object::create('GridField_FormAction', $gridField, 'filter', false, 'filter', null) GridField_FormAction::create($gridField, 'filter', false, 'filter', null)
->addExtraClass('ss-gridfield-button-filter') ->addExtraClass('ss-gridfield-button-filter')
->setAttribute('title', _t('GridField.Filter', "Filter")) ->setAttribute('title', _t('GridField.Filter', "Filter"))
, ,
Object::create('GridField_FormAction', $gridField, 'reset', false, 'reset', null) GridField_FormAction::create($gridField, 'reset', false, 'reset', null)
->addExtraClass('ss-gridfield-button-reset') ->addExtraClass('ss-gridfield-button-reset')
->setAttribute('title', _t('GridField.ResetFilter', "Reset")) ->setAttribute('title', _t('GridField.ResetFilter', "Reset"))
); );

View File

@ -153,7 +153,7 @@ class Image extends File {
} }
// Generate default filename // Generate default filename
$nameFilter = Object::create('FileNameFilter'); $nameFilter = FileNameFilter::create();
$file = $nameFilter->filter($tmpFile['name']); $file = $nameFilter->filter($tmpFile['name']);
if(!$file) $file = "file.jpg"; if(!$file) $file = "file.jpg";

View File

@ -13,17 +13,13 @@
* @package sapphire * @package sapphire
* @subpackage model * @subpackage model
*/ */
class Transliterator { class Transliterator extends Object {
/** /**
* Allow the use of iconv() to perform transliteration. Set to false to disable. * Allow the use of iconv() to perform transliteration. Set to false to disable.
* Even if this variable is true, iconv() won't be used if it's not installed. * Even if this variable is true, iconv() won't be used if it's not installed.
*/ */
static $use_iconv = false; static $use_iconv = false;
function __construct() {
// A constructor is necessary for Object::create() to work
}
/** /**
* Convert the given utf8 string to a safe ASCII source * Convert the given utf8 string to a safe ASCII source
*/ */

View File

@ -14,12 +14,7 @@
* *
* See {@link FileNameFilter} for similar implementation for filesystem-based URLs. * See {@link FileNameFilter} for similar implementation for filesystem-based URLs.
*/ */
class URLSegmentFilter { class URLSegmentFilter extends Object {
/**
* Necessary to support {@link Object::create()}
*/
function __construct() {}
/** /**
* @var Boolean * @var Boolean
@ -104,7 +99,7 @@ class URLSegmentFilter {
*/ */
function getTransliterator() { function getTransliterator() {
if($this->transliterator === null && self::$default_use_transliterator) { if($this->transliterator === null && self::$default_use_transliterator) {
$this->transliterator = Object::create('Transliterator'); $this->transliterator = Transliterator::create();
} }
return $this->transliterator; return $this->transliterator;
} }

View File

@ -66,8 +66,7 @@ class Group extends DataObject {
new TabSet("Root", new TabSet("Root",
new Tab('Members', _t('SecurityAdmin.MEMBERS', 'Members'), new Tab('Members', _t('SecurityAdmin.MEMBERS', 'Members'),
new TextField("Title", $this->fieldLabel('Title')), new TextField("Title", $this->fieldLabel('Title')),
$parentidfield = Object::create('DropdownField', $parentidfield = DropdownField::create( 'ParentID',
'ParentID',
$this->fieldLabel('Parent'), $this->fieldLabel('Parent'),
DataList::create('Group')->exclude('ID', $this->ID)->map('ID', 'Breadcrumbs') DataList::create('Group')->exclude('ID', $this->ID)->map('ID', 'Breadcrumbs')
)->setEmptyString(' ') )->setEmptyString(' ')
@ -100,7 +99,7 @@ class Group extends DataObject {
$config->getComponentByType('GridFieldAddExistingAutocompleter') $config->getComponentByType('GridFieldAddExistingAutocompleter')
->setResultsFormat('$Title ($Email)')->setSearchFields(array('FirstName', 'Surname', 'Email')); ->setResultsFormat('$Title ($Email)')->setSearchFields(array('FirstName', 'Surname', 'Email'));
$config->getComponentByType('GridFieldDetailForm')->setValidator(new Member_Validator()); $config->getComponentByType('GridFieldDetailForm')->setValidator(new Member_Validator());
$memberList = Object::create('GridField', 'Members',false, $this->Members(), $config)->addExtraClass('members_grid'); $memberList = GridField::create('Members',false, $this->Members(), $config)->addExtraClass('members_grid');
// @todo Implement permission checking on GridField // @todo Implement permission checking on GridField
//$memberList->setPermissions(array('edit', 'delete', 'export', 'add', 'inlineadd')); //$memberList->setPermissions(array('edit', 'delete', 'export', 'add', 'inlineadd'));
$fields->addFieldToTab('Root.Members', $memberList); $fields->addFieldToTab('Root.Members', $memberList);
@ -164,7 +163,7 @@ class Group extends DataObject {
$inheritedRoleIDs = array(); $inheritedRoleIDs = array();
} }
$rolesField = Object::create('ListboxField', 'Roles', false, $allRoles->map()->toArray()) $rolesField = ListboxField::create('Roles', false, $allRoles->map()->toArray())
->setMultiple(true) ->setMultiple(true)
->setDefaultItems($groupRoleIDs) ->setDefaultItems($groupRoleIDs)
->setAttribute('data-placeholder', _t('Group.AddRole', 'Add a role for this group')) ->setAttribute('data-placeholder', _t('Group.AddRole', 'Add a role for this group'))

View File

@ -151,7 +151,7 @@ class Member extends DataObject implements TemplateGlobalProvider {
if(!$admins) { if(!$admins) {
// Leave 'Email' and 'Password' are not set to avoid creating // Leave 'Email' and 'Password' are not set to avoid creating
// persistent logins in the database. See Security::setDefaultAdmin(). // persistent logins in the database. See Security::setDefaultAdmin().
$admin = Object::create('Member'); $admin = Member::create();
$admin->FirstName = _t('Member.DefaultAdminFirstname', 'Default Admin'); $admin->FirstName = _t('Member.DefaultAdminFirstname', 'Default Admin');
$admin->write(); $admin->write();
$admin->Groups()->add($adminGroup); $admin->Groups()->add($adminGroup);
@ -480,13 +480,13 @@ class Member extends DataObject implements TemplateGlobalProvider {
function sendInfo($type = 'signup', $data = null) { function sendInfo($type = 'signup', $data = null) {
switch($type) { switch($type) {
case "signup": case "signup":
$e = Object::create('Member_SignupEmail'); $e = Member_SignupEmail::create();
break; break;
case "changePassword": case "changePassword":
$e = Object::create('Member_ChangePasswordEmail'); $e = Member_ChangePasswordEmail::create();
break; break;
case "forgotPassword": case "forgotPassword":
$e = Object::create('Member_ForgotPasswordEmail'); $e = Member_ForgotPasswordEmail::create();
break; break;
} }
@ -1134,7 +1134,7 @@ class Member extends DataObject implements TemplateGlobalProvider {
$groupsMap = DataList::create('Group')->map('ID', 'Breadcrumbs')->toArray(); $groupsMap = DataList::create('Group')->map('ID', 'Breadcrumbs')->toArray();
asort($groupsMap); asort($groupsMap);
$fields->addFieldToTab('Root.Main', $fields->addFieldToTab('Root.Main',
Object::create('ListboxField', 'DirectGroups', singleton('Group')->i18n_plural_name()) ListboxField::create('DirectGroups', singleton('Group')->i18n_plural_name())
->setMultiple(true)->setSource($groupsMap) ->setMultiple(true)->setSource($groupsMap)
); );

View File

@ -448,8 +448,7 @@ class Security extends Controller {
* @return Form Returns the lost password form * @return Form Returns the lost password form
*/ */
public function LostPasswordForm() { public function LostPasswordForm() {
return Object::create('MemberLoginForm', return MemberLoginForm::create( $this,
$this,
'LostPasswordForm', 'LostPasswordForm',
new FieldList( new FieldList(
new EmailField('Email', _t('Member.EMAIL', 'Email')) new EmailField('Email', _t('Member.EMAIL', 'Email'))

View File

@ -113,7 +113,7 @@ class ObjectTest extends SapphireTest {
* Tests that {@link Object::create()} correctly passes all arguments to the new object * Tests that {@link Object::create()} correctly passes all arguments to the new object
*/ */
public function testCreateWithArgs() { public function testCreateWithArgs() {
$createdObj = Object::create('ObjectTest_CreateTest', 'arg1', 'arg2', array(), null, 'arg5'); $createdObj = ObjectTest_CreateTest::create('arg1', 'arg2', array(), null, 'arg5');
$this->assertEquals($createdObj->constructArguments, array('arg1', 'arg2', array(), null, 'arg5')); $this->assertEquals($createdObj->constructArguments, array('arg1', 'arg2', array(), null, 'arg5'));
$strongObj = Object::strong_create('ObjectTest_CreateTest', 'arg1', 'arg2', array(), null, 'arg5'); $strongObj = Object::strong_create('ObjectTest_CreateTest', 'arg1', 'arg2', array(), null, 'arg5');
@ -129,18 +129,18 @@ class ObjectTest extends SapphireTest {
* Tests that {@link Object::useCustomClass()} correnctly replaces normal and strong objects * Tests that {@link Object::useCustomClass()} correnctly replaces normal and strong objects
*/ */
public function testUseCustomClass() { public function testUseCustomClass() {
$obj1 = Object::create('ObjectTest_CreateTest'); $obj1 = ObjectTest_CreateTest::create();
$this->assertTrue($obj1 instanceof ObjectTest_CreateTest); $this->assertTrue($obj1 instanceof ObjectTest_CreateTest);
Object::useCustomClass('ObjectTest_CreateTest', 'ObjectTest_CreateTest2'); Object::useCustomClass('ObjectTest_CreateTest', 'ObjectTest_CreateTest2');
$obj2 = Object::create('ObjectTest_CreateTest'); $obj2 = ObjectTest_CreateTest::create();
$this->assertTrue($obj2 instanceof ObjectTest_CreateTest2); $this->assertTrue($obj2 instanceof ObjectTest_CreateTest2);
$obj2_2 = Object::strong_create('ObjectTest_CreateTest'); $obj2_2 = Object::strong_create('ObjectTest_CreateTest');
$this->assertTrue($obj2_2 instanceof ObjectTest_CreateTest); $this->assertTrue($obj2_2 instanceof ObjectTest_CreateTest);
Object::useCustomClass('ObjectTest_CreateTest', 'ObjectTest_CreateTest3', true); Object::useCustomClass('ObjectTest_CreateTest', 'ObjectTest_CreateTest3', true);
$obj3 = Object::create('ObjectTest_CreateTest'); $obj3 = ObjectTest_CreateTest::create();
$this->assertTrue($obj3 instanceof ObjectTest_CreateTest3); $this->assertTrue($obj3 instanceof ObjectTest_CreateTest3);
$obj3_2 = Object::strong_create('ObjectTest_CreateTest'); $obj3_2 = Object::strong_create('ObjectTest_CreateTest');
@ -269,12 +269,12 @@ class ObjectTest extends SapphireTest {
} }
public function testParentClass() { public function testParentClass() {
$this->assertEquals(Object::create('ObjectTest_MyObject')->parentClass(), 'Object'); $this->assertEquals(ObjectTest_MyObject::create()->parentClass(), 'Object');
} }
public function testIsA() { public function testIsA() {
$this->assertTrue(Object::create('ObjectTest_MyObject') instanceof Object); $this->assertTrue(ObjectTest_MyObject::create() instanceof Object);
$this->assertTrue(Object::create('ObjectTest_MyObject') instanceof ObjectTest_MyObject); $this->assertTrue(ObjectTest_MyObject::create() instanceof ObjectTest_MyObject);
} }
/** /**

View File

@ -144,7 +144,7 @@ class GridFieldDetailFormTest_Person extends DataObject implements TestOnly {
$fields = parent::getCMSFields($params); $fields = parent::getCMSFields($params);
// TODO No longer necessary once FormScaffolder uses GridField // TODO No longer necessary once FormScaffolder uses GridField
$fields->replaceField('Categories', $fields->replaceField('Categories',
Object::create('GridField', 'Categories', 'Categories', GridField::create('Categories', 'Categories',
$this->Categories(), $this->Categories(),
GridFieldConfig_RelationEditor::create() GridFieldConfig_RelationEditor::create()
) )
@ -166,7 +166,7 @@ class GridFieldDetailFormTest_PeopleGroup extends DataObject implements TestOnly
$fields = parent::getCMSFields($params); $fields = parent::getCMSFields($params);
// TODO No longer necessary once FormScaffolder uses GridField // TODO No longer necessary once FormScaffolder uses GridField
$fields->replaceField('People', $fields->replaceField('People',
Object::create('GridField', 'People', 'People', GridField::create('People', 'People',
$this->People(), $this->People(),
GridFieldConfig_RelationEditor::create() GridFieldConfig_RelationEditor::create()
) )
@ -188,7 +188,7 @@ class GridFieldDetailFormTest_Category extends DataObject implements TestOnly {
$fields = parent::getCMSFields($params); $fields = parent::getCMSFields($params);
// TODO No longer necessary once FormScaffolder uses GridField // TODO No longer necessary once FormScaffolder uses GridField
$fields->replaceField('People', $fields->replaceField('People',
Object::create('GridField', 'People', 'People', GridField::create('People', 'People',
$this->People(), $this->People(),
GridFieldConfig_RelationEditor::create() GridFieldConfig_RelationEditor::create()
) )

View File

@ -717,7 +717,7 @@ class ViewableData_Debugger extends ViewableData {
// check for an extra attached data // check for an extra attached data
if($this->object->hasMethod('data') && $this->object->data() != $this->object) { if($this->object->hasMethod('data') && $this->object->data() != $this->object) {
$debug .= Object::create('ViewableData_Debugger', $this->object->data())->forTemplate(); $debug .= ViewableData_Debugger::create($this->object->data())->forTemplate();
} }
return $debug; return $debug;