2017 © Pedro Peláez
 

library laravel-observe-properties

A simple trait to allow you to observe changing properties on a Model.

image

haganjones/laravel-observe-properties

A simple trait to allow you to observe changing properties on a Model.

  • Monday, December 11, 2017
  • by haganjones
  • Repository
  • 2 Watchers
  • 2 Stars
  • 15 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

Laravel Observe Properties

A simple trait to allow you to observe changing properties on a Model., (*1)

When observing a model it is sometimes necessary to check to see if a particular property on a model has changed, then perform an action. If you need to do this a lot then your observer methods can soon become clogged up, hopefully this trait will help you out!, (*2)

Install via Composer

composer require "haganjones/laravel-observe-properties"

To Use

Include the trait in your Observation Classes:, (*3)

<?php

namespace App\Observers;

use HaganJones\LaravelObserveProperties\ObserveProperties;

class UserObserver
{
    use ObserveProperties; 
}

Including this trait in your class allows you to make use of the camelcaseProperty + Eventname methods. For example, following on from our UserObserver class above:, (*4)

// Inside UserObserver Class

public function emailUpdated(User $user, $oldValue, $newValue)
{
    $format = 'User %d changed their email from %s to %s';
    Log::info(sprintf($format, $user->id, $oldValue, $newValue));
    // User 1 changed their email from oldrusty@example.org to newshiny@example.org
}

Available Events

All default Laravel Events are supported, please not some events will only receive one value. See below for full list of events and arguments., (*5)

Method Arguments Received
yourPropertyCreating (Model $yourModel, $value)
yourPropertyCreated (Model $yourModel, $value)
yourPropertyUpdating (Model $yourModel, $oldValue, $newValue)
yourPropertyUpdated (Model $yourModel, $oldValue, $newValue)
yourPropertySaving (Model $yourModel, $oldValue, $newValue)
yourPropertySaved (Model $yourModel, $oldValue, $newValue)
yourPropertyDeleting (Model $yourModel, $value)
yourPropertyDeleted (Model $yourModel, $value)
yourPropertyRestoring (Model $yourModel, $value)
yourPropertyRestored (Model $yourModel, $value)

Caveats

As per the Laravel docs the Saving|Saved events fire along side Creating|Created and Updating|Updated methods., (*6)

With this in mind when creating a Model the Saving|Saved event will receive both $oldValue and $newValue arguments but they will have the same value., (*7)

Using in existing Observer classes.

It is possible you would want to add this functionality inside your existing Observer classes in this case you will need to include the trait but give it's methods some aliases e.g, (*8)

<?php

namespace App\Observers;

use HaganJones\LaravelObserveProperties\ObserveProperties;
use App\User;

class UserObserver
{
    use ObserveProperties {
        updating as updatingProperties;
        //add in other method aliases here.
    }

    public function updating(User $user)
    {
        //Do things with $user

        return $this->updatingProperties($user);
    }

    public function firstNameUpdating(User $user, $oldValue, $newValue)
    {
        //$user->first_name was just updated.
    }
}

The Versions

11/12 2017

dev-master

9999999-dev https://github.com/haganjones/laravel-observe-properties

A simple trait to allow you to observe changing properties on a Model.

  Sources   Download

MIT

The Requires

  • php >=5.6.0

 

The Development Requires

laravel trait observe

11/12 2017

dev-develop

dev-develop https://github.com/haganjones/laravel-observe-properties

A simple trait to allow you to observe changing properties on a Model.

  Sources   Download

MIT

The Requires

  • php >=5.6.0

 

The Development Requires

laravel trait observe

11/12 2017

0.1.1

0.1.1.0 https://github.com/haganjones/laravel-observe-properties

A simple trait to allow you to observe changing properties on a Model.

  Sources   Download

MIT

The Requires

  • php >=5.6.0

 

The Development Requires

laravel trait observe

15/02 2017

0.1.0

0.1.0.0 https://github.com/haganjones/laravel-observe-properties

A simple trait to allow you to observe changing properties on a Model.

  Sources   Download

MIT

The Requires

  • php >=5.6.0

 

The Development Requires

laravel trait observe