PHPackages                             codeenigma/jsonpopulate - 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. codeenigma/jsonpopulate

ActiveProject[Utility &amp; Helpers](/categories/utility)

codeenigma/jsonpopulate
=======================

A PHP tool to populate JSON data from existing web pages.

1.1.0(7y ago)0703GPL-3.0PHPPHP ^7.0

Since Feb 23Pushed 7y ago9 watchersCompare

[ Source](https://github.com/codeenigma/jsonpopulate)[ Packagist](https://packagist.org/packages/codeenigma/jsonpopulate)[ RSS](/packages/codeenigma-jsonpopulate/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependencies (5)Versions (5)Used By (0)

[![Build Status](https://camo.githubusercontent.com/9d58c93679feade748b6ddd95a41d5ce5f4b9c80fc1d08bf0a0978c706c42fbe/68747470733a2f2f7472617669732d63692e6f72672f636f6465656e69676d612f6a736f6e706f70756c6174652e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/codeenigma/jsonpopulate.svg?branch=master)

jsonPopulate
============

[](#jsonpopulate)

A PHP tool to populate JSON data from existing web pages. This allow the use of relevant content instead of "dummy" one for HTML prototypes (PatternLab and similar)

[![JsonPopulate screencast](jsonpopulate.gif)](jsonpopulate.gif)

Requirements
------------

[](#requirements)

jsonPopulate requires php 7.0 or greater.

Install
-------

[](#install)

Clone and install dependencies with composer, by running:

`composer install`

Alternatively, you can integrate it to your own project:

`composer require --dev codeenigma/jsonpopulate`

Setup
-----

[](#setup)

### Server

[](#server)

Simplest is to use php built in server:

`cd www && php -S localhost:8000`

or, if inside a VM of some kind, use the appropriate IP, eg for ce-vm:

`cd /vagrant/www && php -S 192.168.56.4:8000`

If in doubt or having issues, you can use the 0.0.0.0 IP to listen on all addresses. This means it potentially is accessible by others on the same network, so can be a security issue.

`cd /vagrant/www && php -S 0.0.0.0:8000`

### Configuration

[](#configuration)

Create a jsonpopulate.yml file somewhere in a parent folder of the jsonpopulate codebase. Look at the example folder for how the syntax look like, it basically consists in pairing "source" json files with "url" targets.

#### Note 1: The config file can be directly within any parent directory of the main jsonpopulate codebase

[](#note-1-the-config-file-can-be-directly-within-any-parent-directory-of-the-main-jsonpopulate-codebase)

Eg, provided jsonpopulate is at

`~/Projects/examples/prototype/tools/jsonpopulate`

Your config file can be at any of these locations:

`~/Projects/examples/prototype/tools/jsonpopulate.yml`

`~/Projects/examples/prototype/jsonpopulate.yml`

`~/Projects/examples/jsonpopulate.yml`

`~/Projects/jsonpopulate.yml`

`...`

but can NOT be at eg:

`~/Projects/examples/prototype/config/jsonpopulate.yml`

#### Note 2: Paths to the sources files are relative to the config file

[](#note-2-paths-to-the-sources-files-are-relative-to-the-config-file)

Using the same example as above, given a config file at

`~/Projects/examples/prototype/jsonpopulate.yml`

and a json file at

`~/Projects/examples/prototype/pattern-lab/source/data.json`

the "source" for that file in your jsonpopulate would be "pattern-lab/source/data.json"

Usage
-----

[](#usage)

### Loading

[](#loading)

Visit . You should be presented with:

- a list of available pages at the top
- a dual pane window with:
    - the JSON values as text field on the left
    - the matching URL loaded as a fake iframe on the right

### Setting values

[](#setting-values)

Start by clicking on a supported element (links, images, ...) on the visited url on the right. Then click on the json value you want to fill/override: you should be presented with a dropdown of possible variants derived from the previously clicked element.

### Navigating

[](#navigating)

To make it easier to find the elements you want, the "iframe" also allows you to navigate further between inner pages. To bypass the click hijack and actually follow a link, hold the "Alt" key while you click.

Known issues
------------

[](#known-issues)

- Due to cross-domain/CORS restrictions, iframe "escaping" scripts, bot detections measures and so on, the rendering of the the source url may vary greatly. Some domains (typically behind Sucuri or similar) will enterly fail to load, some will only miss a few fonts, while others will be mildly affected by partial execution of some Javascript parts.
- Only a few elements (a, img, p, span, submit) are currently supported.

Security
--------

[](#security)

Should be obvious, but this is intended for local dev usage. Never make this accessible over http on a public server. NEVER !

###  Health Score

29

—

LowBetter than 57% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity61

Established project with proven stability

 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.

###  Release Activity

Cadence

Every ~110 days

Total

4

Last Release

2718d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/514341?v=4)[Pascal Morin](/maintainers/pm98zz-c)[@pm98zz-c](https://github.com/pm98zz-c)

---

Top Contributors

[![justinepocock](https://avatars.githubusercontent.com/u/638213?v=4)](https://github.com/justinepocock "justinepocock (1 commits)")

### Embed Badge

![Health badge](/badges/codeenigma-jsonpopulate/health.svg)

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

###  Alternatives

[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k17.9M388](/packages/easycorp-easyadmin-bundle)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M560](/packages/shopware-core)[sylius/sylius

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

8.5k5.9M728](/packages/sylius-sylius)[pimcore/pimcore

Content &amp; Product Management Framework (CMS/PIM/E-Commerce)

3.8k3.8M504](/packages/pimcore-pimcore)[shopware/platform

The Shopware e-commerce core

3.4k1.5M3](/packages/shopware-platform)[open-dxp/opendxp

Content &amp; Product Management Framework (CMS/PIM)

9421.6k60](/packages/open-dxp-opendxp)

PHPackages © 2026

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