-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Checking mergeability…
Don’t worry, you can still create the pull request.
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: php/php-src
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: iFixit/php-src
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: ifixit-production
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 9 commits
- 23 files changed
- 3 contributors
Commits on Mar 31, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 855f008 - Browse repository at this point
Copy the full SHA 855f008View commit details
Commits on Apr 14, 2020
-
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3: Fix bug #79465 - use unsigneds as indexes. Fix bug #79330 - make all execution modes consistent in rejecting \0
Configuration menu - View commit details
-
Copy full SHA for 4f606b5 - Browse repository at this point
Copy the full SHA 4f606b5View commit details -
Configuration menu - View commit details
-
Copy full SHA for f10c944 - Browse repository at this point
Copy the full SHA f10c944View commit details -
Configuration menu - View commit details
-
Copy full SHA for e5c5832 - Browse repository at this point
Copy the full SHA e5c5832View commit details -
Configuration menu - View commit details
-
Copy full SHA for 787a173 - Browse repository at this point
Copy the full SHA 787a173View commit details -
Configuration menu - View commit details
-
Copy full SHA for ab4d189 - Browse repository at this point
Copy the full SHA ab4d189View commit details
Commits on Apr 16, 2020
-
Configuration menu - View commit details
-
Copy full SHA for f5c85f1 - Browse repository at this point
Copy the full SHA f5c85f1View commit details -
PHP Templates: add optional autescaping to echo/<?=
Background ========== PHP doesn't have any mechanism to inject logic between templating and final output. There is no way to filter or alter the content that comes from code in templates like: <?= $someVar ?> To use php as a robust templataing language, we must inject *some* logic between templates and their output. We have chosen to make all <?=, echo, and print statements subject to an optional trip through escape_html_entitiles. The functionality can be toggled with `ini_set('__auto_escape')` and configured with `__auto_escape_flags` and `__auto_escape_exempt_class` (see commit 2dae5d1 for info about the class name based auto-escaping exemption. Methodology =========== T_ECHO (echo, <?=), T_PRINT (print) now both emit a ZEND_AST_ECHO_ESCAPE node in the syntax tree. That's compiled to a function which emits a ZEND_ECHO_ESCAPE op code. The op code interpretation is a dupe of ZEND_ECHO except with some if() statements that switch the underlying function from `zend_write` to `zend_write_escape` based on the ini settings. zend_write_escape is a new function pointer that points to php_escape_write. php_escape_write is a new function that passes it's string argument through php_escape_html_entities() (with __auto_escape_flags) before calling the underlying php_output_write. Use === This functionality allows us to safely use php straight as a templating language with no template compilation step (as many other templating libraries have). See the included tests for more usage information. Exempt Class ============ It is useful to allow some utility functions and helpers to produce html and have it passed straight through in the template (without being double-encoded). We accomplish this by *tagging* strings as being HTML. class HtmlString implements JsonSerializable { protected $html = ''; public function __construct($html) { $this->html = $html; } public function __toString() { return (string)$this->html; } public function jsonSerialize() { return $this->html; } } The auto-escaping system can be configured with an: __auto_escape_exempt_class="HtmlString" Which allows instances of `HtmlString` to pass straight through a template without being modified (skipping the html_entities call). Helper functions can now return html safely and consumers don't have to care if it is HTML or not because the auto-escaping system knows what to do. squash with big commit
Configuration menu - View commit details
-
Copy full SHA for cb6eb5c - Browse repository at this point
Copy the full SHA cb6eb5cView commit details -
The previous commit updated zend_vm_def and others that are used as inputs to these auto-generated files. Run php Zend/zend_vm_gen.php and commit the result.
Configuration menu - View commit details
-
Copy full SHA for 2fa338f - Browse repository at this point
Copy the full SHA 2fa338fView commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff master...ifixit-production