PHPackages                             companue/shared-utilities - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. companue/shared-utilities

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

companue/shared-utilities
=========================

Shared utilities, traits, and helpers for Companue service packages including ordering, timestamping, and common model behaviors

1.0.2(2w ago)06MITPHPPHP ^8.1

Since Dec 27Pushed 2w agoCompare

[ Source](https://github.com/companue/shared-utilities)[ Packagist](https://packagist.org/packages/companue/shared-utilities)[ Docs](https://github.com/companue/shared-utilities)[ RSS](/packages/companue-shared-utilities/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (8)Versions (4)Used By (0)

Companue Shared Utilities
=========================

[](#companue-shared-utilities)

Shared utilities, traits, and helpers for Companue service packages.

Features
--------

[](#features)

- **Orderable Trait**: Easy ordering/ranking capabilities for Eloquent models
    - Handles unique constraint conflicts with two-pass approach
    - Built-in scopes for querying ordered data
    - Bulk and single-item reordering support

Installation
------------

[](#installation)

```
composer require companue/shared-utilities
```

Usage
-----

[](#usage)

### Request Timing Middleware

[](#request-timing-middleware)

This package ships a shared request timing middleware that can be used across Laravel services.

1. Add the middleware to your application's global HTTP middleware stack in `app/Http/Kernel.php`:

```
\Companue\SharedUtilities\Http\Middleware\LogRequestTiming::class,
```

2. Use the environment key to enable or disable logging:

```
LOG_REQUEST_TIMING=true
```

3. Optionally publish the package config if you want to customize it locally:

```
php artisan vendor:publish --tag=config
```

### Orderable Trait

[](#orderable-trait)

Use the trait in your model:

```
