PHPackages                             emteknetnz/type-transitioner - 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. emteknetnz/type-transitioner

ActiveSilverstripe-vendormodule[Utility &amp; Helpers](/categories/utility)

emteknetnz/type-transitioner
============================

Type transitioner

0454PHP

Since Aug 22Pushed 3y ago1 watchersCompare

[ Source](https://github.com/emteknetnz/type-transitioner)[ Packagist](https://packagist.org/packages/emteknetnz/type-transitioner)[ RSS](/packages/emteknetnz-type-transitioner/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

type-transitioner
=================

[](#type-transitioner)

Assist with migration from dynamic typing to static typing

Note
----

[](#note)

`$lineageJ = $this->getClassLineage($argTypeI);` should be `$lineageJ = $this->getClassLineage($argTypeJ);`

However running appeared to get stuck in a recursive loop

However at this stage the team had alread agreed that we are not proceeding this with approach

Scanning multiple modules at once
---------------------------------

[](#scanning-multiple-modules-at-once)

Have tested this works correctly:

```
for vendorPath in vendor/*; do
  if [[ $vendorPath =~ vendor/(silverstripe|symbiote|dnadesign) ]]; then
    for modulePath in $vendorPath/*; do
      if [ -f TESTS_RUNNING.json ]; then
        rm TESTS_RUNNING.json
      fi
      pu $modulePath
      if [ -f $modulePath/behat.yml ]; then
        [[ $modulePath =~ /([a-zA-Z0-0\-]+)$ ]]
        suite="${BASH_REMATCH[1]}"
        bha $suite
      fi
    done
  fi
done

```

It will essentially skip recipe-cms and other recipes that contain testsuites instead of tests of their own, though this desirable as they would only duplicate tests of regular modules

If behat has an 'unexpected alert' issue, it will not run subsequent behat tests within the modoule, however bash will still continue to the next module to run phpunit tests.

Note as to why this work was not suitable for PHP8.1
----------------------------------------------------

[](#note-as-to-why-this-work-was-not-suitable-for-php81)

`_c('string', $arg, 1)` isn't appropriate for php8.1 because all the \_a() data collection will tell us what arg types were passed in. However if we get a bunch of `string` AND `null` - then is the param type `string`, or is it `string|null`. There's no easy way to tell if all the `null` args should be allowed or not.

Therefore we cannot comfortably put in `_c('string', $arg, 1)` because maybe we should allow `null` values for `$arg`? There's no way we can tell if it should be `string` or `?string`

Seems like we need to wait until CMS5, and then just make it `string` and manually update every `null` method call to a blank string

###  Health Score

17

—

LowBetter than 6% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity25

Early-stage or recently created project

 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.

### Community

Maintainers

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

---

Top Contributors

[![emteknetnz](https://avatars.githubusercontent.com/u/4809037?v=4)](https://github.com/emteknetnz "emteknetnz (95 commits)")

### Embed Badge

![Health badge](/badges/emteknetnz-type-transitioner/health.svg)

```
[![Health](https://phpackages.com/badges/emteknetnz-type-transitioner/health.svg)](https://phpackages.com/packages/emteknetnz-type-transitioner)
```

PHPackages © 2026

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