PHPackages                             t-kuni/php-url-meta-mapper - 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. t-kuni/php-url-meta-mapper

ActiveLibrary

t-kuni/php-url-meta-mapper
==========================

URL based Meta data mapper.

1310PHP

Since Jul 27Pushed 6y agoCompare

[ Source](https://github.com/t-kuni/php-url-meta-mapper)[ Packagist](https://packagist.org/packages/t-kuni/php-url-meta-mapper)[ RSS](/packages/t-kuni-php-url-meta-mapper/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependenciesVersions (1)Used By (0)

PHP URL Meta Mapper
===================

[](#php-url-meta-mapper)

This library is URL based Meta tag(eg SEO text, OGP, etc...) mapper.
Purpose of this is to collect various places Meta tag settings into one place.
This is useful in web page like to often occur modification of Meta tag.
You can define mapping simply between URL and Meta tag through the fluent interface.

Instration
----------

[](#instration)

(TODO)

Features
--------

[](#features)

### Routing

[](#routing)

```
$mapper = (new Mapper())
    ->map(['/foo', '/bar'])->provide([
        'title' => 'foo bar page',
    ]);
    ->map(['/hoge', '/fuga'])->provide([
        'title' => 'hoge fuga page',
    ]);

$meta = $mapper->resolve('https://example.com/foo');

var_dump($meta);
// [
//   'title' => 'hoge fuga page'
// ]
```

### Route parameters, Query Strings

[](#route-parameters-query-strings)

```
$mapper = new Mapper();
$mapper->map('/foo/{id}')->provide(function($route, $query) {
    if ($route['id'] == 1) {
        return [
            'title' => "Routed One",
        ];
    } else {
        return [
            'title' => "Routed Two",
        ];
    }
});
$meta = $mapper->resolve('https://example.com/foo/2?hoge=fuga');
```

- Regular Expression Constraints (TBD)

### Hooks

[](#hooks)

#### Global Hook

[](#global-hook)

(TBD)

```
$mapper->global()->pre(function($route, $query, $binding) {

    return compact('route', 'query', 'binding');
});
```

#### Pre Hook

[](#pre-hook)

```
$m = (new Mapper())
    ->map('/foo/{id}')->pre(function ($route, $query, $binding) {
        $route['id'] = 100;
        return compact('route', 'query', 'binding');
    })->provide(function($route, $query) {
        return [
            'title' => 'id is ' . $route['id'],
        ];
    });

$actual = $m->resolve('https://example.com/foo/2');
// [
//   'title' => 'id is 100'
// ]
```

#### Post Hook

[](#post-hook)

(TBD)

### Templating

[](#templating)

```
$mapper = (new Mapper())
    ->map('/foo/{id}')->pre(function ($route, $query, $binding) {
        $binding['fizz'] = 'bazz';
        return compact('route', 'query', 'binding');
    })->provide(function ($route, $query) {
        return [
            'title' => '{{fizz}}',
        ];
    });

$meta = $mapper->resolve('https://example.com/foo/2?hoge=fuga');
```

### Aliases

[](#aliases)

### Generate Admin Page

[](#generate-admin-page)

(TBD)

### Reuse Template

[](#reuse-template)

(TBD)

```
$mapper = new Mapper();
$mapper->map('/foo')->provide(M::template([
    'title' => '{{fizz}}'
])->as('temp-name'));
$mapper->map('/bar')->provide(M::template('temp-name'));
$meta = $mapper->resolve('https://example.com/foo/2?hoge=fuga');
```

### define templates

[](#define-templates)

(TBD)

```
$templates = [
    'top-page' => [
        'title' => 'this is top page',
    ],
    'mypage' => [
        'title' => 'this is mypage',
    ]
]
```

Contributes
-----------

[](#contributes)

### Build

[](#build)

```
composer install --dev
```

###  Health Score

21

—

LowBetter than 19% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity36

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://avatars.githubusercontent.com/u/7825234?v=4)[t-kuni](/maintainers/t-kuni)[@t-kuni](https://github.com/t-kuni)

---

Top Contributors

[![example123](https://avatars.githubusercontent.com/u/87628?v=4)](https://github.com/example123 "example123 (22 commits)")

### Embed Badge

![Health badge](/badges/t-kuni-php-url-meta-mapper/health.svg)

```
[![Health](https://phpackages.com/badges/t-kuni-php-url-meta-mapper/health.svg)](https://phpackages.com/packages/t-kuni-php-url-meta-mapper)
```

PHPackages © 2026

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