PHPackages                             ryunosuke/functions - 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. ryunosuke/functions

ActiveLibrary

ryunosuke/functions
===================

Utility functions for PHP

v2.0.34(2mo ago)01.7k↑61.1%7MITPHPPHP &gt;=8.0CI passing

Since Nov 21Pushed 2mo ago1 watchersCompare

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

READMEChangelogDependencies (5)Versions (143)Used By (7)

php-function
============

[](#php-function)

Install
-------

[](#install)

```
{
    "require": {
        "ryunosuke/functions": "dev-master"
    }
}
```

Usage
-----

[](#usage)

各リファレンスは  を参照してください。 変更点は [RELEASE.md](RELEASE.md) です。

### import

[](#import)

```
require __DIR__ . '/vendor/autoload.php';

// グローバルへ展開
\ryunosuke\Functions\Transporter::importAsGlobal();
// 名前空間へ展開
\ryunosuke\Functions\Transporter::importAsNamespace();
```

各関数前で assert が行われます。具体的には下記の動作です。

- 定義されていない
- 定義されていてかつそれがユーザー定義
- 定義されていてかつそれが組み込みなら Fatal Error

これは下記の動作を満たすためです。

- 一部上書きしたいかもしれない
    - スキップされるのであらかじめ定義しておくことで差し替えが可能になる
- 組み込みに新しく関数が増えるかもしれない
    - `!function_exists()` だと動いてしまうので定義時点で Fatal Error になったほうが安全

### export

[](#export)

下記のようにすると指定名前空間でファイル自体が吐き出されます。 こっちの利用方法がメインです。

```
require __DIR__ . '/vendor/autoload.php';

// 任意の名前空間へ出力
file_put_contents('path/to/function.php', \ryunosuke\Functions\Transporter::exportNamespace('namespace'));
```

あとはプロジェクト固有の include.php などで吐き出したファイルを読み込めば OK です。 これの利点は名前空間を変更できる点と、管理下のディレクトリに吐き出せることでカスタムができる点です。 さらに package との関連性が切れるため、原理上競合しなくなります。

下記のように第2引数を指定すると指定した関数と依存関係にある関数のみが吐き出されます。

```
require __DIR__ . '/vendor/autoload.php';

// 'funcA', 'funcB' だけを出力
file_put_contents('path/to/function.php', \ryunosuke\Functions\Transporter::exportNamespace('namespace', ['funcA', 'funcB']));
```

さらに第2引数にファイル名やディレクトリ名を与えるとそれらを php とみなして実際に使用されている関数のみが吐き出されます。

```
require __DIR__ . '/vendor/autoload.php';

// /path/to/project 内で使われている関数だけを出力
file_put_contents('path/to/function.php', \ryunosuke\Functions\Transporter::exportNamespace('namespace', '/path/to/project'));
```

依存関係も解決するので、例えば `funcA` や `funcB` が `funcC` に依存していれば `funcC` も吐き出されます。 用途はちょろっとしたコード片のコピペ用です（全体は要らんけど特定のやつだけ吐き出したい用途が個人的にあった）。

上記は `composer.json` の `autoload` をよしなに読んで自動で吐き出すコマンドが用意されています。

```
vendor/bin/export-function
# composer exec export-function

```

ただし、ほとんど内部用です。

下記のように exportClass を使用すると単一静的クラスとして吐き出せます。

```
require __DIR__ . '/vendor/autoload.php';

// name\space\Utils に単一クラスとして出力
file_put_contents('src/Utils.php', \ryunosuke\Functions\Transporter::exportNamespace('name\\space\\Utils', ['吐き出したい関数など']));
```

用途はいわゆる Utils 静的クラスです。 ただし、ほとんど内部用です。

Development
-----------

[](#development)

基本的に触るのは `src/Package` 以下のみです。他の似たようなファイルは自動生成です。

同じ関数があちこちにバラけるので、IDE によるジャンプが活かせません。 phpstorm 等なら 'include' を Exclude するといいでしょう。

composer subcommand として下記が定義されています。

- composer build
    - 下記の export, test, document を全て実行します
- composer export
    - src/Package を元に自動生成ファイルを吐き出します
- composer test
    - phpunit を実行します

###  Health Score

55

—

FairBetter than 98% of packages

Maintenance84

Actively maintained with recent releases

Popularity21

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity86

Battle-tested with a long release history

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

Recently: every ~16 days

Total

141

Last Release

81d ago

Major Versions

v1.6.19 → v2.0.02024-05-02

v1.6.20 → v2.0.102024-07-14

v1.6.24 → v2.0.152024-12-01

v1.6.25 → v2.0.162025-01-26

PHP version history (7 changes)v1.0.0PHP &gt;=5.4

v1.1.0PHP &gt;=5.6

v1.2.0PHP &gt;=7.0

v1.3.0PHP &gt;=7.1

v1.4.1PHP &gt;=7.2

v1.4.26PHP &gt;=7.4

v2.0.0PHP &gt;=8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/e51e177034dd7673cfaa86a43d5236ed7a6bc94f32d05c9100b039d908cd1174?d=identicon)[arima-ryunosuke](/maintainers/arima-ryunosuke)

---

Top Contributors

[![arima-ryunosuke](https://avatars.githubusercontent.com/u/7457522?v=4)](https://github.com/arima-ryunosuke "arima-ryunosuke (1326 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/ryunosuke-functions/health.svg)

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

PHPackages © 2026

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