PHPackages                             poing/ylem - 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. poing/ylem

ActiveLibrary

poing/ylem
==========

ylem /ˈiːlɛm/ - noun - (in the Big Bang theory) the primordial matter of the universe, originally conceived as composed of neutrons at high temperature and density..

0.1.1.x-dev(6y ago)160[3 PRs](https://github.com/poing/ylem/pulls)MITCSSPHP ^7

Since Feb 13Pushed 3y agoCompare

[ Source](https://github.com/poing/ylem)[ Packagist](https://packagist.org/packages/poing/ylem)[ Docs](https://github.com/poing/ylem)[ RSS](/packages/poing-ylem/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependencies (6)Versions (13)Used By (0)

[![](https://camo.githubusercontent.com/9294b1082812ea49ca3952619a6f183226ff751035cb3b8bf51548a9536d0467/68747470733a2f2f6769746c61622e636f6d2f706f696e672f796c656d2f6261646765732f6d61737465722f636f7665726167652e737667)](https://camo.githubusercontent.com/9294b1082812ea49ca3952619a6f183226ff751035cb3b8bf51548a9536d0467/68747470733a2f2f6769746c61622e636f6d2f706f696e672f796c656d2f6261646765732f6d61737465722f636f7665726167652e737667)[![](https://camo.githubusercontent.com/7527c39f64bbe0a467f828ce6873ed797b75c92ad19ef4445e0c98aec0584d0b/68747470733a2f2f6769746c61622e636f6d2f706f696e672f796c656d2f6261646765732f6d61737465722f6275696c642e737667)](https://camo.githubusercontent.com/7527c39f64bbe0a467f828ce6873ed797b75c92ad19ef4445e0c98aec0584d0b/68747470733a2f2f6769746c61622e636f6d2f706f696e672f796c656d2f6261646765732f6d61737465722f6275696c642e737667)

> **ylem** /ˈiːlɛm/ *noun*
>
> (in the Big Bang theory) the primordial matter of the universe, originally conceived as composed of neutrons at high temperature and density.

ylem
====

[](#ylem)

This is an implementation of the TMF632 Party Management API REST Specification in Laravel. Supporting Individual, Organization, &amp; Organizational Unit relational hierarchies.

- [Quick Start](#quick-start)

```
composer require poing/ylem
php artisan ylem:seed

```

Like the primordial substance from which all matter is formed, this is *intended* as the **core** application fabric for business and consumer interaction.

Directed Acyclic Graph (DAG)
----------------------------

[](#directed-acyclic-graph-dag)

Topological ordering and [directed acyclic graph](https://en.wikipedia.org/wiki/Directed_acyclic_graph) functions are provided for Laravel Eloquent models by the [`gazsp/baum`](https://packagist.org/packages/gazsp/baum) package. *`baum/baum` is no longer maintained.* While some *key* functions will be covered in this document, see the [complete documentation](https://github.com/gazsp/baum) for additional functions.

The use of the Dijkstras algorithm, to determine the shortest path, is **not** a *necessary* consideration of this project. Dijkstras algorithm functionally is **not** provided by the `gazsp/baum` package *anyway*.

[Package discovery](https://laravel.com/docs/5.7/packages#package-discovery) for `gazsp/baum` is handled by the extra section of **this** packages `composer.json` file. *Just to make it easier to use.*

Recursive Functions
-------------------

[](#recursive-functions)

Recursive functions are **important** for *cyclining* through **all** elements in the tree. This is because the `depth` of nodes and all decendants **will** be different. *This is the **advantage** that DAG provides, you're not locked into a strict level of hierarchies.*

```
.
├── alpha
│   └── bravo
│       └── charlie
└── one
    └── two
        └── three
            └── four
                └── five
                    └── six
                        └── seven
                            └── eight
                                └── nine
                                    └── ten
                                        └── eleven
                                            └── twelve

```

### Blade

[](#blade)

Below is an *example* of *recursive* iteration using the Blade templating engine provided with Laravel. *Recursive iteration can be acheived with `PHP` and other languages **too**.* Generating an unordered list output, *similar* to the tree *shown above*.

```
    function getBlade()  // Function or Route
    {
        $roots = \App\DirectedAcyclicGraph::roots()->get();
        return view('roots', compact('roots'));
    }
```

```

    @foreach ($roots as $item)
        {{ $item->someValue }}
        @include('nodes', array('items' => $item->getImmediateDescendants()))
    @endforeach

```

```

    @foreach ($items as $item)
        {{ $item->someValue }}
        @include('nodes', array('items' => $item->getImmediateDescendants()))
    @endforeach

```

Quick Start
-----------

[](#quick-start)

1. Create a Laravel Project

```
laravel new project_name
 -or-
composer create-project --prefer-dist laravel/laravel project_name
```

2. `cd project_name`
3. `composer require poing/ylem`
4. Publish the Laravel package

```
php artisan vendor:publish --provider Ylem\\Providers\\YlemServiceProvider

```

5. `php artisan migrate`
6. Seed the demo table *This could take a while, builds `10` root nodes with random nested itmes.*

```
php artisan db:seed --class=Ylem\\Database\\Seeds\\StubSeeder

```

7. Open `/ylem` in a browser.

### Stub Model and Data

[](#stub-model-and-data)

You will see the random data *associated* to `Ylem\Models\Stub`. This is simply a test table, once *seeded*, it can be used to *examine* the relationships. Faker is used to create: Company Name, JOB TITLE, and People Name.

```
$faker->company
└── strtoupper($faker->jobTitle)
    └── $faker->name
```

### php artisan tinker

[](#php-artisan-tinker)

Here are some `tinker` commands to check out:

```
$node = Ylem\Models\Stub::find(50);
$node->isRoot();            // Checks if root node
$node->getRoot();           // Gets the root node
$node->parent()->get();     // Gets parent node, if not root
$node->siblings()->get();   // Gets siblings, sharing the same parent
$node->children()->get();   // Gets any children for this node
```

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 87.9% 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 ~47 days

Total

3

Last Release

2554d ago

PHP version history (2 changes)0.0.11.x-devPHP &gt;=5.4.0

0.1.0.x-devPHP ^7

### Community

Maintainers

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

---

Top Contributors

[![poing](https://avatars.githubusercontent.com/u/11417007?v=4)](https://github.com/poing "poing (58 commits)")[![alalfakawma](https://avatars.githubusercontent.com/u/25346842?v=4)](https://github.com/alalfakawma "alalfakawma (8 commits)")

---

Tags

account-managementdirected-acyclic-graphlaravel-5-packageuser-management

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/poing-ylem/health.svg)

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

###  Alternatives

[cmgmyr/messenger

Simple user messaging tool for Laravel

2.6k2.4M6](/packages/cmgmyr-messenger)[tucker-eric/eloquentfilter

An Eloquent way to filter Eloquent Models

1.8k4.8M26](/packages/tucker-eric-eloquentfilter)[proengsoft/laravel-jsvalidation

Validate forms transparently with Javascript reusing your Laravel Validation Rules, Messages, and FormRequest

1.1k2.3M49](/packages/proengsoft-laravel-jsvalidation)[prologue/alerts

Prologue Alerts is a package that handles global site messages.

3486.1M30](/packages/prologue-alerts)[andreaselia/laravel-api-to-postman

Generate a Postman collection automatically from your Laravel API

1.0k586.2k3](/packages/andreaselia-laravel-api-to-postman)[cviebrock/eloquent-taggable

Easy ability to tag your Eloquent models in Laravel.

567694.8k3](/packages/cviebrock-eloquent-taggable)

PHPackages © 2026

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