Elgg  Version 5.1
Public Member Functions | Public Attributes | Protected Attributes | List of all members
Elgg\Upgrade\Batch Class Reference

Long running upgrades should implement this interface. More...

Inheritance diagram for Elgg\Upgrade\Batch:
Elgg\Upgrade\AsynchronousUpgrade Elgg\Upgrade\SystemUpgrade Elgg\Upgrades\AlterDatabaseToMultiByteCharset Elgg\Upgrades\ContentOwnerSubscriptions Elgg\Upgrades\MigrateACLNotificationPreferences Elgg\Upgrades\NotificationsPrefix Elgg\Upgrades\RemoveOrphanedThreadedComments Elgg\Upgrades\ChangeUserNotificationSettingsNamespace Elgg\Upgrades\DeleteDiagnosticsPlugin Elgg\Upgrades\DeleteNotificationsPlugin

Public Member Functions

 __construct (\ElggUpgrade $upgrade=null)
 Constructs a upgrade batch. More...
 
 getVersion ()
 Version of the upgrade. More...
 
 shouldBeSkipped ()
 Should this upgrade be skipped? More...
 
 needsIncrementOffset ()
 Should the run() method receive an offset representing all processed items? More...
 
 countItems ()
 The total number of items to process during the upgrade. More...
 
 run (Result $result, $offset)
 Runs upgrade on a single batch of items. More...
 
 getUpgrade ()
 Returns the related upgrade entity. More...
 

Public Attributes

const UNKNOWN_COUNT = -1
 countItems() should return this if it doesn't know how many items remain. More...
 

Protected Attributes

 $upgrade
 

Detailed Description

Long running upgrades should implement this interface.

Since
3.0.0

Definition at line 10 of file Batch.php.

Constructor & Destructor Documentation

Elgg\Upgrade\Batch::__construct ( \ElggUpgrade  $upgrade = null)

Constructs a upgrade batch.

Parameters
\ElggUpgrade$upgradethe upgrade related to this batch

Definition at line 27 of file Batch.php.

Member Function Documentation

Elgg\Upgrade\Batch::countItems ( )
abstract

The total number of items to process during the upgrade.

If unknown, Batch::UNKNOWN_COUNT should be returned, and run() must manually mark the result as complete.

Returns
int
Elgg\Upgrade\Batch::getUpgrade ( )
final

Returns the related upgrade entity.

Returns
|null
Since
5.0

Definition at line 100 of file Batch.php.

Elgg\Upgrade\Batch::getVersion ( )
abstract

Version of the upgrade.

This tells the date when the upgrade was added. It consists of eight digits and is in format yyyymmddnn where:

  • yyyy is the year
  • mm is the month (with leading zero)
  • dd is the day (with leading zero)
  • nn is an incrementing number (starting from 00) that is used in case two separate upgrades have been added during the same day
Returns
int E.g. 2016123101
Elgg\Upgrade\Batch::needsIncrementOffset ( )
abstract

Should the run() method receive an offset representing all processed items?

If true, run() will receive as $offset the number of items already processed. This is useful if you are only modifying data, and need to use the $offset in a function like elgg_get_entities*() to know how many to skip over.

If false, run() will receive as $offset the total number of failures. This should be used if your process deletes or moves data out of the way of the process. E.g. if you delete 50 objects on each run(), you may still use the $offset to skip objects that already failed once.

Returns
bool
Elgg\Upgrade\Batch::run ( Result  $result,
  $offset 
)
abstract

Runs upgrade on a single batch of items.

If countItems() returns Batch::UNKNOWN_COUNT, this method must call $result->markCompleted() when the upgrade is complete.

Parameters
Result$resultResult of the batch (this must be returned)
int$offsetNumber to skip when processing
Returns
Result
Elgg\Upgrade\Batch::shouldBeSkipped ( )
abstract

Should this upgrade be skipped?

If true, the upgrade will not be performed and cannot be accessed later.

Returns
bool

Member Data Documentation

Elgg\Upgrade\Batch::$upgrade
protected

Definition at line 20 of file Batch.php.

const Elgg\Upgrade\Batch::UNKNOWN_COUNT = -1

countItems() should return this if it doesn't know how many items remain.

Definition at line 15 of file Batch.php.


The documentation for this class was generated from the following file: