PHPackages                             thijsrijpert/php-development-kit - 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. thijsrijpert/php-development-kit

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

thijsrijpert/php-development-kit
================================

Port of the JDK to PHP

1.0.1(1y ago)3222GPL-2.0-onlyPHP

Since May 31Pushed 1y ago1 watchersCompare

[ Source](https://github.com/thijsrijpert/php-development-kit)[ Packagist](https://packagist.org/packages/thijsrijpert/php-development-kit)[ RSS](/packages/thijsrijpert-php-development-kit/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (2)Versions (3)Used By (0)

php-development-kit
===================

[](#php-development-kit)

The PHP Development Kit is a project to port the core interfaces and classes of OpenJDK to PHP.

Project is a Work in Progress and should not be used in production for now.

Standards
---------

[](#standards)

The PHP Developement Kit conforms to the following standards:

- PSR-1 - Basic coding standard ()
- PSR-4 - Autoloader ()
- PSR-12 - Extended coding style guide ()

Usage
-----

[](#usage)

All classes that interact with this library should extend TObject or implement IObject

All enums that interact with this library should implement IObject and use the EnumTrait, which makes it compatible with IObject

### Object Example (TBoolean, Shortend)

[](#object-example-tboolean-shortend)

```
class TBoolean extends TObject implements Serializable, Comparable
{

    /**
     * Create a new boolean wrapper object
     * @param bool $value the value being wrapped
     */
    public function __construct(private readonly bool $value) { }

    /**
     * Returns the value of this Boolean object as a boolean
     * primitive.
     *
     * @return  bool the primitive boolean value of this object.
     */
    public function booleanValue(): bool {
        return $this->value;
    }

    /**
     * Returns a Boolean instance representing the specified
     * boolean value.  If the specified boolean value
     * is true, this method returns Boolean.TRUE;
     * if it is false, this method returns Boolean.FALSE.
     * If a new Boolean instance is not required, this method
     * should generally be used in preference to the constructor
     * {@link #Boolean(boolean)}, as this method is likely to yield
     * significantly better space and time performance.
     *
     * @param  bool|string $b a boolean value.
     * @return TBoolean a Boolean instance representing b.
     * @since  1.4
     */
    public static function valueOf(bool|string $b): TBoolean {
        if (GType::of($b)->isString()) {
            $b = self::parseBoolean($b);
        }
        return $b ? new TBoolean(true) : new TBoolean(false);
    }

    /**
    * Convert the internal value to a string representation
    * @return string the string representation of the internal value
    */
    public function toString(): string {
        return $b ? "true" : "false";
    }

    /**
     * Returns a hash code for this Boolean object.
     *
     * @return int the integer 1231 if this object represents
     * true; returns the integer 1237 if this
     * object represents false.
     */
    public function hashCode(): int {
        return $value ? 1231 : 1237;
    }

    /**
     * Returns true if and only if the argument is not
     * null and is a Boolean object that
     * represents the same boolean value as this object.
     *
     * @param   ?IObject $obj   the object to compare with.
     * @return  bool true if the Boolean objects represent the
     *          same value; false otherwise.
     */
    public function equals(?IObject $obj = null): bool {
        if ($obj === null) {
            return false;
        }
        if ($obj instanceof TBoolean) {
            return $this->value == ($obj->booleanValue());
        }
        return false;
    }
}

```

### Enum Example (GType, Shortend)

[](#enum-example-gtype-shortend)

```
enum GType implements IEnum
{

    use EnumTrait;

    case BOOLEAN;
    case INTEGER;
    case FLOAT;
    case STRING;
    case ARRAY;
    case OBJECT;
    case RESOURCE;
    case RESOURCE_CLOSED;
    case NULL;
    case UNKNOWN;

    /*
    * Instance Methods
    */

    /*
    * Class methods
    */
}

```

Testing
-------

[](#testing)

All code should be unit tested before release, the goal is to have 100% test coverage.

Testing is enforced by the pipeline.

Tests should be written assuming execution on a 64-bit machine.

License
-------

[](#license)

This repository uses GPLv2 with class path exception, for more information see:

- LICENSE
- ADDITIONAL\_LICENSE\_INFO

I am not affiliated with Oracle or OpenJDK in any way.

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance35

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity42

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

Total

2

Last Release

682d ago

### Community

Maintainers

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

---

Top Contributors

[![thijsrijpert](https://avatars.githubusercontent.com/u/60793766?v=4)](https://github.com/thijsrijpert "thijsrijpert (57 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/thijsrijpert-php-development-kit/health.svg)

```
[![Health](https://phpackages.com/badges/thijsrijpert-php-development-kit/health.svg)](https://phpackages.com/packages/thijsrijpert-php-development-kit)
```

###  Alternatives

[phing/phing

PHing Is Not GNU make; it's a PHP project build system or build tool based on Apache Ant.

1.2k21.7M876](/packages/phing-phing)[shlinkio/shlink

A self-hosted and PHP-based URL shortener application with CLI and REST interfaces

4.8k4.3k](/packages/shlinkio-shlink)[flow-php/etl

PHP ETL - Extract Transform Load - Abstraction

374468.4k51](/packages/flow-php-etl)[codefog/contao-haste

haste extension for Contao Open Source CMS

42650.8k139](/packages/codefog-contao-haste)[symfony/ai-bundle

Integration bundle for Symfony AI components

30282.3k6](/packages/symfony-ai-bundle)[netgen/layouts-core

Netgen Layouts enables you to build and manage complex web pages in a simpler way and with less coding. This is the core of Netgen Layouts, its heart and soul.

3689.4k10](/packages/netgen-layouts-core)

PHPackages © 2026

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