darkghosthunter / laratraits
Laratraits is a package containing useful traits to use along your Controllers, Service Providers, Commands and what not. Take a look!
Fund package maintenance!
Ko Fi
paypal.me/darkghosthunter
Installs: 2 183
Dependents: 0
Suggesters: 0
Security: 0
Stars: 144
Watchers: 7
Forks: 11
Open Issues: 0
pkg:composer/darkghosthunter/laratraits
Requires
- php: ^7.4||^8.0
- ext-json: *
- guzzlehttp/guzzle: ^7.0
- illuminate/support: ^8.0
Requires (Dev)
- mockery/mockery: ^1.4.3
- orchestra/testbench: ^6.19
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-03-26 06:31:02 UTC
README
Laratraits
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!
Requirements
- Laravel 8.0.
- PHP 7.4, PHP 8.0 or later.
Installation
Fire up Composer and that's it.
composer require darkghosthunter/laratraits
This package doesn't use any Service Provider.
Usage
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; // ... }
What it includes
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!
Traits for everything
Comparable: Allows a class or its properties to be compared to a list of values.ConditionCalls: Allows an object instance to executewhenandunlesslogic.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->targetor a method name appended withAndUntap.PipesThrough: Allows a class to be piped through a pipeline immediately or to a queue.RegeneratesCache: Stores a copy of an object (or part of it) avoiding data-races among other processes.RendersFromMarkdown: Takes a given class property to parse Markdown text and return HTML. Compatible withHtmlableinterface.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.SecurelyJsonable: Adds a signature to the Jsonable object that is checked to at unserialization to avoid tampering.SendsToHttp: Sends the object (or part of it) through an HTTP Request.ShadowCall: Allows the next method to be called depending on a condition.ThrottleMethods: Throttles a given method in a class transparently.Throws: Allows a Throwable to throw itself if a given condition is truthy or falsy.ValidatesItself: Validates an incoming data using self-contained rules.
Useful classes
Enumerable: Lists and controls a state from a list. Useful for casting enums.
Models
ConditionFill: Fills an attribute if a given condition is truthy or falsy.DefaultColumns: Adds aDefaultColumnsGlobal Scope to the Model selecting only given default columns, unless overrun manually in the query.FillsAttributes: Automatically fills the Model with values by each method name, likefillFooAttribute().FromRequest: One-liners to make, create, or update models from the HTTP Request.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.
Casts
CastEnumerable: Allows anEnumerableto be saved as an integer o string, and retrieved back to anEnumerableinstance.CastsRepository: Allows a Config Repository string to be saved a JSON, and retrieved back as Config Repository.CastsBase64: Allows a binary value to be saved as BASE64 in the database, and retrieved back as binary.
Global Scopes
MacrosEloquent: Automatically adds selective Macros to the Eloquent Builder instance itself, instead of globally, when using a Global Scope. Appendmacroto a public static method and that's it, done.
Middleware
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.
Blade
RegistersFileDirective: Easily register a directive using a PHP file contents.
Migrations:
PublishesMigrations: Allows a package to register migrations automatically as publishable assets.
Missing a trait?
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.
License
This package is open-sourced software licensed under the MIT license.
Laravel is a Trademark of Taylor Otwell. Copyright © 2011-2020 Laravel LLC.