Release status: experimental
|Description||Allows execution of PHP code embedded in pages|
|License||GNU General Public License 3.0 or later|
Translate the PHPTemplates extension if it is available at translatewiki.net
|Check usage and version matrix; code metrics|
What can this extension do?[edit | edit source]
This extension allows you to embed white-listed PHP code in pages. Why the misnomer "PHPTemplates"? Because ultimately for reviewing code similar to Extension:FlaggedRevs, it would be nice to limit PHPTemplates's scope to templates starting with
<?php. However, it is much easier at this time to plug into the MediaWiki parser via the general tag hook.
Usage[edit | edit source]
That's all at this moment (yes, it will output "0"). The PHP grammar is rather complex, and trimming it down takes time.
Download instructions[edit | edit source]
Please copy and paste the code found at GitHub and place it under
Installation[edit | edit source]
To install this extension, add the following to LocalSettings.php:
Limiting your users' freedom[edit | edit source]
You can enhance PHPTemplates to somewhat cap the resources used. Duly note that enhancing in this context means amending the grammar and generating a new parser.
Validation[edit | edit source]
While parsing the source, you can count the number of statements and their levels of nesting and require that certain limits are not exceeded.
Runtime[edit | edit source]
Instead of just validating the source, you can amend it on the fly and transform for example:
while (wfAbortIfResourcesLimitExceeded () && (true));
There will probably be some bombs that cannot be guarded against this way, but it should cover most common mistakes.
See also[edit | edit source]
- Extension:PhpTags - allows you to use PHP syntax in wiki pages