PHPackages                             garrettw/stringobject - 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. garrettw/stringobject

ActiveLibrary

garrettw/stringobject
=====================

PHP class that wraps most if not all of the string manipulation functions, so that you can work with strings as objects

16PHPCI passing

Since Nov 25Pushed 1y ago3 watchersCompare

[ Source](https://github.com/garrettw/stringobject)[ Packagist](https://packagist.org/packages/garrettw/stringobject)[ RSS](/packages/garrettw-stringobject/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

StringObject
============

[](#stringobject)

[![Total Downloads](https://camo.githubusercontent.com/89d42f934f22d488ecc68ef488975a15100c23b47e51c88134ece2ef2cef7817/68747470733a2f2f706f7365722e707567782e6f72672f67617272657474772f737472696e676f626a6563742f646f776e6c6f6164732e737667)](https://packagist.org/packages/garrettw/stringobject) [![Latest Stable Version](https://camo.githubusercontent.com/690a75688fea96de93c41c312b609921abc816711e2c73e14aedcf228e772df1/68747470733a2f2f706f7365722e707567782e6f72672f67617272657474772f737472696e676f626a6563742f762f737461626c652e737667)](https://packagist.org/packages/garrettw/stringobject) [![Latest Unstable Version](https://camo.githubusercontent.com/fbdb3bed18d626022e9733a36dc6f6d0ce0b9a8597128de16ba6773c75873340/68747470733a2f2f706f7365722e707567782e6f72672f67617272657474772f737472696e676f626a6563742f762f756e737461626c652e737667)](https://packagist.org/packages/garrettw/stringobject) [![License](https://camo.githubusercontent.com/f1d097db057ce3459c1f20a7fd5adb2f35925747e0527d85ac547def7b0fb82d/68747470733a2f2f706f7365722e707567782e6f72672f67617272657474772f737472696e676f626a6563742f6c6963656e73652e737667)](https://packagist.org/packages/garrettw/stringobject) [![Reference Status](https://camo.githubusercontent.com/3c32ead93e59eed138f258e5f4cc00a59d12f85b004410d5ec38f2d08d782a34/68747470733a2f2f7777772e76657273696f6e6579652e636f6d2f7068702f67617272657474773a737472696e676f626a6563742f7265666572656e63655f62616467652e7376673f7374796c653d666c6174)](https://www.versioneye.com/php/garrettw:stringobject/references) [![CII Best Practices](https://camo.githubusercontent.com/5e612e69e6f7a3ef21d3e0a72ae4bfda75824be79efc2a8d8017edb1af6704e7/68747470733a2f2f626573747072616374696365732e636f7265696e6672617374727563747572652e6f72672f70726f6a656374732f3136322f6261646765)](https://bestpractices.coreinfrastructure.org/projects/162)

[![Build Status](https://camo.githubusercontent.com/6b913cf3035619729e219a59e5da85f21fed5759c6e481a02b9aa3cdb461967f/68747470733a2f2f7472617669732d63692e6f72672f67617272657474772f737472696e676f626a6563742e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/garrettw/stringobject) [![Code Climate](https://camo.githubusercontent.com/daa6ab14b943adfefb7055c98208d20054f7ed9f957c036599411700359942c1/68747470733a2f2f636f6465636c696d6174652e636f6d2f6769746875622f67617272657474772f737472696e676f626a6563742f6261646765732f6770612e737667)](https://codeclimate.com/github/garrettw/stringobject) [![Scrutinizer Code Quality](https://camo.githubusercontent.com/64d5cf880c3757a112ca90c61958dbd5283cd8c83e515590f2e6fafbfe5e4f49/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f67617272657474772f737472696e676f626a6563742f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/garrettw/stringobject/?branch=master) [![Codacy Badge](https://camo.githubusercontent.com/ccc952507697cf331586400ade7457ce4e3f691e587ef00c8d8fea34eb4308c1/68747470733a2f2f6170702e636f646163792e636f6d2f70726f6a6563742f62616467652f47726164652f6136633936343766343237313435636638653661303365623263656564393434)](https://app.codacy.com/gh/garrettw/stringobject/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)

The goal of this library is to provide an object interface to interact with strings, in conjunction with handling UTF-8 strings just as smoothly and painlessly as ASCII strings while adding in additional features.

Usage
-----

[](#usage)

TODO
----

[](#todo)

- Write tests for Utf8String
- Work on normalization code
- Consider using a different testing framework because nobody uses PhpSpec... PHPUnit, Codeception, or Pest
- Flesh out devcontainer config with extensions

###  Health Score

16

—

LowBetter than 5% of packages

Maintenance30

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity16

Early-stage or recently created project

 Bus Factor1

Top contributor holds 98.8% 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/a7e8be4a927b0c247c9e163e6c48a97e7536f2fff51129b85db8f05495faff36?d=identicon)[garrettw](/maintainers/garrettw)

---

Top Contributors

[![garrettw](https://avatars.githubusercontent.com/u/84885?v=4)](https://github.com/garrettw "garrettw (81 commits)")[![scrutinizer-auto-fixer](https://avatars.githubusercontent.com/u/6253494?v=4)](https://github.com/scrutinizer-auto-fixer "scrutinizer-auto-fixer (1 commits)")

---

Tags

php

### Embed Badge

![Health badge](/badges/garrettw-stringobject/health.svg)

```
[![Health](https://phpackages.com/badges/garrettw-stringobject/health.svg)](https://phpackages.com/packages/garrettw-stringobject)
```

PHPackages © 2026

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