如何在js文件中使用配置文件(或变量),这些文件在zend的public目录下定义

时间:2015-12-09 09:16:43

标签: javascript zend-framework2 config php

我想在我的一些js文件中使用一些重要的变量,比如fb,twitter访问键,所以我在zend的config文件夹下定义了一个config.ini文件。我能够使用INI阅读器在我的所有控制器和模型中读取这些配置变量,但我不知道如何在我的js文件中读取这些变量。有没有其他方法来定义js文件的配置变量? 我的js文件位于公共文件夹下。要在任何模块的index.phtml中读取这些变量,我使用视图模型从控制器返回这些变量,然后使用php在phtml文件中读取这些变量。有没有更好的方法来阅读phtml文件中的这些vaiables?

$reader = new Ini();
$data   = $reader->fromFile('config/config/config.ini');

我正在使用此代码来读取我的config.ini文件及其工作正常。

1 个答案:

答案 0 :(得分:1)

使用Ajax

ZF2(PHP)方:

  • 创建新的Controller / Ajax
    • 将其设置为空布局
    • 启用Json策略
    • 向Ajax cotroller添加新操作,例如AjaxAction
    • 编写代码

public function AjaxAction(){

//maybe create service for that?


    $reader = new Ini();


        $reader = new Ini();

        $data = $reader->fromFile('config/config/config.ini');

        return new JsonModel(['Data' => $data]);

    }

Jquery

jQuery(document).ready(function($){
var url = "http://urlToyourSite.com/ajax/ajax";
$.get(url).done(function(databack){
var data = databack.Data(); // here is your ini object
});

});

将数据插入布局

  • 创建新的Controller / Ini
    • 向Ajax cotroller添加新操作,例如AddToLayoutAction
    • 编写代码

公共职能__constuct(){

自:: __构建体(); //为父母

//maybe create service for that?

    $reader = new Ini();

    $data = $reader->fromFile('config/config/config.ini');

    $this->layout()->setVariable("Data",$data);

}
布局中的

: //代码

$data = $this->Data;