PHPackages                             murmurcodechallange/murmurcodechallange - 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. murmurcodechallange/murmurcodechallange

ActiveLibrary

murmurcodechallange/murmurcodechallange
=======================================

00PHP

Since Aug 17Pushed 5y ago1 watchersCompare

[ Source](https://github.com/jmidtlyng/murmur_code-challenge)[ Packagist](https://packagist.org/packages/murmurcodechallange/murmurcodechallange)[ RSS](/packages/murmurcodechallange-murmurcodechallange/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

Murmur Code Challenge
=====================

[](#murmur-code-challenge)

This is Jacob Midtlyng's submission for Murmur's code challange with the following requirements:

> Create a composer package that can be installed locally using composer create-project And which uses autoloading. Attached is a CSV file containing image links. The package/program will need to run, ingest the CSV, and download all the images to a directory.
>
> This needs to run on PHP 7.3+ and should run on the command line, but does not need to generate useful output
>
> When you are done please send us a zipped git repository or public git(hub|bucket) link.

Use
---

[](#use)

This code sample can be installed and run using the following steps:

1. Clone this repo *git clone :jmidtlyng/murmur\_code-challenge.git*
2. Run *composer create-project* from the cloned project directory.
3. After composer creates the project, run *composer run-script download-images* from the root of the project directory.

Configuration
-------------

[](#configuration)

The input CSV and the output images accept simple configurations using the config.json file at src/config.json relative to project root. Here is the default configuration

```
{
    "input": {
        "path": "input/images.csv",
        "extensionsAllowed": [
            "jpeg",
            "jpg",
            "png"
        ]
    },
    "output": {
        "images":
            {
                "directory": "output/images",
                "overwrite": 0
            }
    }
}

```

- input.path and output.images.directory are default to locations relative to running the *download-images* script from directory root, but can be changed.
- output.images.overwrite determines accepts 1 or 0.
    - If set to 1; downloaded images will overwrite images with the same name in the output path.
    - If set to 0; downloaded images will be appended with a version number incrementing by 1 if there is an image with the same name.
    - For example:
        - imagename.jpg
        - imagename--1.jpg
        - imagename--2.jpg
- input.extensionsAllowed is an array of accepted file extensions for image downloads. If the retreived file doesn't match one of these image types, it will not be downloaded and the warning will be logged.

### Errors and Warnings

[](#errors-and-warnings)

Errors and warnings are logged at output/errors.log relative to root directory of project.

###  Health Score

16

—

LowBetter than 4% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity0

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity33

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/d6036740ebc4f50f84bdd74456692a82d02ad18d69147bd084ab2c4b4c69e9bd?d=identicon)[jacobmidtlyng](/maintainers/jacobmidtlyng)

---

Top Contributors

[![jmidtlyng](https://avatars.githubusercontent.com/u/5558320?v=4)](https://github.com/jmidtlyng "jmidtlyng (8 commits)")

### Embed Badge

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

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

PHPackages © 2026

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