PHPackages                             metalinspired/zend-mixed-collection-input-filter - 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. [Validation &amp; Sanitization](/categories/validation)
4. /
5. metalinspired/zend-mixed-collection-input-filter

Abandoned → [metalinspired/laminas-mixed-collection-input-filter](/?search=metalinspired%2Flaminas-mixed-collection-input-filter)ArchivedLibrary[Validation &amp; Sanitization](/categories/validation)

metalinspired/zend-mixed-collection-input-filter
================================================

Extended collection input filter that allows using different input filter per collection item

1.0.3(2y ago)112BSD-3-ClausePHPPHP ^7.0

Since Mar 22Pushed 2y ago1 watchersCompare

[ Source](https://github.com/metalinspired/zend-mixed-collection-input-filter)[ Packagist](https://packagist.org/packages/metalinspired/zend-mixed-collection-input-filter)[ RSS](/packages/metalinspired-zend-mixed-collection-input-filter/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (4)Dependencies (2)Versions (5)Used By (0)

zend-mixed-collection-input-filter
==================================

[](#zend-mixed-collection-input-filter)

> ## Repository abandoned 2023-11-23
>
> [](#repository-abandoned-2023-11-23)
>
> This repository has moved to [metalinspired/laminas-mixed-collection-input-filter](https://github.com/metalinspired/laminas-mixed-collection-input-filter).

This collection input filter allows you to define multiple input filters for collection items. Practical usage would be if you have an array (collection) of items which can have different structure and, thus, would require different input filter to filter/validate each item in collection.

Example
-------

[](#example)

```
class ExampleInputFilter extends InputFilter
{
    public function init()
    {
        $this->add((new MixedCollectionInputFilter())
            ->setNameKey('type')
            ->setInputFilters([
                'picture' => $this->picture(),
                'link' => $this->link(),
                'comment' => $this->comment(),
            ])
            ->setFactory($this->getFactory()), 'content');
    }

    private function picture() : InputFilter
    {
        return (new InputFilter())
            ->add(['name' => 'type'])
            ->add(['name' => 'alt'])
            ->add(['name' => 'src']);
    }

    private function link() : InputFilter
    {
        return (new InputFilter())
            ->add(['name' => 'type'])
            ->add(['name' => 'title'])
            ->add(['name' => 'href'])
            ->add(['name' => 'target']);
    }

    private function comment() : InputFilter
    {
        return (new InputFilter())
            ->add(['name' => 'type'])
            ->add(['name' => 'author'])
            ->add(['name' => 'email'])
            ->add(['name' => 'title'])
            ->add(['name' => 'text'])
            ->add([
                'name' => 'notifications',
                'filters' => [
                    ['name' => \Zend\Filter\Boolean::class],
                ],
                'validators' => [
                    [
                        'name' => \Zend\Validator\InArray::class,
                        'options' => [
                            'haystack' => ['0', '1'],
                        ],
                    ],
                ],
            ]);
    }
}

$inputFilter = new ExampleInputFilter();
$inputFilter->init();

$data = [
    'content' => [
        [
            'type' => 'picture',
            'alt' => 'Some picture',
            'src' => 'url',
            'foo' => 'This element will be filtered out',
        ],
        [
            'type' => 'link',
            'href' => 'url',
            'title' => 'Link to something',
            'target' => '_blank',
        ],
        [
            'type' => 'comment',
            'author' => 'unknown',
            'email' => 'dummy@email.com',
            'title' => 'Example',
            'text' => 'Got nothing more to say',
            'notifications' => '1',
        ],
        [
            'type' => 'picture',
            'alt' => 'Another picture',
            'src' => 'another url',
        ],
    ],
];

$inputFilter->setData($data);

if ($inputFilter->isValid()) {
    var_dump($inputFilter->getValues());
} else {
    var_dump($inputFilter->getMessages());
}
```

###  Health Score

26

—

LowBetter than 41% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 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 ~569 days

Total

4

Last Release

950d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/6d9bfe1b062ffcfed45fc969e1c354add7e44a6dbf3216dd587fc660f53ce155?d=identicon)[metalinspired](/maintainers/metalinspired)

---

Top Contributors

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

---

Tags

ZendFrameworkzfinputfilter

### Embed Badge

![Health badge](/badges/metalinspired-zend-mixed-collection-input-filter/health.svg)

```
[![Health](https://phpackages.com/badges/metalinspired-zend-mixed-collection-input-filter/health.svg)](https://phpackages.com/packages/metalinspired-zend-mixed-collection-input-filter)
```

###  Alternatives

[laminas/laminas-inputfilter

Normalize and validate input sets from the web, APIs, the CLI, and more, including files

4615.1M108](/packages/laminas-laminas-inputfilter)

PHPackages © 2026

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