asgard/behaviors

Installs: 471

Dependents: 1

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

Type:asgard-bundle

v0.3.1 2016-05-13 12:31 UTC

This package is not auto-updated.

Last update: 2024-11-09 16:48:04 UTC


README

#Behaviors

Build Status

The Behaviors package provides some behaviors ready to use out-of-the-box for your entities. This page defines what the usage, the properties, the hooks and the methods brought by the behavior.

##Installation If you are working on an Asgard project you don't need to install this library as it is already part of the standard libraries.

composer require asgard/behaviors 0.*

##MetasBehavior

###Usage

In your entity definition:

$definition->behaviors = [
	new \Asgard\Behaviors\MetasBehavior
];

###Properties

meta_title:
	type: text
	required: false
meta_description:
	type: text
	required: false
meta_keywords:
	type: text
	required: false

###Methods

$entity->showMetas();

outputs the entity metas in the html

##PublishBehavior

###Usage

In your entity definition:

$definition->behaviors = [
	new \Asgard\Behaviors\PublishBehavior
];

###Properties

published:
	type: boolean
	default: true

###Methods

Entity::published();

returns an orm with a published entities scope.

Entity::loadPublished($id);

returns an entity from a given id only if the entity is published.

##SlugifyBehavior

###Usage

In your entity definition:

$definition->behaviors = [
	new \Asgard\Behaviors\SlugifyBehavior
];

This will use the first entity property as a slug.

To use a speficic property as slug:

$definition->behaviors = [
	new \Asgard\Behaviors\SlugifyBehavior('title')
];

###Properties

slug:
	type: text
	required: false

###Methods

$entity->slug();

returns the entity slug

##SortableBehavior

###Usage

In your entity definition:

$definition->behaviors = [
	new \Asgard\Behaviors\SortableBehavior
];

###Properties

position:
	type: integer
	required: false
	default: 0
	editable: false

###Hooks

If the position is not set, when saving the entity, the position will be incremented from the last entity.

###Methods

$entity->moveAfter($anotherEntityId);

moves the entity after another entity with a given id

$entity->previous();

returns the entity before the current one.

$entity->next();

returns the entity after the current one.

##TimestampsBehavior

###Usage

In your entity definition:

$definition->behaviors = [
	new \Asgard\Behaviors\TimestampsBehavior
];

###Properties

created_at:
	type: datetime
	required: false
	default: function() { return \Asgard\Common\Datetime::now(); }
	editable: false
updated_at:
	type: datetime
	required: false
	default: function() { return \Asgard\Common\Datetime::now(); }
	editable: false

###Hooks

Upon saving an entity, the updated_at property will be updated with the current date and time.

###Contributing

Please submit all issues and pull requests to the asgardphp/asgard repository.

License

The Asgard framework is open-sourced software licensed under the MIT license