PHPackages                             alvaro-canepa/oc-trait-utils - 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. alvaro-canepa/oc-trait-utils

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

alvaro-canepa/oc-trait-utils
============================

OctoberCMS Util Trait

1.0.1(6y ago)12711GPL-3.0PHPPHP &gt;=7.2

Since Aug 26Pushed 6y ago1 watchersCompare

[ Source](https://github.com/alvaro-canepa/oc-trait-utils)[ Packagist](https://packagist.org/packages/alvaro-canepa/oc-trait-utils)[ RSS](/packages/alvaro-canepa-oc-trait-utils/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (3)Used By (1)

oc-trait-utils
==============

[](#oc-trait-utils)

Util trait for OctoberCMS

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

[](#installation)

Package requires **PHP 7.2+** and works with **OctoberCMS**.

Require the package in your `composer.json`:

```
    "require": {
        ...
        "alvaro-canepa/oc-trait-utils": "~1.0",
    },

```

Usage example
-------------

[](#usage-example)

```
    class myModel extend Model {
        use PlanetaDelEste\Traits;

        ...

        /**
         * @param \October\Rain\Database\Builder|static $query
         * @param array                                 $data
         *
         * @return \October\Rain\Database\Builder|static
         * @throws \Exception
         */
        public function scopeFrontend($query, $data)
        {
            $columns = $this->getFullTextIndexFields();

            // Search by columns in $data array
            foreach ($data as $column => $value) {
                if (in_array($column, $columns)) {
                    $query->where($column, 'LIKE', "%{$value}%");
                }
            }

            // Search in all text columns
            if ($q = array_get($data, 'query')) {
                foreach ($columns as $column) {
                    $query->where($column, 'LIKE', "%{$q}%", 'or');
                }
            }

            return $query;
        }
    }

    $myModel = myModel::find(1);

    // Methods

    /*
        * Return array with all model columns.
        *      Example: ['id', 'created_at', 'updated_at', 'name', 'description']
        */
    $myModel->getTableColumns();

    /*
        *  Return array with all text ('VARCHAR', 'TEXT', 'CHAR') columns.
        *      Example: ['name', 'description']
        */
    $myModel->getFullTextIndexFields();
```

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

2450d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/6322770?v=4)[Planeta del Este](/maintainers/planetadeleste)[@planetadeleste](https://github.com/planetadeleste)

---

Top Contributors

[![alvaro-canepa](https://avatars.githubusercontent.com/u/5142298?v=4)](https://github.com/alvaro-canepa "alvaro-canepa (5 commits)")

### Embed Badge

![Health badge](/badges/alvaro-canepa-oc-trait-utils/health.svg)

```
[![Health](https://phpackages.com/badges/alvaro-canepa-oc-trait-utils/health.svg)](https://phpackages.com/packages/alvaro-canepa-oc-trait-utils)
```

###  Alternatives

[ashallendesign/redactable-models

A Laravel package for easily redacting model data.

1143.4k](/packages/ashallendesign-redactable-models)[byrokrat/banking

Data types for accounts in the swedish banking system

1395.6k6](/packages/byrokrat-banking)[machy8/webloader

Simple, easy to use, php bundler for javascript and css

1934.2k3](/packages/machy8-webloader)[tobimori/kirby-tailwind-merge

Tailwind Merge for Kirby CMS

276.3k](/packages/tobimori-kirby-tailwind-merge)[imarc/craft-sass

A Craft plugin that compiles SASS on the server as needed.

145.8k](/packages/imarc-craft-sass)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
