PHPackages                             maniaplanet/manialib-manialink - 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. maniaplanet/manialib-manialink

Abandoned → [manialib/manialink](/?search=manialib%2Fmanialink)Library[Utility &amp; Helpers](/categories/utility)

maniaplanet/manialib-manialink
==============================

Object-oriented PHP library for writing Manialink interfaces.

v0.1.1(11y ago)41.1k[1 PRs](https://github.com/maniaplanet/manialib-manialink/pulls)MITPHPPHP &gt;=5.3

Since May 21Pushed 11y ago6 watchersCompare

[ Source](https://github.com/maniaplanet/manialib-manialink)[ Packagist](https://packagist.org/packages/maniaplanet/manialib-manialink)[ Docs](https://github.com/maniaplanet/manialib-manialink)[ RSS](/packages/maniaplanet-manialib-manialink/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (3)Dependencies (3)Versions (6)Used By (0)

ManiaLib\\Manialink
===================

[](#manialibmanialink)

[![Latest Stable Version](https://camo.githubusercontent.com/1f335b3be9ec86e4e50f0359d57a7fc7163527a143afad96c37e6f47c83fad00/68747470733a2f2f706f7365722e707567782e6f72672f6d616e6961706c616e65742f6d616e69616c69622d6d616e69616c696e6b2f762f737461626c652e706e67)](https://packagist.org/packages/maniaplanet/manialib-manialink)[![Latest Unstable Version](https://camo.githubusercontent.com/5e15a7186500857c3c5f703a28ffd0207f3b046cab91f9e36363d823cc370248/68747470733a2f2f706f7365722e707567782e6f72672f6d616e6961706c616e65742f6d616e69616c69622d6d616e69616c696e6b2f762f756e737461626c652e737667)](https://packagist.org/packages/maniaplanet/manialib-manialink)[![Total Downloads](https://camo.githubusercontent.com/16e405e6d1400cc420da1fbf8c92ac05289de424beb40c3600b85fee80939ff3/68747470733a2f2f706f7365722e707567782e6f72672f6d616e6961706c616e65742f6d616e69616c69622d6d616e69616c696e6b2f646f776e6c6f6164732e706e67)](https://packagist.org/packages/maniaplanet/manialib-manialink)[![Build](https://camo.githubusercontent.com/f651b2fa949fed3cd8f49d346235e8095c2568491792204b104925b58b22dd83/68747470733a2f2f7472617669732d63692e6f72672f6d616e6961706c616e65742f6d616e69616c69622d6d616e69616c696e6b2e737667)](https://travis-ci.org/#!/maniaplanet/manialib-manialink)

ManiaLib\\Manialink is an object-oriented PHP library for writing Manialink interfaces based on [ManiaLib\\XML](https://github.com/maniaplanet/manialib-xml).

We discuss about it at [http://forum.maniaplanet.com/viewtopic.php?f=40&amp;t=25999](http://forum.maniaplanet.com/viewtopic.php?f=40&t=25999)

Installation
------------

[](#installation)

[Install via Composer](https://getcomposer.org/):

```
{
	"require": {
        "maniaplanet/manialib-manialink": "0.3.*@dev"
    }
}
```

Features
--------

[](#features)

- Features of [ManiaLib\\XML](https://github.com/maniaplanet/manialib-xml)
- Frame logical size and alignment
- Relative Alignment of child inside sized parent
- Cards for composing complex reusable sets of elements
- Helper classes for all styles/substyles

Architecture
------------

[](#architecture)

- See [ManiaLib\\XML](https://github.com/maniaplanet/manialib-xml)
- Most element should implement setter for usual attributes (eg. `ManiaLib\Manialink\Elements\Quad::setImage($image)`), but if the setter doesnt exists you can use `setAttribute($name, $value)` instead.
- For style and substyle, the setStyle($style) method handles both at once when used with abstract classes in `ManiaLib\Manialink\Styles\` eg. `Quad::create()->setStyle(Bgs1::BgWindow1);`

Examples
--------

[](#examples)

See /examples directory

Alignment and Relative Alignment
--------------------------------

[](#alignment-and-relative-alignment)

- Frame Size and Alignment emulates the behaviour of standard elements alignment in frames. With this you can create logical containers with a size, and position them using aligns and relative aligns (see below).
- Relative Alignment helps position an element relative to its parent container. For this, you need a frame with a size and a child with a size ; for instance you can put a quad in the "bottom right corner of a frame with a size".

To help understand these concepts visually:

- Cheat sheet manialink:
- Source: see in /example/alignments-cheat-sheet.php

Has it anything to do with ManiaLib Framework?
----------------------------------------------

[](#has-it-anything-to-do-with-manialib-framework)

Compared to former version of ManiaLib, this is just meant to be a standalone package to build Manialink pages. It can be used in any sort of projects, from Web frameworks (eg. ManiaLib) to server controllers (eg. ManiaLive). It shares some common code with ManiaLib\\Gui, but a lot was changed in naming and overall architecture.

Todo
----

[](#todo)

- Bug layouts dans Frame3d?
- Implement all Element classes
- Implement all layouts
- PhpDoc

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 81.5% 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 ~2 days

Total

4

Last Release

4368d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/194d53bc2cfc60dd7fc1d45d293fe0e732064c003f91716c9045cb09a985a8a4?d=identicon)[magnetik](/maintainers/magnetik)

![](https://avatars.githubusercontent.com/u/445622?v=4)[Maxime Raoust](/maintainers/gou1)[@gou1](https://github.com/gou1)

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

---

Top Contributors

[![gou1](https://avatars.githubusercontent.com/u/445622?v=4)](https://github.com/gou1 "gou1 (690 commits)")[![magnetik](https://avatars.githubusercontent.com/u/345029?v=4)](https://github.com/magnetik "magnetik (68 commits)")[![satanasdiabolo](https://avatars.githubusercontent.com/u/1850524?v=4)](https://github.com/satanasdiabolo "satanasdiabolo (66 commits)")[![NewboO](https://avatars.githubusercontent.com/u/1902874?v=4)](https://github.com/NewboO "NewboO (23 commits)")

---

Tags

ManiaPlanetShootManiaTrackManiaManiaLib

### Embed Badge

![Health badge](/badges/maniaplanet-manialib-manialink/health.svg)

```
[![Health](https://phpackages.com/badges/maniaplanet-manialib-manialink/health.svg)](https://phpackages.com/packages/maniaplanet-manialib-manialink)
```

###  Alternatives

[maniaplanet/dedicated-server-api

XML-RPC library to connect to Maniaplanet server

156.6k3](/packages/maniaplanet-dedicated-server-api)

PHPackages © 2026

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