Update code for PHP 5.5

[MAILPOET-1496]
This commit is contained in:
Pavel Dohnal
2018-08-23 11:25:52 +02:00
parent 44d4613ef4
commit ae0e03d2f3
14 changed files with 23 additions and 96 deletions

View File

@ -288,7 +288,7 @@ class RoboFile extends \Robo\Tasks {
->taskExec(
'./vendor/bin/phpcs '.
'--standard=./tasks/code_sniffer/MailPoet '.
'--runtime-set testVersion 5.4-7.2 '.
'--runtime-set testVersion 5.5-7.2 '.
'--ignore=./lib/Util/Sudzy/*,./lib/Util/CSS.php,./lib/Util/XLSXWriter.php,'.
'./lib/Util/pQuery/*,./lib/Config/PopulatorData/Templates/* '.
'lib/ '.
@ -297,7 +297,7 @@ class RoboFile extends \Robo\Tasks {
->taskExec(
'./vendor/bin/phpcs '.
'--standard=./tasks/code_sniffer/MailPoet '.
'--runtime-set testVersion 5.4-7.2 '.
'--runtime-set testVersion 5.5-7.2 '.
'--ignore=./tests/unit/_bootstrap.php '.
'tests/unit/ '.
$severityFlag

View File

@ -10,7 +10,7 @@
}
],
"require": {
"php": ">=5.4",
"php": ">=5.5",
"twig/twig": "1.*",
"cerdic/css-tidy": "^1.5.5",
"tburry/pquery": "^1.1.1",

View File

@ -65,7 +65,7 @@ class Bounce extends SimpleWorker {
->whereIn('id', $subscribers_to_process_ids)
->whereNull('deleted_at')
->findArray();
$subscriber_emails = Helpers::arrayColumn($subscriber_emails, 'email');
$subscriber_emails = array_column($subscriber_emails, 'email');
$this->processEmails($subscriber_emails);

View File

@ -460,7 +460,7 @@ class Newsletter extends Model {
function withDeletedSegments() {
if(!empty($this->segments)) {
$segment_ids = Helpers::arrayColumn($this->segments, 'id');
$segment_ids = array_column($this->segments, 'id');
$links = $this->segmentRelations()
->whereNotIn('segment_id', $segment_ids)->findArray();
$deleted_segments = array();
@ -501,7 +501,7 @@ class Newsletter extends Model {
if(empty($options)) {
$this->options = array();
} else {
$this->options = Helpers::arrayColumn($options, 'value', 'name');
$this->options = array_column($options, 'value', 'name');
}
return $this;
}

View File

@ -532,7 +532,7 @@ class Subscriber extends Model {
$custom_fields = CustomField::select('id')->findArray();
if(empty($custom_fields)) return $this;
$custom_field_ids = Helpers::arrayColumn($custom_fields, 'id');
$custom_field_ids = array_column($custom_fields, 'id');
$relations = SubscriberCustomField::select('custom_field_id')
->select('value')
->whereIn('custom_field_id', $custom_field_ids)
@ -845,7 +845,7 @@ class Subscriber extends Model {
'(' . rtrim(str_repeat('?,', count($subscribers)), ',') . ')',
array_merge(
Helpers::flattenArray($sql('values')),
Helpers::arrayColumn($subscribers, $email_position)
array_column($subscribers, $email_position)
)
);
}

View File

@ -83,7 +83,7 @@ class SubscribersFinder {
}
private function addSubscribersToTaskFromStaticSegments(ScheduledTask $task, array $segments) {
$segment_ids = Helpers::arrayColumn($segments, 'id');
$segment_ids = array_column($segments, 'id');
Subscriber::rawExecute(
'INSERT IGNORE INTO ' . MP_SCHEDULED_TASK_SUBSCRIBERS_TABLE . '
(task_id, subscriber_id, processed)
@ -125,7 +125,7 @@ class SubscribersFinder {
}
private function addSubscribersToTaskByIds(ScheduledTask $task, array $subscribers) {
$subscribers = Helpers::arrayColumn($subscribers, 'id');
$subscribers = array_column($subscribers, 'id');
Subscriber::rawExecute(
'INSERT IGNORE INTO ' . MP_SCHEDULED_TASK_SUBSCRIBERS_TABLE . '
(task_id, subscriber_id, processed)

View File

@ -192,7 +192,7 @@ class Export {
}
function getSubscriberCustomFields() {
return Helpers::arrayColumn(
return array_column(
CustomField::findArray(),
'name',
'id'

View File

@ -194,7 +194,7 @@ class Import {
function transformSubscribersData($subscribers, $columns) {
foreach($columns as $column => $data) {
$transformed_subscribers[$column] = Helpers::arrayColumn($subscribers, $data['index']);
$transformed_subscribers[$column] = array_column($subscribers, $data['index']);
}
return $transformed_subscribers;
}
@ -223,7 +223,7 @@ class Import {
);
}
// extract WP users ids into a simple indexed array: [wp_user_id_1, wp_user_id_2, ...]
$wp_users = array_filter(Helpers::arrayColumn($temp_existing_subscribers, 'wp_user_id'));
$wp_users = array_filter(array_column($temp_existing_subscribers, 'wp_user_id'));
// create a new two-dimensional associative array with existing subscribers ($existing_subscribers)
// and reduce $subscribers_data to only new subscribers by removing existing subscribers
$subscribers_emails = array_flip($subscribers_data['email']);
@ -353,7 +353,7 @@ class Import {
);
}
if(empty($created_or_updated_subscribers)) return null;
$created_or_updated_subscribers_ids = Helpers::arrayColumn($created_or_updated_subscribers, 'id');
$created_or_updated_subscribers_ids = array_column($created_or_updated_subscribers, 'id');
if($subscribers_custom_fields) {
$this->createOrUpdateCustomFields(
$action,

View File

@ -80,7 +80,7 @@ class Pages {
if($subsciber_segments) {
Scheduler::scheduleSubscriberWelcomeNotification(
$this->subscriber->id,
Helpers::arrayColumn($subsciber_segments, 'id')
array_column($subsciber_segments, 'id')
);
}

View File

@ -143,7 +143,7 @@ class Sending {
$subscribers->where('processed', $status);
}
$subscribers = $subscribers->findArray();
return Helpers::arrayColumn($subscribers, 'subscriber_id');
return array_column($subscribers, 'subscriber_id');
}
public function setSubscribers(array $subscriber_ids) {

View File

@ -31,7 +31,7 @@ class BatchIterator implements \Iterator, \Countable {
->orderByAsc('subscriber_id')
->limit($this->batch_size)
->findArray();
$subscribers = Helpers::arrayColumn($subscribers, 'subscriber_id');
$subscribers = array_column($subscribers, 'subscriber_id');
$this->batch_last_id = end($subscribers);
return $subscribers;
}

View File

@ -57,79 +57,6 @@ class Helpers {
return $flattened_array;
}
/*
* Using func_get_args() in order to check for proper number ofparameters and trigger errors exactly as the built-in array_column()
* does in PHP 5.5.
* @author Ben Ramsey (http://benramsey.com)
*/
static function arrayColumn($input = null, $columnKey = null, $indexKey = null) {
$argc = func_num_args();
$params = func_get_args();
if($argc < 2) {
trigger_error("array_column() expects at least 2 parameters, {$argc} given", E_USER_WARNING);
return null;
}
if(!is_array($params[0])) {
trigger_error(
'array_column() expects parameter 1 to be array, ' . gettype($params[0]) . ' given',
E_USER_WARNING
);
return null;
}
if(!is_int($params[1])
&& !is_float($params[1])
&& !is_string($params[1])
&& $params[1] !== null
&& !(is_object($params[1]) && method_exists($params[1], '__toString'))
) {
trigger_error('array_column(): The column key should be either a string or an integer', E_USER_WARNING);
return false;
}
if(isset($params[2])
&& !is_int($params[2])
&& !is_float($params[2])
&& !is_string($params[2])
&& !(is_object($params[2]) && method_exists($params[2], '__toString'))
) {
trigger_error('array_column(): The index key should be either a string or an integer', E_USER_WARNING);
return false;
}
$paramsInput = $params[0];
$paramsColumnKey = ($params[1] !== null) ? (string)$params[1] : null;
$paramsIndexKey = null;
if(isset($params[2])) {
if(is_float($params[2]) || is_int($params[2])) {
$paramsIndexKey = (int)$params[2];
} else {
$paramsIndexKey = (string)$params[2];
}
}
$resultArray = array();
foreach($paramsInput as $row) {
$key = $value = null;
$keySet = $valueSet = false;
if($paramsIndexKey !== null && array_key_exists($paramsIndexKey, $row)) {
$keySet = true;
$key = (string)$row[$paramsIndexKey];
}
if($paramsColumnKey === null) {
$valueSet = true;
$value = $row;
} elseif(is_array($row) && array_key_exists($paramsColumnKey, $row)) {
$valueSet = true;
$value = $row[$paramsColumnKey];
}
if($valueSet) {
if($keySet) {
$resultArray[$key] = $value;
} else {
$resultArray[] = $value;
}
}
}
return $resultArray;
}
static function underscoreToCamelCase($str, $capitalise_first_char = false) {
if($capitalise_first_char) {
$str[0] = strtoupper($str[0]);

View File

@ -86,7 +86,7 @@ class BounceTest extends \MailPoetTest {
function testItSetsSubscriberStatusAsBounced() {
$emails = Subscriber::select('email')->findArray();
$emails = Helpers::arrayColumn($emails, 'email');
$emails = array_column($emails, 'email');
$this->worker->processEmails($emails);

View File

@ -289,7 +289,7 @@ class ImportTest extends \MailPoetTest {
'create',
$subscribers_data
);
$db_subscribers = Helpers::arrayColumn(
$db_subscribers = array_column(
Subscriber::select('id')
->findArray(),
'id'
@ -354,7 +354,7 @@ class ImportTest extends \MailPoetTest {
$subscribers_data,
$this->subscribers_fields
);
$db_subscribers = Helpers::arrayColumn(
$db_subscribers = array_column(
Subscriber::select('id')
->findArray(),
'id'
@ -467,7 +467,7 @@ class ImportTest extends \MailPoetTest {
$this->import->updated_at = date('Y-m-d H:i:s', $timestamp + 1);
$result = $this->import->process();
expect($result['created'])->equals(1);
$db_subscribers = Helpers::arrayColumn(
$db_subscribers = array_column(
Subscriber::select('id')->findArray(),
'id'
);