PHPackages                             modius22/portfolio - 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. modius22/portfolio

ActiveProject[Templating &amp; Views](/categories/templating)

modius22/portfolio
==================

Portfolio App

v1.1.0(7y ago)311MITPHP

Since Apr 2Pushed 7y ago2 watchersCompare

[ Source](https://github.com/Modius22/portfolio)[ Packagist](https://packagist.org/packages/modius22/portfolio)[ RSS](/packages/modius22-portfolio/feed)WikiDiscussions master Synced 2mo ago

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

Portfolio Generator
===================

[](#portfolio-generator)

Work in progress

Change Log
----------

[](#change-log)

### Version 1.1

[](#version-11)

- remove silex

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

[](#installation)

**Required PHP 7**

```
git clone https://github.com/Modius22/portfolio.git MyPortfolio
```

or

```
composer create-project modius22/portfolio MyPortfolio
```

Basic Usage
-----------

[](#basic-usage)

```
cd MyPortfolio
composer install
php -S localhost:8090
```

Now open **MyPortfolio** in your favorite IDE and create a **meta.json**-file in the **resources**-directory. This file contains all information of your portfolio.

### meta.json

[](#metajson)

The **sections**-property contains every section of your portfolio. The **key** is the section title and the **value** is the section content (=object). For example a *about me* and *skills*-section looks like

```
{
  "sections": {
    "About me": {
      "description": "Hello my name is ..."
    },
    "Skills": {
      "description": "CodingCSS"
    }
  }
}
```

Open your browser and go to **localhost:8090**, you should see a heading with the text *About me* and a paragraph with *Hello my name is* and a heading with *Skills* and a listing with *Coding* and *CSS*

**Note:** The default template uses the Bootstrap framework, jQuery and chart.js from CDN. The **description-property is parsed by Twig**

Section Templates
-----------------

[](#section-templates)

HTML in JSON-files is a bit messy, so you should use templates.
First, add the **template**-property to your *About me*-section and set it to the path to the template:

```
{
  "sections": {
    "About me": {
      "template": "sections/about_me.html.twig"
    }
  }
}
```

Next, create in the **resources**-directory a directory with the name **sections** and in this create the **about\_me.html.twig** with this content:

```
{{ heading }}
Hello my name is ...
```

**Note:** heading is the key of the section-array. It can be overwritten with the **heading**-property

### Variables

[](#variables)

You can also add variables in your meta.json sections which you can use in your template.
For example, add the **name**-property with your name to the **About me** section and in your template replace "*...*" with `{{ section.name }}`

**Note:** The `section`-Variable contains all section-properties

Resources (images, css...)
--------------------------

[](#resources-images-css)

For additional resources you can add the **resources**-property in the **meta.json** and call the **resource-twig-function**

```
{
    "resources": {
        "octocat": "https://assets-cdn.github.com/favicon.ico",
        "internal": "@hello.png"
    }
}
```

In your template:

```

```

The resource-function accepts 3 parameters:

1. resource-name (key in resources)
2. embed the resource (loads the file an writes into the html code)
3. encode the embedded source as base64 (useful to embed images)

If the resource-path starts with **@** the file is loaded from the resources-directory

Custom Template
---------------

[](#custom-template)

To override the base template, create a **template.custom.html.twig** in the resources directory.

German Tutorial
---------------

[](#german-tutorial)

Part 1: Part 2: Part 3:

Example Site
------------

[](#example-site)

The portfolio from Christian Piazzi (Modius22):

Contribute
----------

[](#contribute)

Feel free to fork this repository and create pull-requests

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor1

Top contributor holds 86.4% 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 ~425 days

Total

2

Last Release

2905d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/1759662db9939f012f5c4af2887afbde067d75a42062c7c07bf72afedcb8bec4?d=identicon)[Modius22](/maintainers/Modius22)

---

Top Contributors

[![Modius22](https://avatars.githubusercontent.com/u/1643737?v=4)](https://github.com/Modius22 "Modius22 (19 commits)")[![devtronic](https://avatars.githubusercontent.com/u/2362734?v=4)](https://github.com/devtronic "devtronic (3 commits)")

---

Tags

csshtmlportfolioskillstwig

### Embed Badge

![Health badge](/badges/modius22-portfolio/health.svg)

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

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[contao/core-bundle

Contao Open Source CMS

1231.6M2.4k](/packages/contao-core-bundle)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)[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)

PHPackages © 2026

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