Проблемы с преобразованием конфигурации на основе INI в YAML - PullRequest
0 голосов
/ 22 января 2012

Приветствую всех.

Я работаю над проектом, который использует Zend_Config для создания форм. Я работаю над расширением своей базы знаний и столкнулся с трудностями.

У меня есть файл конфигурации формы в формате INI, который отлично работает. Я хотел бы преобразовать эту конфигурацию формы в файл на основе YAML. Я попытался написать преобразование сам, и хотя я все учел. Поскольку это мое первое путешествие в Ямл, мне нужна помощь, чтобы понять, что не так.

Ини-файл, который работает здесь:

    [production]
    ;General From Meta Data
    logon.form.action = "/customers/plogin"
    logon.form.method="post"
    logon.form.id="loginform"
    ;Form Element Prefix Data
    logon.form.elementPrefixPath.decorator.prefix = "Elite_Decorator_"
    logon.form.elementPrefixPath.decorator.path = "Elite/Decorator/"
    logon.form.elementPrefixPath.decorator.type = "decorator"
    logon.form.elementPrefixPath.validate.prefix = "Elite_Validate_"
    logon.form.elementPrefixPath.validate.path = "Elite/Validate/"
    logon.form.elementPrefixPath.validate.type = "validate"
    ;Form Element - email
    logon.form.elements.email.type = "text"
    logon.form.elements.email.options.required = "true"
    logon.form.elements.email.options.label = "Email"
    logon.form.elements.email.options.decorators.composite.decorator = "Composite"
    logon.form.elements.email.options.validators.strlen.validator = "StringLength"
    logon.form.elements.email.options.validators.strlen.options.min="2"
    logon.form.elements.email.options.validators.strlen.options.max="50"
    ;Form Element - Password
    logon.form.elements.password.type = "password"
    logon.form.elements.password.options.required = "true"
    logon.form.elements.password.options.label = "Password"
    logon.form.elements.password.options.decorators.composite.decorator = "Composite"
    logon.form.elements.password.options.validators.strlen.validator = "StringLength"
    logon.form.elements.password.options.validators.strlen.options.min="2"
    logon.form.elements.password.options.validators.strlen.options.max="20"
    ;Form Element - Submit
    logon.form.elements.submit.type = "submit"
    logon.form.elements.submit.options.label = "Logon"
    ;Form Display Group 1
    logon.form.displaygroups.group1.name = "logon"
    logon.form.displaygroups.group1.options.legend = "Please Login to your Account"
    logon.form.displaygroups.group1.options.decorators.formelements.decorator = "FormElements"
    logon.form.displaygroups.group1.options.decorators.fieldset.decorator = "Fieldset"  
    logon.form.displaygroups.group1.options.decorators.fieldset.options.style = "width:375px;"
    logon.form.displaygroups.group1.elements.email = "email"
    logon.form.displaygroups.group1.elements.password = "password"
    logon.form.displaygroups.group1.elements.submit = "submit"

И мой перевод YAML:

    production:
           logon:
    form:
        action: /customers/plogin
        method: post
        id: loginform
        elementPrefixPath:
            decorator:
                prefix: Elite_Decorator_
                path: Elite/Decorator/
                type: decorator
            validate:
                prefix: Elite_Validate_
                path: Elite/Validate/
                type: validate
        elements:
            email:
                type: text
                options:
                    required: true
                    label: Email
                    decorators:
                        composite:
                            decorator: Composite
                    validators:
                        strlen:
                            validator: StringLength
                            options:
                                min: 2
                                max: 50
            password:
                type: text
                options:
                    required: true
                    label: Password
                    decorators:
                        composite:
                            decorator: Composite
                    validators:
                        strlen:
                            validator: StringLength
                            options:
                                min: 2
                                max: 20
            submit:
                type: submit
                options:
                    label: Logon
        displaygroups:
            group1:
                name: logon
                options:
                    legend: Please login to your account
                    decorators:
                        formelements:
                            decorator: FormElements
                        fieldset:
                            decorator: Fieldset
                            options:
                                style: width:375px; 
                elements:
                    email: email
                    password: password
                    submit: submit

Форма на основе YAML дает мне только пустую страницу. После расследования ни одна из разметки формы не включается в выводимую страницу. Любая помощь будет принята с благодарностью.

С уважением, Трой

1 Ответ

1 голос
/ 18 июня 2012

Я думаю, в вашем коде должны быть отступы:

production:
    logon:
        form:
            action: /customers/plogin
            method: post
....
...