PHPackages                             becklyn/schema-org - 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. becklyn/schema-org

ActiveSymfony-bundle[Utility &amp; Helpers](/categories/utility)

becklyn/schema-org
==================

1.7.0(4y ago)57.5k—0%BSD-3-ClausePHPPHP &gt;=7.4

Since Aug 5Pushed 4y ago2 watchersCompare

[ Source](https://github.com/Becklyn/schema-org)[ Packagist](https://packagist.org/packages/becklyn/schema-org)[ RSS](/packages/becklyn-schema-org/feed)WikiDiscussions 1.x Synced 1mo ago

READMEChangelog (10)Dependencies (7)Versions (13)Used By (0)

Becklyn Schema.org Bundle
=========================

[](#becklyn-schemaorg-bundle)

This bundle provides a thin integration for rendering Schema.org-compatible JSON-LD meta data tags.

Creating a schema
=================

[](#creating-a-schema)

Before you can render the meta data inside your templates, you need to implement a `SchemaBuilderInterface` for each entity type, that you want to generate a JSON-LD schema for.

An example `SchemaBuilderInterface` implementation would look like this, which would convert an `MyNewsArticle` into a Schema.org `Article`.

```
use App\Entity\MyNewsArticle;
use Becklyn\SchemaOrg\Data\Article;
use Becklyn\SchemaOrg\Data\Organization;
use Becklyn\SchemaOrg\Data\SchemaOrgDataInterface;
use Becklyn\SchemaOrg\SchemaBuilder\SchemaBuilderInterface;

class MyNewsSchemaBuilder implements SchemaBuilderInterface
{
    /**
     * @inheritDoc
     */
    public function supports ($entity, ?string $usage = null, array $context = []) : bool
    {
        return $entity instanceof MyNewsArticle;
    }

    /**
     * @inheritDoc
     */
    public function buildSchema ($entity, ?string $usage = null, array $context = []) : ?SchemaOrgDataInterface
    {
        \assert($entity instanceof MyNewsArticle);

        // Don't generate metadata for unpublished news
        if (!$entity->isPublished())
        {
            return null;
        }

        return (new Article())
            ->withEditor($entity->getAuthor())
            ->withAbout($entity->getTeaserText())
            ->withArticleBody($entity->getTextContent())
            ->withPublisher(
                (new Organization())
                    ->withName("Awesome Publisher")
                    ->withEmail("news@example.com")
            )
            ->withLicense("Creative Commons Attribution-ShareAlike 3.0")
        ;
    }
}
```

Render meta data tag
====================

[](#render-meta-data-tag)

To render the JSON-LD meta data tag, call the Twig function `{{ schema_org_meta_data(myAppEntity) }}` and pass in an optional `usage` and `context` parameter, if you need to tweak the output based on the current render context.

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity27

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity62

Established project with proven stability

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

Recently: every ~66 days

Total

13

Last Release

1551d ago

PHP version history (2 changes)1.0.0PHP ^7.4

1.7.0PHP &gt;=7.4

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1044355?v=4)[Becklyn Studios](/maintainers/becklyn)[@Becklyn](https://github.com/Becklyn)

---

Tags

json-ldschema-orgseosymfonysymfony-bundle

### Embed Badge

![Health badge](/badges/becklyn-schema-org/health.svg)

```
[![Health](https://phpackages.com/badges/becklyn-schema-org/health.svg)](https://phpackages.com/packages/becklyn-schema-org)
```

###  Alternatives

[codefog/contao-haste

haste extension for Contao Open Source CMS

42650.8k139](/packages/codefog-contao-haste)[spomky-labs/pwa-bundle

Progressive Web App Manifest Generator Bundle for Symfony.

6144.4k1](/packages/spomky-labs-pwa-bundle)[netgen/layouts-core

Netgen Layouts enables you to build and manage complex web pages in a simpler way and with less coding. This is the core of Netgen Layouts, its heart and soul.

3689.4k10](/packages/netgen-layouts-core)[netgen/content-browser

Netgen Content Browser is a Symfony bundle that provides an interface which selects items from any kind of backend and returns the IDs of selected items back to the calling code.

14112.1k8](/packages/netgen-content-browser)

PHPackages © 2026

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