ENH PHP 8.1 compatibility

This commit is contained in:
Steve Boyd 2022-04-13 10:22:29 +12:00
parent 3d6e44aaa1
commit e7f9e60352
11 changed files with 35 additions and 27 deletions

View File

@ -100,7 +100,7 @@ class CommentAdmin extends LeftAndMain implements PermissionProvider
_t( _t(
__CLASS__.'.NewComments', __CLASS__.'.NewComments',
'New ({count})', 'New ({count})',
['count' => count($newComments)] ['count' => count($newComments ?? [])]
), ),
$newGrid $newGrid
), ),
@ -109,7 +109,7 @@ class CommentAdmin extends LeftAndMain implements PermissionProvider
_t( _t(
__CLASS__.'.ApprovedComments', __CLASS__.'.ApprovedComments',
'Approved ({count})', 'Approved ({count})',
['count' => count($approvedComments)] ['count' => count($approvedComments ?? [])]
), ),
$approvedGrid $approvedGrid
), ),
@ -118,7 +118,7 @@ class CommentAdmin extends LeftAndMain implements PermissionProvider
_t( _t(
__CLASS__.'.SpamComments', __CLASS__.'.SpamComments',
'Spam ({count})', 'Spam ({count})',
['count' => count($spamComments)] ['count' => count($spamComments ?? [])]
), ),
$spamGrid $spamGrid
) )

View File

@ -19,7 +19,7 @@ class CommentsGridFieldAction implements GridField_ColumnProvider, GridField_Act
*/ */
public function augmentColumns($gridField, &$columns) public function augmentColumns($gridField, &$columns)
{ {
if (!in_array('Actions', $columns)) { if (!in_array('Actions', $columns ?? [])) {
$columns[] = 'Actions'; $columns[] = 'Actions';
} }
} }

View File

@ -20,7 +20,7 @@ class CommentsGridFieldApproveAction implements
*/ */
public function augmentColumns($gridField, &$columns) public function augmentColumns($gridField, &$columns)
{ {
if (!in_array('Actions', $columns)) { if (!in_array('Actions', $columns ?? [])) {
$columns[] = 'Actions'; $columns[] = 'Actions';
} }
} }

View File

@ -20,7 +20,7 @@ class CommentsGridFieldSpamAction implements
*/ */
public function augmentColumns($gridField, &$columns) public function augmentColumns($gridField, &$columns)
{ {
if (!in_array('Actions', $columns)) { if (!in_array('Actions', $columns ?? [])) {
$columns[] = 'Actions'; $columns[] = 'Actions';
} }
} }

View File

@ -115,7 +115,7 @@ class CommentingController extends Controller
*/ */
public function encodeClassName($input) public function encodeClassName($input)
{ {
return str_replace('\\', '-', $input); return str_replace('\\', '-', $input ?? '');
} }
/** /**
@ -126,7 +126,7 @@ class CommentingController extends Controller
*/ */
public function decodeClassName($input) public function decodeClassName($input)
{ {
return str_replace('-', '\\', $input); return str_replace('-', '\\', $input ?? '');
} }
/** /**

View File

@ -583,9 +583,9 @@ class CommentsExtension extends DataExtension
CommentsGridFieldConfig::create() CommentsGridFieldConfig::create()
); );
$newCount = '(' . count($newComments) . ')'; $newCount = '(' . count($newComments ?? []) . ')';
$approvedCount = '(' . count($approvedComments) . ')'; $approvedCount = '(' . count($approvedComments ?? []) . ')';
$spamCount = '(' . count($spamComments) . ')'; $spamCount = '(' . count($spamComments ?? []) . ')';
if ($fields->hasTabSet()) { if ($fields->hasTabSet()) {
$tabs = TabSet::create( $tabs = TabSet::create(

View File

@ -145,8 +145,8 @@ class CommentForm extends Form
} }
// load user data from previous form request back into form. // load user data from previous form request back into form.
if (array_key_exists('UserData', $data)) { if (array_key_exists('UserData', $data ?? [])) {
$formData = json_decode($data['UserData'], true); $formData = json_decode($data['UserData'] ?? '', true);
$this->loadDataFrom([ $this->loadDataFrom([
'Name' => isset($formData['Name']) ? $formData['Name'] : '', 'Name' => isset($formData['Name']) ? $formData['Name'] : '',
@ -156,7 +156,7 @@ class CommentForm extends Form
} }
// allow previous value to fill if comment // allow previous value to fill if comment
if (array_key_exists('Comment', $data)) { if (array_key_exists('Comment', $data ?? [])) {
$prevComment = $data['Comment']; $prevComment = $data['Comment'];
if ($prevComment && $prevComment != '') { if ($prevComment && $prevComment != '') {

View File

@ -608,7 +608,7 @@ class Comment extends DataObject
*/ */
public function getTitle() public function getTitle()
{ {
$title = sprintf(_t(__CLASS__ . '.COMMENTBY', 'Comment by %s', 'Name'), $this->getAuthorName()); $title = sprintf(_t(__CLASS__ . '.COMMENTBY', 'Comment by %s', 'Name') ?? '', $this->getAuthorName());
if ($parent = $this->Parent()) { if ($parent = $this->Parent()) {
if ($parent->Title) { if ($parent->Title) {
@ -726,7 +726,7 @@ class Comment extends DataObject
} }
// This injector cannot be set unless the 'p' element is allowed // This injector cannot be set unless the 'p' element is allowed
if (in_array('p', $allowedElements)) { if (in_array('p', $allowedElements ?? [])) {
$config->set('AutoFormat.AutoParagraph', true); $config->set('AutoFormat.AutoParagraph', true);
} }
@ -747,7 +747,7 @@ class Comment extends DataObject
$use_gravatar = $this->getOption('use_gravatar'); $use_gravatar = $this->getOption('use_gravatar');
if ($use_gravatar) { if ($use_gravatar) {
$gravatar = 'https://www.gravatar.com/avatar/' . md5(strtolower(trim($this->Email))); $gravatar = 'https://www.gravatar.com/avatar/' . md5(strtolower(trim($this->Email ?? '')));
$gravatarsize = $this->getOption('gravatar_size'); $gravatarsize = $this->getOption('gravatar_size');
$gravatardefault = $this->getOption('gravatar_default'); $gravatardefault = $this->getOption('gravatar_default');
$gravatarrating = $this->getOption('gravatar_rating'); $gravatarrating = $this->getOption('gravatar_rating');

View File

@ -37,7 +37,7 @@ class SecurityToken
*/ */
protected function getToken($salt) protected function getToken($salt)
{ {
return hash_pbkdf2('sha256', $this->secret, $salt, 1000, 30); return hash_pbkdf2('sha256', $this->secret ?? '', $salt ?? '', 1000, 30);
} }
/** /**
@ -74,8 +74,8 @@ class SecurityToken
$url, $url,
sprintf( sprintf(
'?t=%s&s=%s', '?t=%s&s=%s',
urlencode($token), urlencode($token ?? ''),
urlencode($salt) urlencode($salt ?? '')
) )
); );
} }
@ -113,7 +113,7 @@ class SecurityToken
$generator = new RandomGenerator(); $generator = new RandomGenerator();
$result = $generator->randomToken('sha256'); $result = $generator->randomToken('sha256');
if ($length !== null) { if ($length !== null) {
return substr($result, 0, $length); return substr($result ?? '', 0, $length);
} }
return $result; return $result;
} }

View File

@ -179,21 +179,29 @@ class CommentingControllerTest extends FunctionalTest
// comments sitewide // comments sitewide
$response = $this->get('comments/rss'); $response = $this->get('comments/rss');
$comment = "10 approved, non spam comments on page 1"; $comment = "10 approved, non spam comments on page 1";
$this->assertEquals(10, substr_count($response->getBody(), "<item>"), $comment); $this->assertEquals(10, substr_count($response->getBody() ?? '', "<item>"), $comment);
$response = $this->get('comments/rss?start=10'); $response = $this->get('comments/rss?start=10');
$this->assertEquals(4, substr_count($response->getBody(), "<item>"), "3 approved, non spam comments on page 2"); $this->assertEquals(
4,
substr_count($response->getBody() ?? '', "<item>"),
"3 approved, non spam comments on page 2"
);
// all comments on a type // all comments on a type
$response = $this->get('comments/rss/SilverStripe-Comments-Tests-Stubs-CommentableItem'); $response = $this->get('comments/rss/SilverStripe-Comments-Tests-Stubs-CommentableItem');
$this->assertEquals(10, substr_count($response->getBody(), "<item>")); $this->assertEquals(10, substr_count($response->getBody() ?? '', "<item>"));
$response = $this->get('comments/rss/SilverStripe-Comments-Tests-Stubs-CommentableItem?start=10'); $response = $this->get('comments/rss/SilverStripe-Comments-Tests-Stubs-CommentableItem?start=10');
$this->assertEquals(4, substr_count($response->getBody(), "<item>"), "3 approved, non spam comments on page 2"); $this->assertEquals(
4,
substr_count($response->getBody() ?? '', "<item>"),
"3 approved, non spam comments on page 2"
);
// specific page // specific page
$response = $this->get('comments/rss/SilverStripe-Comments-Tests-Stubs-CommentableItem/'.$item->ID); $response = $this->get('comments/rss/SilverStripe-Comments-Tests-Stubs-CommentableItem/'.$item->ID);
$this->assertEquals(1, substr_count($response->getBody(), "<item>")); $this->assertEquals(1, substr_count($response->getBody() ?? '', "<item>"));
$this->assertStringContainsString('<dc:creator>FA</dc:creator>', $response->getBody()); $this->assertStringContainsString('<dc:creator>FA</dc:creator>', $response->getBody());
// test accessing comments on a type that doesn't exist // test accessing comments on a type that doesn't exist

View File

@ -343,7 +343,7 @@ class CommentsExtensionTest extends FunctionalTest
$results[0]->Comment $results[0]->Comment
); );
$this->assertEquals(4, sizeof($results)); $this->assertEquals(4, sizeof($results ?? []));
} }
public function testUpdateModerationFields() public function testUpdateModerationFields()