nrk / macchiato

From CoffeeScript to JavaScript, passing through PHP while sipping a Macchiato...

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Macchiato

About

Macchiato is a small and highly experimental PHP library, built on top of the SpiderMonkey PECL extension, that compiles CoffeeScript code to JavaScript, or directly executes it.

Unfortunately the SpiderMonkey PECL extension cannot be considered stable at this point. Compiling CoffeeScript to JavaScript should not pose any problem, but code execution can lead to random segmentation fault errors.

A few examples

Create an instance of Macchiato

Macchiato requires the CoffeeScript client compiler library in order to work, so you must pass a valid path or URI for the JavaScript file to the constructor method:

<?php
$pathToCoffeeScript = 'coffee-script.js';
$coffee = new Macchiato\CoffeeScript($pathToCoffeeScript);

Compile CoffeeScript to JavaScript

You can pass your CoffeeScript code to Macchiato and compile it to JavaScript:

<?php
var_dump($coffee->compile('square = (x) -> x * x'));
/*
string(64) "var square;
 square = function(x) {
   return x * x;
 };"
*/

Execute CoffeeScript directly in PHP

It is also possible to execute your CoffeeScript snippets directly in PHP:

<?php
var_dump($coffee->execute("
square = (x) -> x * x
square 42
"));
// int(1764)

Pass PHP objects and classes to CoffeeScript for execution

PHP classes and objects can be made explicitly available to CoffeeScript when executing scripts:

<?php
$context = $coffee->createContext();
$context->registerVariable('message', ($m = 'Hello there!'));
$context->registerFunction('alert', function($msg) { echo "$msg\n"; });
$coffee->execute('alert(message)', $context);

Dependencies

Links

Project

Related

Author

License

The code for Macchiato is distributed under the terms of the MIT license (see LICENSE).

About

From CoffeeScript to JavaScript, passing through PHP while sipping a Macchiato...

License:MIT License


Languages

Language:PHP 100.0%