summaryrefslogtreecommitdiff
path: root/tests/test_closure
diff options
context:
space:
mode:
authorKevin Chabowski <kevin@kch42.de>2014-05-24 01:39:33 +0200
committerKevin Chabowski <kevin@kch42.de>2014-05-24 01:39:33 +0200
commit84d815f4e006e02521759070bb89025dab80b219 (patch)
tree418a03f0b8be181cb29230ad5e808d3213b4d3cb /tests/test_closure
parentfdbe2e9521aa54ec6e0b70c1cb0f532248e531e4 (diff)
downloadste-84d815f4e006e02521759070bb89025dab80b219.tar.gz
ste-84d815f4e006e02521759070bb89025dab80b219.tar.bz2
ste-84d815f4e006e02521759070bb89025dab80b219.zip
Added scoping.
ste:mktag generated tags now have an own scope. They even resemble closures, since they inherit their parent scope. A lot of work was done to keep this compatible with older programs. However: * Templates that relied on the non-scoping behavior of tags will probably fail. * Since $ste->vars is no longer an actual array, things like $ste->vars["foo"]["bar"] = "baz" are no longer possible! A single field access will still work: $ste->vars["foo"] = "bar"
Diffstat (limited to 'tests/test_closure')
-rw-r--r--tests/test_closure/.gitignore3
-rw-r--r--tests/test_closure/code.php5
-rw-r--r--tests/test_closure/test.tpl8
-rw-r--r--tests/test_closure/want1
4 files changed, 17 insertions, 0 deletions
diff --git a/tests/test_closure/.gitignore b/tests/test_closure/.gitignore
new file mode 100644
index 0000000..de2a41b
--- /dev/null
+++ b/tests/test_closure/.gitignore
@@ -0,0 +1,3 @@
+have
+*.ast
+*.transc.php
diff --git a/tests/test_closure/code.php b/tests/test_closure/code.php
new file mode 100644
index 0000000..de8c553
--- /dev/null
+++ b/tests/test_closure/code.php
@@ -0,0 +1,5 @@
+<?php
+
+function test_func($ste) {
+
+}
diff --git a/tests/test_closure/test.tpl b/tests/test_closure/test.tpl
new file mode 100644
index 0000000..c13bd5a
--- /dev/null
+++ b/tests/test_closure/test.tpl
@@ -0,0 +1,8 @@
+<ste:mktag name="initfoo">
+ <ste:set var="x"><ste:tagcontent /></ste:set>
+ <ste:mktag name="foo">
+ <ste:calc>$x + <ste:tagcontent /></ste:calc>
+ </ste:mktag>
+</ste:mktag>
+<ste:initfoo>10</ste:initfoo>
+<ste:foo>20</ste:foo> \ No newline at end of file
diff --git a/tests/test_closure/want b/tests/test_closure/want
new file mode 100644
index 0000000..64bb6b7
--- /dev/null
+++ b/tests/test_closure/want
@@ -0,0 +1 @@
+30