Laratraits is a Laravel package containing useful traits and some classes to use along your Models, Controllers, Service Providers and what not. Take a look!
- Laravel 7.
- PHP 7.2.15 or later.
Fire up Composer and that's it.
composer require darkghosthunter/laratraits
This package doesn't use any Service Provider.
Just check any of these traits. Each one and other classes contains a brief explanation on how to use in the first lines.
If you want to use one, just do it.
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use DarkGhostHunter\Laratraits\SavesToCache;
use DarkGhostHunter\Laratraits\Eloquent\UsesUuid;
class Post extends Model
{
use UsesUuid;
use SavesToCache;
// ...
}
Before installing, take a look into the list. If you're only using one, just copy and paste it in your project, no problem, as each trait and file includes a copy of the MIT License.
Just remember to change the namespace if you're copy-pasting them!
ConditionCalls
: Allows an object instance to executewhen
andunless
logic.EnumerableStates
: Allows a class instance to have a single allowed state.FiresItself
: Allows an Event to be fired conveniently.Multitaps
: Makes all class methods chainable, like usingtap()
but forever. You can exit the tap using->target
or a method name appended withAndUntap
.PipesThrough
: Allows a class to be piped through a pipeline immediately or to a queue.RendersFromMarkdown
: Takes a given class property to parse Markdown text and return HTML. Compatible withHtmlable
interface.SavesToCache
: Saves the object (or part of it) to the cache.SavesToSession
: Saves the object (or part of it) to the session.SavesToStorage
: Saves the object (or part of it) to the storage.SendsToHttp
: Sends the object (or part of it) through an HTTP Request.ThrottleMethods
: Throttles a given method in a class transparently.ValidatesItself
: Validates an incoming data using self-contained rules.
Enumerable
: Lists and controls a state from a list. Useful for casting enums.
ConditionFill
: Fills an attribute if a given condition is truthy or falsy.DefaultColumns
: Adds aDefaultColumns
Global Scope to the Model selecting only given default columns, unless overrun manually in the query.EncryptsJson
: Encrypts and decrypts the JSON representation of a Model.FillsAttributes
: Automatically fills the Model with values by each method name, likefillFooAttribute()
.HasSlug
: Allows a Model to be bound to routes using the slug likethis-is-the-model
. Must use an exclusive slug column in the model table.ModelType
: Useful for Models that share a single table but have different "types", like Publications: Article, Post, Note, etc.NeighbourRecords
: Allows to easily get a complete "next" and "previous" record from a given model, without using pagination.UsesUuid
: Automatically fills the UUID on the Model. Comes with an optional Eloquent Query Builder local scopes. You can override the UUID generation.
CastEnumerable
: Allows a string or integer column to be casted as Enumerable inside a model.CastsRepository
: Allows an json column to be casted as a Repository (like a config tree).
MacrosEloquent
: Automatically adds selective Macros to the Eloquent Builder instance itself, instead of globally, when using a Global Scope. Appendmacro
to a public static method and that's it, done.
CacheStaticResponse
: Caches static responses, avoiding running the controller logic, for a given time.ShareAuthenticatedUser
: Shares the authenticated user across all views.ValidateConsumableSignature
: Makes signed routes work only one time, except on client or server errors.
RegistersFileDirective
: Easily register a directive using a PHP file contents.
You can make an issue with your proposal. Consider the logic must be contained inside a trait, or use an auxiliar class to avoid polluting the class with multiple methods. PRs are preferred with tests.
This package is open-sourced software licensed under the MIT license.
Laravel is a Trademark of Taylor Otwell. Copyright © 2011-2020 Laravel LLC.