Source of file SlowDummyParent.php
Size: 2,090 Bytes - Last Modified: 2021-12-23T10:35:47+00:00
/var/www/docs.ssmods.com/process/src/tests/php/PublishRecursive/SlowDummyParent.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 | <?php namespace SilverStripe\Versioned\Tests\PublishRecursive; use ReflectionException; use ReflectionProperty; use SilverStripe\Dev\TestOnly; use SilverStripe\ORM\DataObject; use SilverStripe\ORM\FieldType\DBDatetime; use SilverStripe\ORM\FieldType\DBField; use SilverStripe\Versioned\Versioned; /** * Class SlowDummyParent * * @property string $Title * @property int $NestedObjectID * @method SlowDummyObject NestedObject() * @package SilverStripe\Versioned\Tests\PublishRecursive */ class SlowDummyParent extends DataObject implements TestOnly { /** * @var string */ private static $table_name = 'SlowDummyParent'; /** * @var array */ private static $db = [ 'Title' => 'Varchar(255)', ]; /** * @var array */ private static $has_one = [ 'NestedObject' => SlowDummyObject::class, ]; /** * @var array */ private static $owns = [ 'NestedObject', ]; /** * @var array */ private static $cascade_deletes = [ 'NestedObject', ]; /** * @var array */ private static $cascade_duplicates = [ 'NestedObject', ]; protected function onBeforeWrite() { $this->emulateSleep(2); parent::onBeforeWrite(); } /** * @param int $seconds * @throws Exception */ private function emulateSleep($seconds) { if (Versioned::get_stage() !== Versioned::LIVE) { return; } if ($this->getMockNow() !== null) { return; } $now = DBDatetime::now(); /** @var DBDatetime $now */ $now = DBField::create_field('Datetime', $now->getTimestamp() + $seconds); DBDatetime::set_mock_now($now); } /** * @return DBDatetime|null * @throws ReflectionException */ private function getMockNow() { $propertyMockNow = new ReflectionProperty(DBDatetime::class, 'mock_now'); $propertyMockNow->setAccessible(true); return $propertyMockNow->getValue(); } } |