将基于 INI 的配置转换为 YAML 时出现问题

发布于 2024-12-28 01:29:24 字数 4800 浏览 2 评论 0原文

向大家问好。

我正在开发一个使用 Zend_Config 创建表单的项目。我正在努力扩大我的知识基础,但遇到了障碍。

我有一个 ini 格式的表单配置文件,可以正常工作。我想将该表单配置转换为基于 YAML 的文件。我尝试自己编写转换,尽管我解释了一切。由于这是我第一次使用 yaml,我需要帮助来看看出了什么问题。

有效的 ini 文件在这里:

    [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 的表单只给了我一个空白页。经调查,输出的页面中不包含任何表单标记。任何帮助将不胜感激。

问候, 特洛伊

Greetings to all.

I am working on a project that uses Zend_Config to create forms. I am working on broadening my knowledge base and have hit a snag.

I have a form config file in ini format that works fine. I would like to convert that form configuration into a YAML based file. I attempted to write the conversion myself, and though I accounted for everything. As this is my first journey into yaml, I need help to see what is wrong.

The ini file that works is here:

    [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"

And my YAML translation:

    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

The YAML based form only gives me a blank page. Upon investigation, none of the form markup is included in the page that is output. Any help would be greatly appreciated.

Regards,
Troy

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夏日落 2025-01-04 01:29:24

我认为你的代码应该有更好的缩进:

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

I think you should have better indentation in your code:

production:
    logon:
        form:
            action: /customers/plogin
            method: post
....
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文