Source of file RecordWriter.php
Size: 2,582 Bytes - Last Modified: 2021-12-23T10:02:17+00:00
/var/www/docs.ssmods.com/process/src/code/Util/RecordWriter.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 | <?php namespace Seeder\Util; /** * Class RecordWriter * @package Seeder\Util */ class RecordWriter { /** * @param \DataObject $object * @param Field $field * @throws \ValidationException * @throws null */ public function write(\DataObject $object, Field $field) { if ($object->has_extension('Versioned')) { $object->writeToStage('Stage'); $args = $field->options; $publish = isset($args['publish']) ? $args['publish'] : true; if ($publish) { $object->publish('Stage', 'Live'); } } else { $object->write(); } if (!$object->isSeeded()) { $seed = new \SeedRecord(); $seed->SeedClassName = $object->ClassName; $seed->SeedID = $object->ID; $seed->Key = $field->key; $seed->Root = $field->fieldType === Field::FT_ROOT; $seed->write(); $object->setIsSeeded(); } } /** * @param $object * @param $relation * @param $manyManyObjects */ public function writeManyMany($object, $relation, $manyManyObjects) { $object->$relation()->addMany($manyManyObjects); } /** * @param $objects */ public function delete($objects) { foreach ($objects as $object) { $object->delete(); } } /** * @param $className * @param $ids */ public function deleteIDs($className, $ids) { foreach ($ids as $id) { $object = $className::get()->byID($id); if ($object) { $object->delete(); } } } /** * @param $objects * @param $stage */ public function deleteFromStage($objects, $stage) { $stages = array_slice(func_get_args(), 1); foreach ($objects as $object) { foreach ($stages as $stage) { $object->deleteFromStage($stage); } } } /** * @param $className * @param $ids * @param $stage */ public function deleteIDsFromStage($className, $ids, $stage) { $stages = array_slice(func_get_args(), 2); foreach ($ids as $id) { $object = $className::get()->byID($id); if ($object) { foreach ($stages as $stage) { $object->deleteFromStage($stage); } } } } /** * */ public function finish() { } } |