美文网首页
laracasts/utilities - 将 PHP 变量转换

laracasts/utilities - 将 PHP 变量转换

作者: 伍源辉 | 来源:发表于2016-12-30 11:44 被阅读446次

将 PHP 变量转换为 JavaScript

你是否经常遇到需要将服务器端的字符串、数组、集合等等数据输出到 JavaScript 的情况?正常情况下,你会觉得这比较麻烦,尤其是随着应用规模的增长。

这个包正是为了解决这个麻烦而诞生的。

安装

通过 Composer 安装包:

{
    "require": {
        "laracasts/utilities": "~2.0"
    }
}

如果你在使用 Laravel 4:请使用 ~1.0 代替并且使用那个版本的文档。对于 Laravel 5 (或者非 Laravel)~2.0即可。

Laravel 用户

如果你是使用 Laravel,可以通过服务提供者自动绑定这个包。


// config/app.php

'providers' => [
    '...',
    'Laracasts\Utilities\JavaScript\JavaScriptServiceProvider'
];

提供者启动后,你就可以使用 JavaScript 门面了,你可以在控制器中使用。

public function index()
{
    JavaScript::put([
        'foo' => 'bar',
        'user' => User::first(),
        'age' => 29
    ]);

    return View::make('hello');
}

在 Laravel 5 中,你需要现在控制器头部引入 use JavaScript;

使用了上面的代码之后,你就可以在 JavaScript 中使用这些变量了。

console.log(foo); // bar
console.log(user); // User Obj
console.log(age); // 29

这个包默认情况下会绑定 JavaScript 变量到你引入的 "footer" 视图中,例如:

<body>
    <h1>My Page</h1>

    @include ('footer') // <-- 变量在这之前插入
</body>

你也可以改变默认输出到其他视图中。如下:

默认

如果使用 Laravel,只有两个配置选项是需要你注意的。一,生成默认配置文件。

php artisan vendor:publish

这步会生成一个新的配置文件:config/javascript.php

<?php

return [

    /*
    |--------------------------------------------------------------------------
    | View to Bind JavaScript Vars To
    |--------------------------------------------------------------------------
    |
    | Set this value to the name of the view (or partial) that
    | you want to prepend all JavaScript variables to.
    |
    */
    'bind_js_vars_to_this_view' => 'footer',

    /*
    |--------------------------------------------------------------------------
    | JavaScript Namespace
    |--------------------------------------------------------------------------
    |
    | By default, we'll add variables to the global window object. However,
    | it's recommended that you change this to some namespace - anything.
    | That way, you can access vars, like "SomeNamespace.someVariable."
    |
    */
    'js_namespace' => 'window'

];

bind_js_vars_to_this_view

你可以修改这个文件去指定 JavaScript 输出的视图。底部文件是一个很好的选择。

如果你引入了一些类似 layouts/partials/footer 的部件,用于存放页脚代码和引用的脚本,只需要设置 bind_js_vars_to_this_view 等于这个路径即可。Behind the scenes, the Laravel implementation of this package will listen for when that view is composed, and essentially paste the JS variables within it.

js_namespace

默认情况下,所有 JavaScript 变量会注入到全局的 window 对象里。你可能不想这样。修改 js_namespace 选项填入你想使用的 JavaScript 命名空间。如果你修改了这个选项,你需要像下面这样获取 JavaScript 变量:

MyNewNamespace.varName

Symfony2

不使用 Laravel

相关文章

  • laracasts/utilities - 将 PHP 变量转换

    将 PHP 变量转换为 JavaScript 你是否经常遇到需要将服务器端的字符串、数组、集合等等数据输出到 Ja...

  • 数据类型转换,循环体

    PHP其余数据类型转换为逻辑型 强制转换:settype(变量名,类型);隐式转换,根据语句转换*数字——bool...

  • 》》》PHP初入---(二)

    数据转换 数据类型转换为逻辑的规则:强制转换:settype(变量,类型)--将变量转换为指定的类型隐式转换:根据...

  • 3.12 PHP数据类型之间的转换和检测

    数据类型的转换有2种方式,强制转换和自动转换。 强制转换: 用setType(变量,"类型");,它是用来将变量直...

  • Java数据类型转换介绍

    隐式转换(自动转换) 将int类型的变量i赋给double类型的变量d 分析:变量i发生隐式转换,得到小数1.0,...

  • PHP入门之︰数据类型转换

    PHP中的变量的运算,必须是同类型才能运算,如果类型不同,要转成同类型才能运算。变量类型转换分为:自动转换和强制转...

  • xpose 命令—数据转置

    Description xpose转置数据,将变量转换为观测值,并将观测值转换为变量。所有新变量 - 即由转置创建...

  • 在PHP中将数组转换为XML格式

    php数组格式: Array to XML:通过使用PHP的扩展SimpleXML,我们将uses_array转换...

  • PHP 变量转换情况汇总

    在PHP中,将不同类型的变量转化为判断条件时,究竟发生了什么,这部分内容属于PHP的基础知识中的变量部分,在学习过...

  • PHP 零碎笔记

    PHP函数 var_dump($var)打印变量信息 $export = var_export($var) 将变量...

网友评论

      本文标题:laracasts/utilities - 将 PHP 变量转换

      本文链接:https://www.haomeiwen.com/subject/vdcmvttx.html