asgard / behaviors
Installs: 471
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:asgard-bundle
Requires
- php: >=5.5.9
- asgard/entity: ~0.3.0
Requires (Dev)
- asgard/db: ~0.3.0
- asgard/http: ~0.3.0
- asgard/orm: ~0.3.0
- nesbot/carbon: ^1.0
Suggests
- asgard/db: ~0.3.0
- asgard/http: ~0.3.0
- asgard/orm: ~0.3.0
- nesbot/carbon: ^1.0
This package is not auto-updated.
Last update: 2024-11-09 16:48:04 UTC
README
#Behaviors
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.*
###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
###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.
###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
###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.
###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