PHPackages                             morfeditorial/machinima-core - 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. [Templating &amp; Views](/categories/templating)
4. /
5. morfeditorial/machinima-core

ActiveSymfony-bundle[Templating &amp; Views](/categories/templating)

morfeditorial/machinima-core
============================

The Core CMS bundle for the Machinima platform.

020PHPCI passing

Since Jul 25Pushed 1mo agoCompare

[ Source](https://github.com/morfeditorial/machinima-core)[ Packagist](https://packagist.org/packages/morfeditorial/machinima-core)[ RSS](/packages/morfeditorial-machinima-core/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependenciesVersions (1)Used By (0)

[![Morf Editorial](assets/images/morf-logo.svg)](assets/images/morf-logo.svg)machinima-core
==============

[](#machinima-core)

*Core CMS Bundle of the Machinima platform.*

[![Latest Stable Version](https://camo.githubusercontent.com/0865662596903cb81cb3f036952df3dab9b01845b1a3b533d4c0a4747760ab27/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d6f7266656469746f7269616c2f6d616368696e696d612d636f72652e7376673f6c6162656c3d5061636b6167697374266c6f676f3d7061636b6167697374)](https://packagist.org/packages/morfeditorial/machinima-core)[![Total Downloads](https://camo.githubusercontent.com/e2b9990b52734a67b240a214796041c9301b03e68448f34acd1a7469bd0cd9ce/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d6f7266656469746f7269616c2f6d616368696e696d612d636f72652e7376673f6c6162656c3d446f776e6c6f616473266c6f676f3d7061636b6167697374)](https://packagist.org/packages/morfeditorial/machinima-core)[![License](https://camo.githubusercontent.com/6974e59ba2d2998678fd41b933970b5558a5a23826a232865f3643766677e1b5/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6d6f7266656469746f7269616c2f6d616368696e696d612d636f72652e7376673f6c6162656c3d4c6963656e6365266c6f676f3d6f70656e2d736f757263652d696e6974696174697665)](https://packagist.org/packages/morfeditorial/machinima-core)

[Architecture](#architecture) · [Tech stack](#tech-stack) · [Installation](#installation) · [Contributing](#contributing)

---

This Symfony Bundle provides the core business logic, entities, services, and base UI templates for the Machinima platform. Its unique architecture ensures that the core system remains completely independent and entirely free of any hardcoded platform (like Telegram) dependencies.

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

[](#architecture)

The core knows nothing about specific login platforms. Everything platform-specific (Telegram, or any other) lives in separate adapters, plugged in through contracts:

- **`Morfeditorial\MachinimaCoreBundle\Contract\PlatformAdapterInterface`** — a platform adapter: declares its own name (`getPlatformName()`), an optional JS module for zero-click bootstrap (`getBootstrapModulePath()`), an optional JS module for presentational UI hints (theme, back button — `getUiHintsModulePath()`), and the session's UI context (`getUiContext()`).
- **`Morfeditorial\MachinimaCoreBundle\Contract\IdentityProviderPort`** — an identity provider: validates an assertion (an OIDC id\_token, a signed initData string, etc.) and returns an `IdentityAssertion`.
- **`Morfeditorial\MachinimaCoreBundle\Contract\BootstrapOnlyIdentityProvider`** — a marker for providers that are only ever used via zero-click bootstrap and must never appear as a button on `/login`.

Zero-click login (e.g. from a Telegram Mini App) goes through a single, generic `POST /api/auth/bootstrap` endpoint: the platform's bootstrap module detects its runtime in the browser on its own, builds an opaque `assertion`, and sends `{provider, assertion}` — with no custom HTTP headers or other platform-specific workarounds involved.

Currently the only real adapter is [`machinima-telegram-adapter`](https://github.com/morfeditorial/machinima-telegram-adapter), pulled in as a separate composer package in the host application.

Tech stack
----------

[](#tech-stack)

This bundle relies on the following core technologies to provide its features:

- **Backend**: PHP 8.4+, Symfony Components (Security, EventDispatcher, Twig)
- **Data Access**: Doctrine ORM
- **Frontend Base**: Twig, Turbo (Hotwire), Vanilla CSS (Utility-First), and Lucide Icons

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

[](#installation)

To install this bundle in your Symfony host application:

```
composer require morfeditorial/machinima-core
```

Ensure the bundle is registered in your `config/bundles.php`:

```
return [
    // ...
    Morfeditorial\MachinimaCoreBundle\MachinimaCoreBundle::class => ['all' => true],
];
```

Project structure
-----------------

[](#project-structure)

```
machinima-core/
+-- config/                      # Bundle configuration (services, routes)
+-- src/
|   +-- Command/                 # CLI commands
|   +-- Contract/                # platform-agnostic contracts (adapters, identity providers, UI context)
|   +-- Controller/              # web + API controllers
|   +-- Entity/                  # Doctrine entities
|   +-- Event/                   # domain events (e.g. UserAuthenticatedEvent)
|   +-- EventListener/           # event subscribers
|   +-- Security/                # authentication/authorization
|   +-- Service/                 # adapter/provider registries and other business logic
|   +-- Twig/                    # Twig extensions/runtime
|   \-- MachinimaCoreBundle.php  # Main bundle class
+-- templates/                   # Twig templates
\-- Resources/
    \-- public/                  # Public CSS/JS assets

```

Contributing
------------

[](#contributing)

Contributions are welcome and appreciated! Here's how you can contribute:

1. Fork the project
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

Please make sure to update tests as appropriate and adhere to the existing coding style.

License
-------

[](#license)

This bundle is licensed under the CSSM Unlimited License v2.0 (CSSM-ULv2). See the [LICENSE](LICENSE) file for details.

###  Health Score

22

—

LowBetter than 21% of packages

Maintenance61

Regular maintenance activity

Popularity8

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

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://www.gravatar.com/avatar/e2471bdadcf4a5ea969fe763a72d03fb46525b59a7e4cedc3ed4d855029e7785?d=identicon)[ChernegaSergiy](/maintainers/ChernegaSergiy)

---

Top Contributors

[![ChernegaSergiy](https://avatars.githubusercontent.com/u/60980650?v=4)](https://github.com/ChernegaSergiy "ChernegaSergiy (790 commits)")

---

Tags

cmsdomain-modelshotwire-turbomachinimamorf-editorialphpphp8server-side-renderingsymfonysymfony-bundletwigvanilla-css

### Embed Badge

![Health badge](/badges/morfeditorial-machinima-core/health.svg)

```
[![Health](https://phpackages.com/badges/morfeditorial-machinima-core/health.svg)](https://phpackages.com/packages/morfeditorial-machinima-core)
```

###  Alternatives

[twig/cache-extra

A Twig extension for Symfony Cache

412.6M46](/packages/twig-cache-extra)[pdewit/nova-external-url

An external URL Laravel Nova field.

30386.3k](/packages/pdewit-nova-external-url)[wbrowar/guide

A CMS Guide for Craft CMS.

6154.7k1](/packages/wbrowar-guide)[localgovdrupal/localgov_base

The base theme for LocalGov Drupal websites.

13128.3k5](/packages/localgovdrupal-localgov-base)[jralph/twig-markdown

A simple twig markdown extension.

1174.5k3](/packages/jralph-twig-markdown)[tiutalk/haml

CakePHP HAML template engine

1712.2k](/packages/tiutalk-haml)

PHPackages © 2026

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