在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:laracasts/PHP-Vars-To-Js-Transformer开源软件地址:https://github.com/laracasts/PHP-Vars-To-Js-Transformer开源编程语言:PHP 100.0%开源软件介绍:Transform PHP Vars to JavaScriptOften, you'll find yourself in situations, where you want to pass some server-side string/array/collection/whatever to your JavaScript. Traditionally, this can be a bit of a pain - especially as your app grows. This package simplifies the process drastically. InstallationBegin by installing this package through Composer. composer require laracasts/utilities
Laravel UsersFor Laravel users, there is a service provider you can make use of to automatically register the necessary bindings.
// config/app.php
'providers' => [
'...',
'Laracasts\Utilities\JavaScript\JavaScriptServiceProvider'
]; When this provider is booted, you'll gain access to a helpful public function index()
{
JavaScript::put([
'foo' => 'bar',
'user' => User::first(),
'age' => 29
]);
return View::make('hello');
}
Using the code above, you'll now be able to access console.log(foo); // bar
console.log(user); // User Obj
console.log(age); // 29 This package, by default, binds your JavaScript variables to a "footer" view, which you will include. For example:
Naturally, you can change this default to a different view. See below. DefaultsIf using Laravel, there are only two configuration options that you'll need to worry about. First, publish the default configuration. php artisan vendor:publish
// Or...
php artisan vendor:publish --provider="Laracasts\Utilities\JavaScript\JavaScriptServiceProvider" This will add a new configuration file to: <?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_viewYou need to update this file to specify which view you want your new JavaScript variables to be prepended to. Typically, your footer is a good place for this. If you include something like a js_namespaceBy default, all JavaScript vars will be nested under the global MyNewNamespace.varName NoteRun this artisan command after changing the view path.
Symfony2To use this component in Symfony2 applications you can try this bundle, built on top of PHP-Vars-To-Js-Transformer. Without LaravelIf you're not using Laravel, then you'll need to hard-wire things yourself. (Or, feel free to submit a pull request with an implementation for your desired framework.) First, create an implementation of the <?php
class MyAppViewBinder implements Laracasts\Utilities\JavaScript\ViewBinder {
// $js will contain your JS-formatted variable initializations
public function bind($js)
{
// Do what you need to do to add this JavaScript to
// the appropriate place in your app.
}
} Next, put it all together: use Laracasts\Utilities\JavaScript\Transformers\Transformer;
$binder = new MyAppViewBinder;
$javascript = new Transformer($binder, 'window'); // change window to your desired namespace
$javascript->put(['foo' => 'bar']); Now, you can access Remember, though, this is only necessary if you aren't using Laravel. If you are, then just reference the service provider, as demonstrated above. LicenseView the license for this repo. |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论