PHPackages                             hktr92/oopize - 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. hktr92/oopize

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

hktr92/oopize
=============

Make PHP a more OOP-friendly place.

v0.4.5(5y ago)12.6kMITPHPPHP &gt;=7.1

Since Feb 12Pushed 5y ago1 watchersCompare

[ Source](https://github.com/hktr92/oopize)[ Packagist](https://packagist.org/packages/hktr92/oopize)[ RSS](/packages/hktr92-oopize/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependencies (3)Versions (12)Used By (0)

The OOPize project
------------------

[](#the-oopize-project)

This project is about making PHP more OOP-friendly place.

Imagine this: you're developing an enterprise application with Symfony and everything looks fancy and stuff...

...until you have to use `explode()` to split a string by a delimiter. Or to boilerplate your code with checks if a JSON is parsed without errors (ante-PHP 7.3). Or to make sure a string is not empty.

PHP by default does not provide OOP support for scalar types, so you won't be able to do `$var = "foo"; $var->empty();`to soon (even if there [there is an RFC about this](https://wiki.php.net/rfc/class-like_primitive_types)).

About stability
---------------

[](#about-stability)

Given it's early stage, it's difficult to maintain versions. The initial idea was:

- 0.x.y version is to represent API version. When this lib will be mostly completed, 1.x.y will be released with major improvements, stability and more secure.
- x.0.y version is to represent feature class, e.g. 0.1.0 - StringUtil, 0.2.0 - added ClassUtil, etc.
- x.y.0 version is to represent feature class improvements, e.g. 0.1.1 - StringUtil fixes, 0.2.1 - ClassUtil new feature

But this is absurd to have. Sure, latest version should always have latest version from every util class. But the oldest will always be the more mature one.

And increasing the version tag after EACH commit is insanely difficult to maintain and manually do.

Given this, I recommend to always use `dev-master`, as it is always the latest version and contains the latest features and fixes. No, I won't BC stuff, `v1.0.0` is happening on another branch and `php-ext-oopize` is happening on another repo. (Yes, I started to rewrite these features in [zephir](https://github.com/phalcon/zephir).)

And this happens because of two things:

1. this is how this project came to life (`StringUtil`, `NumberUtil` and `ClassUtil` were written for one of my project)
2. this is how and why I maintain, extend and improve this project.

Structure
---------

[](#structure)

Inside `Util` directory, there are defined various functionality. The implementation vary, as it can be either partially or fully static methods.

For example, `StringUtil` has fully static, while `ArrayUtil` is partially static (as you can use `$foo = new ArrayUtil;`)

Inside `Traits` directory, you'll have traits that is targeted for class usage.

E.g. instead of calling `ClassUtil::callGetter($this, 'foo');` you can call `$this->callGetter('foo');`.

PHP Extension
-------------

[](#php-extension)

As mentioned earlier, I've started to play around with Zephir. This means that this library will be available as a PHP extension (in order to better handle memory consumption), but a PHP polyfill will be released too, based on generated IDE stubs.

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

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 ~24 days

Recently: every ~7 days

Total

11

Last Release

2043d ago

PHP version history (2 changes)v0.1.0PHP ^7.1

v0.4.5PHP &gt;=7.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/2d3cd58368a2453474c9b6ffe80c320efa5c64743542b7effb3f49ec661eb6df?d=identicon)[hktr92](/maintainers/hktr92)

### Embed Badge

![Health badge](/badges/hktr92-oopize/health.svg)

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

###  Alternatives

[composer/composer

Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.

29.4k187.2M2.6k](/packages/composer-composer)[vlucas/phpdotenv

Loads environment variables from `.env` to `getenv()`, `$\_ENV` and `$\_SERVER` automagically.

13.5k602.4M5.4k](/packages/vlucas-phpdotenv)[symfony/filesystem

Provides basic utilities for the filesystem

4.6k669.1M3.2k](/packages/symfony-filesystem)[symfony/config

Helps you find, load, combine, autofill and validate configuration values of any kind

4.3k455.2M6.6k](/packages/symfony-config)[symfony/maker-bundle

Symfony Maker helps you create empty commands, controllers, form classes, tests and more so you can forget about writing boilerplate code.

3.4k111.1M568](/packages/symfony-maker-bundle)[illuminate/support

The Illuminate Support package.

583107.1M34.5k](/packages/illuminate-support)

PHPackages © 2026

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