PHPackages                             hyungju/readable-url - 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. hyungju/readable-url

ActiveLibrary

hyungju/readable-url
====================

Generate readable random phrases for URLs

1.2.5(5y ago)12894↑1900%1[2 issues](https://github.com/HyungJu/readable-url/issues)MITPHPPHP &gt;=7.3

Since Oct 2Pushed 5y ago1 watchersCompare

[ Source](https://github.com/HyungJu/readable-url)[ Packagist](https://packagist.org/packages/hyungju/readable-url)[ RSS](/packages/hyungju-readable-url/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (1)Versions (16)Used By (0)

[![Logo](readable.png)](readable.png)

[![All Contributors](https://camo.githubusercontent.com/db0a672758a6b3f2641e6c6099e3fadfd608167acfae3b31425eb3917b0dc47f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f616c6c5f636f6e7472696275746f72732d322d6f72616e67652e7376673f7374796c653d666c61742d737175617265)](#contributors-)

Generate readable random phrases for URLs

[![Badge](https://camo.githubusercontent.com/e2612f48634dd26311cc6a1c6be954777efe72e44d6769344f940f7c4d253130/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f776f726b666c6f772f7374617475732f6879756e676a752f7265616461626c652d75726c2f54657374)](https://camo.githubusercontent.com/e2612f48634dd26311cc6a1c6be954777efe72e44d6769344f940f7c4d253130/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f776f726b666c6f772f7374617475732f6879756e676a752f7265616461626c652d75726c2f54657374)[![Badge](https://camo.githubusercontent.com/ec5b4ae74bde1e1d1bf952e264d6ccf612c58cd7728731a1004a21c070d3f856/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646d2f6879756e676a752f7265616461626c652d75726c)](https://camo.githubusercontent.com/ec5b4ae74bde1e1d1bf952e264d6ccf612c58cd7728731a1004a21c070d3f856/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646d2f6879756e676a752f7265616461626c652d75726c)[![Badge](https://camo.githubusercontent.com/b84e9d45389ff43cd925528ccf1b71568b5bf809a2e598cc07294e3d78480c1d/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f6879756e676a752f7265616461626c652d75726c)](https://camo.githubusercontent.com/b84e9d45389ff43cd925528ccf1b71568b5bf809a2e598cc07294e3d78480c1d/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f6879756e676a752f7265616461626c652d75726c)[![Badge](https://camo.githubusercontent.com/35bf83eb2d2c5367e771ec901cec2907cc8de249b40b5022ee4ea1b47f11d263/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732d70722d636c6f7365642f6879756e676a752f7265616461626c652d75726c)](https://camo.githubusercontent.com/35bf83eb2d2c5367e771ec901cec2907cc8de249b40b5022ee4ea1b47f11d263/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732d70722d636c6f7365642f6879756e676a752f7265616461626c652d75726c)[![Badge](https://camo.githubusercontent.com/d0d541fd5659a173deb980327987532615ab173d4f4915bbfe6fe9f16b827e5e/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6879756e676a752f7265616461626c652d75726c)](https://camo.githubusercontent.com/d0d541fd5659a173deb980327987532615ab173d4f4915bbfe6fe9f16b827e5e/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6879756e676a752f7265616461626c652d75726c)[![Badge](https://camo.githubusercontent.com/81a06ac1b361af3ad15ada89c489b37ec06927f2587ffffab70983590d3f37cf/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6879756e676a752f7265616461626c652d75726c)](https://camo.githubusercontent.com/81a06ac1b361af3ad15ada89c489b37ec06927f2587ffffab70983590d3f37cf/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6879756e676a752f7265616461626c652d75726c)[![Badge](https://camo.githubusercontent.com/150396e315aa09f2115f182ac5ddadc9b4325800e4875ad4da831ea7c540a832/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6879756e676a752f7265616461626c652d75726c)](https://camo.githubusercontent.com/150396e315aa09f2115f182ac5ddadc9b4325800e4875ad4da831ea7c540a832/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6879756e676a752f7265616461626c652d75726c)[![Badge](https://camo.githubusercontent.com/e8b6fa7525ed6a41efa8586419b9e90a407ebbd008cac7db50e287bdcf06ab03/68747470733a2f2f696d672e736869656c64732e696f2f636f6465636f762f632f6769746875622f6879756e676a752f7265616461626c652d75726c)](https://camo.githubusercontent.com/e8b6fa7525ed6a41efa8586419b9e90a407ebbd008cac7db50e287bdcf06ab03/68747470733a2f2f696d672e736869656c64732e696f2f636f6465636f762f632f6769746875622f6879756e676a752f7265616461626c652d75726c)

---

How To Use
----------

[](#how-to-use)

This library is available on packagist. To install,

```
composer require hyungju/readable-url
```

Then create `ReadableURL` Class

```
$readableURL = new HyungJu\ReadableURL();
```

You can pass four parameters to the class.

```
use HyungJu\ReadableURL;
// Takes 4 parameters.
// 1. A boolean value - If true, returns string in CamelCase, else lowercase.
// 2. An integer value - The number of words to be generated in the string. (Between 2 and 10).
// 3. A string - The seperator between the words.
// 4. Language Class - Currently Supported : HyungJu\Language\En, HyungJu\Language\Ko. pass language instance! the default is HyungJu\Language\En
$readableURL = new ReadableURL();
//$readableURL = new HyungJu\ReadableURL(false, 5, '-', new HyungJu\Language\Ko()); // Other options.
```

To generate `ReadableURL`, call the `generate()` function.

```
use HyungJu\ReadableURL;

...

$readableURL = new ReadableURL();
$readableURL->generate();
// > QuickScrawnyCamp
```

In addition, the following are simple to:

```
use HyungJu\ReadableURL;

...

$str = ReadableURL::gen();
// > FierceSaltyComparison
```

This can be used to add to the end of a URL.

Example: `https://example.com/photos/ForgetfulHarshEgg`

For best results, use an integer value of 3, 4, or 5.

Test
----

[](#test)

`composer test`

Adding new language
-------------------

[](#adding-new-language)

1. Add wordsets to `src/words/[language code]`. adjectives.txt and nouns.txt are needed.
2. Create your language class `src/Language/[language code].php`. the class name must be started with Uppercase.
3. Implement the class based on other languages already implemented (korean and english)
4. Register your language in `src/Language/LanguageHelper.php`.
5. (optional) Add test for your language.

Versioning
----------

[](#versioning)

We use [SemVer](https://semver.org/) for versioning this project.

License
-------

[](#license)

MIT License

- This library is a PHP port of [readable-url](https://www.npmjs.com/package/readable-url)

Contributors ✨
--------------

[](#contributors-)

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):

  [![](https://avatars1.githubusercontent.com/u/6638675?v=4?s=100)
**도다**](https://github.com/ddarkr)
[💻](https://github.com/HyungJu/readable-url/commits?author=ddarkr "Code") [![](https://avatars.githubusercontent.com/u/32372051?v=4?s=100)
**Yukihyõ**](https://github.com/JulianOtten)
[💻](https://github.com/HyungJu/readable-url/commits?author=JulianOtten "Code") This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance17

Infrequent updates — may be unmaintained

Popularity23

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 84.7% 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 ~12 days

Recently: every ~35 days

Total

13

Last Release

1901d ago

PHP version history (2 changes)1.0.0PHP &gt;=7.1

1.0.3PHP &gt;=7.3

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/9509286?v=4)[HyungJu Sung](/maintainers/HyungJu)[@HyungJu](https://github.com/HyungJu)

---

Top Contributors

[![HyungJu](https://avatars.githubusercontent.com/u/9509286?v=4)](https://github.com/HyungJu "HyungJu (61 commits)")[![ddarkr](https://avatars.githubusercontent.com/u/6638675?v=4)](https://github.com/ddarkr "ddarkr (6 commits)")[![allcontributors[bot]](https://avatars.githubusercontent.com/in/23186?v=4)](https://github.com/allcontributors[bot] "allcontributors[bot] (4 commits)")[![JulianOtten](https://avatars.githubusercontent.com/u/32372051?v=4)](https://github.com/JulianOtten "JulianOtten (1 commits)")

---

Tags

composerphppsrreadable-urlsphp

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/hyungju-readable-url/health.svg)

```
[![Health](https://phpackages.com/badges/hyungju-readable-url/health.svg)](https://phpackages.com/packages/hyungju-readable-url)
```

###  Alternatives

[pestphp/pest-plugin-stressless

Stressless plugin for Pest

67792.6k16](/packages/pestphp-pest-plugin-stressless)

PHPackages © 2026

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