Comments (6)
Thanks, it seems this regression occurs since I implement the scope propagation that allow to use outer variable inside mixins (like in JavaScript and so in Pug.js) But indeed, we should exlude arguments from thoses varaibles.
Before we fix it, you can disable scope propagation with restrictedScope option:
$pug = new Pug\Pug(array(
'restrictedScope' => true,
));
from pug.
@kylekatarnls Thank you for your response. We are the heavy user of original jade-php and we maintained a private forked version of it. I'm now investigating the possibility to migrate to pug-php. I found pug-php have changed a lot from original jade-php, for example use get_defined_vars
and extract
to pass the scope, though it seems can help to drop the old attributes
hack, I'm worry about the performance of this method. Do you have any benchmark of that?
from pug.
This will depend on the variables size. If you can keep small-sized variables, you have nothing to worry about, else, just use 'restrictedScope' => true,
to get the old behaviour. If you do not use "global" variables in your mixins, this option is recommended.
Currently the pug-php performance is very close to some raw PHP templates equivalents: 0,062 milliseconds per line of Pug code once the file is already cached (this is always the case if you use ->cacheDirectory()
on deployment).
It means, if you have a 300-lines pug template extending a 100-lines layout and including 2 x 100-lines pug files, it will takes 37 milliseconds to render.
I use pug-php in many sites and get no performance issues.
But I try my best to make cached files smaller and faster, it will be improved again in next versions.
from pug.
About your project, I hope pug-php will match your needs. The issues you opened are much appreciated. I think pug-php can benefit your feedback as you can benefit the advantages of an open-source solution.
from pug.
Fixed in master branch, soon released with 2.2
from pug.
2.2 released, please update.
from pug.
Related Issues (20)
- syntax error, unexpected 'idx' (T_STRING), expecting ';' HOT 1
- Support template literals HOT 1
- Undefined variable fatal error appears on quoted Vue.js variable HOT 13
- Ternary conditional operator fails with linebreak HOT 6
- read-only cache directory HOT 20
- Undefined variable when using mixin with concatenation HOT 3
- Accessing helper functions in a namespace HOT 4
- PHP 7.4 with Pug 2.7.5 minor correction HOT 3
- Compatibility problem with laracast HOT 4
- Interpolation does not support null coalescing operator HOT 4
- enable_profiler => true shows php notices (undefined index) HOT 5
- Apostrophe is escaped HOT 2
- Option to disable html minficiation HOT 1
- Bug when using combinaison of mixins with block in iteration
- Incompatibility with composer 2.0 HOT 1
- Tag Name error HOT 5
- PHP 8 support? HOT 3
- How do i convert back to HTML and keep the variable intact? HOT 1
- Deprecation warning in PHP 8.1 for null values HOT 1
- Pug 2.7.6 minor correction to avoid warning with block append usage HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pug.