Пользовательские фильтры / валидаторы в Zend Framework

У меня есть структура приложения Zend Framework, как показано ниже:

/application
/library
    /Zend
    /Core
        /Filter
            /MyFilter.php
        /Validator
            /MyValidator.php

Я хотел бы поместить настраиваемые фильтры и валидаторы в соответствующие папки и автоматически загружать их при использовании. Однако я не могу понять, как лучше всего этого добиться.

Мне нужно решение для работы с Zend_Filter_Input следующим образом:

$filters = array(
    'month'   => 'Digits',
    'account' => 'StringTrim',
    'other'   => 'MyFilter'
);

$validators = array(
    'account' => 'Alpha',
    'other'   => 'MyValidator'
);

$inputFilter = new Zend_Filter_Input($filters, $validators);

Что я уже знаю:

  • Core_Filter_MyFilter реализует Zend_Filter_Interface
  • Очевидно, фильтры и валидаторы уже находятся в моем пути включения.
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
9
0
5 557
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я разработал и внедрил Zend_Filter_Input еще в 2007 году.

Вы можете добавить новые префиксы классов, чтобы облегчить загрузку пользовательских классов фильтра и валидатора. По умолчанию Zend_Filter_Input ищет классы с префиксами "Zend_Filter" и "Zend_Validate". Попробуй это:

$inputFilter->addNamespace('Core_Filter');

Перед запуском isValid() или других методов объекта.

В качестве альтернативы вы также можете передать новую строку префикса класса в массиве параметров, четвертый аргумент конструктору Zend_Filter_Input:

$options = array('inputNamespace' => 'Core_Filter');
$inputFilter = new Zend_Filter_Input($filters, $validators, $data, $options);

См. Также документация, который я написал для Zend_Filter_Input.

Превосходно! Я часами читал документацию, но, должно быть, пропустил упоминание об этом. Спасибо!

leek 09.10.2008 03:58

Вот что SO определяет как «окончательный ответ на заданный вопрос» :)

Andrew Taylor 09.10.2008 18:16

@BillKarwin, ссылка на документацию битая. Можете ли вы предоставить обновление?

Fopa Léon Constantin 31.01.2016 08:04

@ FopaLéonConstantin, я исправил ссылку.

Bill Karwin 01.02.2016 07:57

Другие вопросы по теме