Pheasant\DomainObject::save PHP Method

save() public method

Saves the domain object via the associated mapper
public save ( )
    public function save()
    {
        $event = $this->isSaved() ? 'Update' : 'Create';
        $mapper = Pheasant::instance()->mapperFor($this);
        $this->events()->wrap(array($event, 'Save'), $this, function ($obj) use($mapper) {
            $mapper->save($obj);
            // ensure we clear the changes before after events fire
            $obj->markSaved(true)->clearChanges();
        });
        return $this;
    }

Usage Example

Beispiel #1
0
 public function testEventsBoundToObject()
 {
     $this->mapper->shouldReceive('save')->times(2);
     $events = array();
     $this->initialize('Pheasant\\DomainObject', function ($builder) {
         $builder->properties(array('test' => new Types\StringType()));
     });
     $do1 = new DomainObject();
     $do2 = new DomainObject();
     $do1->events(array('afterSave' => function ($e) use(&$events) {
         $events[] = "do1.{$e}";
     }));
     $do2->events(array('afterSave' => function ($e) use(&$events) {
         $events[] = "do2.{$e}";
     }));
     $do1->save();
     $do2->save();
     $this->assertEquals($events, array('do1.afterSave', 'do2.afterSave'));
 }
All Usage Examples Of Pheasant\DomainObject::save