Skip to content

Commit fb590fc

Browse files
authored
Pug-php 3 compatibility (#19)
* Pug-php 3 compatibility * Better code filter * Pug-php 2 compatibility * Configure custom-helpers tests for using PHP mode * Fix replacements order * Cleanup config + time limit * Fix parameters order * Handle shared variables and cache directory errors * Fix shared variables passing + fix unit tests * Fix pug-php 2 compatibility
1 parent 5851ecf commit fb590fc

File tree

12 files changed

+460
-120
lines changed

12 files changed

+460
-120
lines changed

.travis.yml

Lines changed: 171 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -2,114 +2,238 @@ language: php
22
matrix:
33
include:
44
- php: 5.4
5-
env: SYMFONY_VERSION='2.7.*'
5+
env:
6+
- SYMFONY_VERSION='2.7.*'
7+
- PUG_VERSION='^2.7.1'
68
- php: 5.4
7-
env: SYMFONY_VERSION='2.8.*'
9+
env:
10+
- SYMFONY_VERSION='2.8.*'
11+
- PUG_VERSION='^2.7.1'
812
- php: 5.5
9-
env: SYMFONY_VERSION='2.7.*'
13+
env:
14+
- SYMFONY_VERSION='2.7.*'
15+
- PUG_VERSION='^3.0.0@beta'
1016
- php: 5.5
11-
env: SYMFONY_VERSION='2.8.*'
17+
env:
18+
- SYMFONY_VERSION='2.8.*'
19+
- PUG_VERSION='^3.0.0@beta'
1220
- php: 5.5
13-
env: SYMFONY_VERSION='3.0.*'
21+
env:
22+
- SYMFONY_VERSION='3.0.*'
23+
- PUG_VERSION='^3.0.0@beta'
1424
- php: 5.5
15-
env: SYMFONY_VERSION='3.1.*'
25+
env:
26+
- SYMFONY_VERSION='3.1.*'
27+
- PUG_VERSION='^3.0.0@beta'
1628
- php: 5.5
17-
env: SYMFONY_VERSION='3.2.*'
29+
env:
30+
- SYMFONY_VERSION='3.2.*'
31+
- PUG_VERSION='^3.0.0@beta'
1832
- php: 5.5
19-
env: SYMFONY_VERSION='3.3.*'
33+
env:
34+
- SYMFONY_VERSION='3.3.*'
35+
- PUG_VERSION='^3.0.0@beta'
2036
- php: 5.5
21-
env: SYMFONY_VERSION='3.4.x-dev as 3.4'
37+
env:
38+
- SYMFONY_VERSION='3.4.x-dev as 3.4'
39+
- PUG_VERSION='^3.0.0@beta'
2240
- php: 5.6
23-
env: SYMFONY_VERSION='2.7.*'
41+
env:
42+
- SYMFONY_VERSION='2.7.*'
43+
- PUG_VERSION='^3.0.0@beta'
2444
- php: 5.6
25-
env: SYMFONY_VERSION='2.8.*'
45+
env:
46+
- SYMFONY_VERSION='2.8.*'
47+
- PUG_VERSION='^3.0.0@beta'
2648
- php: 5.6
27-
env: SYMFONY_VERSION='3.0.*'
49+
env:
50+
- SYMFONY_VERSION='3.0.*'
51+
- PUG_VERSION='^3.0.0@beta'
2852
- php: 5.6
29-
env: SYMFONY_VERSION='3.1.*'
53+
env:
54+
- SYMFONY_VERSION='3.1.*'
55+
- PUG_VERSION='^3.0.0@beta'
3056
- php: 5.6
31-
env: SYMFONY_VERSION='3.2.*'
57+
env:
58+
- SYMFONY_VERSION='3.2.*'
59+
- PUG_VERSION='^3.0.0@beta'
3260
- php: 5.6
33-
env: SYMFONY_VERSION='3.3.*'
61+
env:
62+
- SYMFONY_VERSION='3.3.*'
63+
- PUG_VERSION='^3.0.0@beta'
3464
- php: 5.6
35-
env: SYMFONY_VERSION='3.4.x-dev as 3.4'
65+
env:
66+
- SYMFONY_VERSION='3.4.x-dev as 3.4'
67+
- PUG_VERSION='^3.0.0@beta'
3668
- php: 7.0
37-
env: SYMFONY_VERSION='2.7.*'
69+
env:
70+
- SYMFONY_VERSION='2.7.*'
71+
- PUG_VERSION='^3.0.0@beta'
3872
- php: 7.0
39-
env: SYMFONY_VERSION='2.8.*'
73+
env:
74+
- SYMFONY_VERSION='2.8.*'
75+
- PUG_VERSION='^3.0.0@beta'
4076
- php: 7.0
41-
env: SYMFONY_VERSION='3.0.*'
77+
env:
78+
- SYMFONY_VERSION='3.0.*'
79+
- PUG_VERSION='^3.0.0@beta'
4280
- php: 7.0
43-
env: SYMFONY_VERSION='3.1.*'
81+
env:
82+
- SYMFONY_VERSION='3.1.*'
83+
- PUG_VERSION='^3.0.0@beta'
4484
- php: 7.0
45-
env: SYMFONY_VERSION='3.2.*'
85+
env:
86+
- SYMFONY_VERSION='3.2.*'
87+
- PUG_VERSION='^3.0.0@beta'
4688
- php: 7.0
47-
env: SYMFONY_VERSION='3.3.*'
89+
env:
90+
- SYMFONY_VERSION='3.3.*'
91+
- PUG_VERSION='^3.0.0@beta'
4892
- php: 7.0
49-
env: SYMFONY_VERSION='3.4.x-dev as 3.4'
93+
env:
94+
- SYMFONY_VERSION='3.4.x-dev as 3.4'
95+
- PUG_VERSION='^3.0.0@beta'
5096
- php: 7.1
51-
env: SYMFONY_VERSION='2.7.*'
97+
env:
98+
- SYMFONY_VERSION='2.7.*'
99+
- PUG_VERSION='^3.0.0@beta'
52100
- php: 7.1
53-
env: SYMFONY_VERSION='2.8.*'
101+
env:
102+
- SYMFONY_VERSION='2.8.*'
103+
- PUG_VERSION='^3.0.0@beta'
54104
- php: 7.1
55-
env: SYMFONY_VERSION='3.0.*'
105+
env:
106+
- SYMFONY_VERSION='3.0.*'
107+
- PUG_VERSION='^3.0.0@beta'
56108
- php: 7.1
57-
env: SYMFONY_VERSION='3.1.*'
109+
env:
110+
- SYMFONY_VERSION='3.1.*'
111+
- PUG_VERSION='^3.0.0@beta'
58112
- php: 7.1
59-
env: SYMFONY_VERSION='3.2.*'
113+
env:
114+
- SYMFONY_VERSION='3.2.*'
115+
- PUG_VERSION='^3.0.0@beta'
60116
- php: 7.1
61-
env: SYMFONY_VERSION='3.3.*'
117+
env:
118+
- SYMFONY_VERSION='3.3.*'
119+
- PUG_VERSION='^3.0.0@beta'
62120
- php: 7.1
63-
env: SYMFONY_VERSION='3.4.x-dev as 3.4'
121+
env:
122+
- SYMFONY_VERSION='3.4.x-dev as 3.4'
123+
- PUG_VERSION='^3.0.0@beta'
64124
- php: 7.1
65-
env: SYMFONY_VERSION='4.0.x-dev as 3.99'
125+
env:
126+
- SYMFONY_VERSION='4.0.x-dev as 3.99'
127+
- PUG_VERSION='^3.0.0@beta'
66128
- php: 7.2
67-
env: SYMFONY_VERSION='2.7.*'
129+
env:
130+
- SYMFONY_VERSION='2.7.*'
131+
- PUG_VERSION='^2.7.1'
68132
- php: 7.2
69-
env: SYMFONY_VERSION='2.8.*'
133+
env:
134+
- SYMFONY_VERSION='2.8.*'
135+
- PUG_VERSION='^2.7.1'
70136
- php: 7.2
71-
env: SYMFONY_VERSION='3.0.*'
137+
env:
138+
- SYMFONY_VERSION='3.0.*'
139+
- PUG_VERSION='^2.7.1'
72140
- php: 7.2
73-
env: SYMFONY_VERSION='3.1.*'
141+
env:
142+
- SYMFONY_VERSION='3.1.*'
143+
- PUG_VERSION='^2.7.1'
74144
- php: 7.2
75-
env: SYMFONY_VERSION='3.2.*'
145+
env:
146+
- SYMFONY_VERSION='3.2.*'
147+
- PUG_VERSION='^2.7.1'
76148
- php: 7.2
77-
env: SYMFONY_VERSION='3.3.*'
149+
env:
150+
- SYMFONY_VERSION='3.3.*'
151+
- PUG_VERSION='^2.7.1'
78152
- php: 7.2
79-
env: SYMFONY_VERSION='3.4.x-dev as 3.4'
153+
env:
154+
- SYMFONY_VERSION='3.4.x-dev as 3.4'
155+
- PUG_VERSION='^2.7.1'
80156
- php: 7.2
81-
env: SYMFONY_VERSION='4.0.x-dev as 3.99'
157+
env:
158+
- SYMFONY_VERSION='4.0.x-dev as 3.99'
159+
- PUG_VERSION='^2.7.1'
160+
- php: 7.2
161+
env:
162+
- SYMFONY_VERSION='2.7.*'
163+
- PUG_VERSION='^3.0.0@beta'
164+
- php: 7.2
165+
env:
166+
- SYMFONY_VERSION='2.8.*'
167+
- PUG_VERSION='^3.0.0@beta'
168+
- php: 7.2
169+
env:
170+
- SYMFONY_VERSION='3.0.*'
171+
- PUG_VERSION='^3.0.0@beta'
172+
- php: 7.2
173+
env:
174+
- SYMFONY_VERSION='3.1.*'
175+
- PUG_VERSION='^3.0.0@beta'
176+
- php: 7.2
177+
env:
178+
- SYMFONY_VERSION='3.2.*'
179+
- PUG_VERSION='^3.0.0@beta'
180+
- php: 7.2
181+
env:
182+
- SYMFONY_VERSION='3.3.*'
183+
- PUG_VERSION='^3.0.0@beta'
184+
- php: 7.2
185+
env:
186+
- SYMFONY_VERSION='3.4.x-dev as 3.4'
187+
- PUG_VERSION='^3.0.0@beta'
188+
- php: 7.2
189+
env:
190+
- SYMFONY_VERSION='4.0.x-dev as 3.99'
191+
- PUG_VERSION='^3.0.0@beta'
82192
- php: hhvm
83-
env: SYMFONY_VERSION='2.7.*'
193+
env:
194+
- SYMFONY_VERSION='2.7.*'
195+
- PUG_VERSION='^3.0.0@beta'
84196
dist: trusty
85197
sudo: required
86198
- php: hhvm
87-
env: SYMFONY_VERSION='2.8.*'
199+
env:
200+
- SYMFONY_VERSION='2.8.*'
201+
- PUG_VERSION='^3.0.0@beta'
88202
dist: trusty
89203
sudo: required
90204
- php: hhvm
91-
env: SYMFONY_VERSION='3.0.*'
205+
env:
206+
- SYMFONY_VERSION='3.0.*'
207+
- PUG_VERSION='^3.0.0@beta'
92208
dist: trusty
93209
sudo: required
94210
- php: hhvm
95-
env: SYMFONY_VERSION='3.1.*'
211+
env:
212+
- SYMFONY_VERSION='3.1.*'
213+
- PUG_VERSION='^3.0.0@beta'
96214
dist: trusty
97215
sudo: required
98216
- php: hhvm
99-
env: SYMFONY_VERSION='3.2.*'
217+
env:
218+
- SYMFONY_VERSION='3.2.*'
219+
- PUG_VERSION='^3.0.0@beta'
100220
dist: trusty
101221
sudo: required
102222
- php: hhvm
103-
env: SYMFONY_VERSION='3.3.*'
223+
env:
224+
- SYMFONY_VERSION='3.3.*'
225+
- PUG_VERSION='^3.0.0@beta'
104226
dist: trusty
105227
sudo: required
106228
- php: hhvm
107-
env: SYMFONY_VERSION='3.4.x-dev as 3.4'
229+
env:
230+
- SYMFONY_VERSION='3.4.x-dev as 3.4'
231+
- PUG_VERSION='^3.0.0@beta'
108232
dist: trusty
109233
sudo: required
110234
before_script:
111235
- travis_retry composer self-update
112-
- if [ "$SYMFONY_VERSION" != "" ]; then travis_retry php tests/setSymfonyVersion.php $SYMFONY_VERSION; fi;
236+
- if [ "$SYMFONY_VERSION" != "" ]; then travis_retry php tests/setSymfonyVersion.php $PUG_VERSION $SYMFONY_VERSION; fi;
113237
- travis_retry composer update --no-interaction --prefer-stable
114238
- chmod -R 0777 tests/project
115239
script:

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,13 @@ $pug->getEngine()->addKeyword('customKeyword', $bar);
5252
See the options in the pug-php README: https://github.com/pug-php/pug
5353
And methods directly available on the service: https://github.com/pug-php/pug-symfony/blob/master/src/Jade/JadeSymfonyEngine.php
5454

55+
Initial options can also be passed in parameters in your **config.yml**:
56+
```yaml
57+
parameters:
58+
pug:
59+
expressionLanguage: php
60+
```
61+
5562
## Usage
5663
Create jade views by creating files with .pug extension
5764
in **app/Resources/views** such as contact.pug with

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"require": {
99
"php": ">=5.4.0",
1010
"pug/installer": "^0.1.0",
11-
"pug-php/pug": "^2.1.3",
11+
"pug-php/pug": "^2.7.1 || ^3.0.0@beta",
1212
"pug-php/pug-assets": "^1.0.1",
1313
"symfony/symfony": "^2.7 || ^3.0 || ^4.0"
1414
},

genTravis.php

Lines changed: 38 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
'travis_retry composer self-update',
1010
implode(' ', [
1111
'if [ "$SYMFONY_VERSION" != "" ];',
12-
'then travis_retry composer require "symfony/symfony:${SYMFONY_VERSION}" --no-update;',
12+
'then travis_retry php tests/setSymfonyVersion.php $PUG_VERSION $SYMFONY_VERSION;',
1313
'fi;',
1414
]),
1515
'travis_retry composer update --no-interaction',
@@ -36,26 +36,46 @@
3636
];
3737

3838
$matrix = [
39-
'5.4' => ['2.7.*', '2.8.*'],
40-
'5.5' => ['2.7.*', '2.8.*', '3.0.*', '3.1.*', '3.2.*', '3.3.*', '3.4.x-dev as 3.4'],
41-
'5.6' => ['2.7.*', '2.8.*', '3.0.*', '3.1.*', '3.2.*', '3.3.*', '3.4.x-dev as 3.4'],
42-
'7.0' => ['2.7.*', '2.8.*', '3.0.*', '3.1.*', '3.2.*', '3.3.*', '3.4.x-dev as 3.4'],
43-
'7.1' => ['2.7.*', '2.8.*', '3.0.*', '3.1.*', '3.2.*', '3.3.*', '3.4.x-dev as 3.4', '4.0.x-dev as 3.99'],
44-
'7.2' => ['2.7.*', '2.8.*', '3.0.*', '3.1.*', '3.2.*', '3.3.*', '3.4.x-dev as 3.4', '4.0.x-dev as 3.99'],
45-
'hhvm' => ['2.7.*', '2.8.*', '3.0.*', '3.1.*', '3.2.*', '3.3.*', '3.4.x-dev as 3.4'],
39+
'5.4' => [
40+
'^2.7.1' => ['2.7.*', '2.8.*'],
41+
],
42+
'5.5' => [
43+
'^3.0.0@beta' => ['2.7.*', '2.8.*', '3.0.*', '3.1.*', '3.2.*', '3.3.*', '3.4.x-dev as 3.4'],
44+
],
45+
'5.6' => [
46+
'^3.0.0@beta' => ['2.7.*', '2.8.*', '3.0.*', '3.1.*', '3.2.*', '3.3.*', '3.4.x-dev as 3.4'],
47+
],
48+
'7.0' => [
49+
'^3.0.0@beta' => ['2.7.*', '2.8.*', '3.0.*', '3.1.*', '3.2.*', '3.3.*', '3.4.x-dev as 3.4'],
50+
],
51+
'7.1' => [
52+
'^3.0.0@beta' => ['2.7.*', '2.8.*', '3.0.*', '3.1.*', '3.2.*', '3.3.*', '3.4.x-dev as 3.4', '4.0.x-dev as 3.99'],
53+
],
54+
'7.2' => [
55+
'^2.7.1' => ['2.7.*', '2.8.*', '3.0.*', '3.1.*', '3.2.*', '3.3.*', '3.4.x-dev as 3.4', '4.0.x-dev as 3.99'],
56+
'^3.0.0@beta' => ['2.7.*', '2.8.*', '3.0.*', '3.1.*', '3.2.*', '3.3.*', '3.4.x-dev as 3.4', '4.0.x-dev as 3.99'],
57+
],
58+
'hhvm' => [
59+
'^2.7.1' => ['2.7.*', '2.8.*', '3.0.*', '3.1.*', '3.2.*', '3.3.*', '3.4.x-dev as 3.4'],
60+
],
4661
];
4762

48-
foreach ($matrix as $phpVersion => $symfonyVersions) {
49-
foreach ($symfonyVersions as $symphonyVersion) {
50-
$environment = [
51-
'php' => $phpVersion,
52-
'env' => "SYMFONY_VERSION='$symphonyVersion'",
53-
];
54-
if ($phpVersion === 'hhvm') {
55-
$environment['dist'] = 'trusty';
56-
$environment['sudo'] = 'required';
63+
foreach ($matrix as $phpVersion => $pugVersions) {
64+
foreach ($pugVersions as $pugVersion => $symfonyVersions) {
65+
foreach ($symfonyVersions as $symphonyVersion) {
66+
$environment = [
67+
'php' => $phpVersion,
68+
'env' => [
69+
"SYMFONY_VERSION='$symphonyVersion'",
70+
"PUG_VERSION='$pugVersion'",
71+
],
72+
];
73+
if ($phpVersion === 'hhvm') {
74+
$environment['dist'] = 'trusty';
75+
$environment['sudo'] = 'required';
76+
}
77+
$travisData['matrix']['include'][] = $environment;
5778
}
58-
$travisData['matrix']['include'][] = $environment;
5979
}
6080
}
6181

0 commit comments

Comments
 (0)