Bug #75850 [Com]: Unclear error message wrt. __halt_compiler() w/o semicolon
| From: | anrdaemon at yandex dot ru | Date: | Wed, 27 Jan 2021 06:53:39 +0000 |
| Subject: | Bug #75850 [Com]: Unclear error message wrt. __halt_compiler() w/o semicolon | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-231788@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=75850&edit=1
ID: 75850
Comment by: anrdaemon at yandex dot ru
Reported by: anrdaemon at freemail dot ru
Summary: Unclear error message wrt. __halt_compiler() w/o
semicolon
Status: Closed
Type: Bug
Package: PHAR related
Operating System: unrelated
PHP Version: 7.1.13
Assigned To: cmb
Block user comment: N
Private report: N
New Comment:
Thanks, much appreciated.
Previous Comments:
------------------------------------------------------------------------
[2021-01-25 17:50:18] cmb@php.net
Automatic comment on behalf of cmbecker69@gmx.de
Revision: http://git.php.net/?p=php-src.git;a=commit;h=61ed904cecbfd2eb6e5c39c22de3c215a2aee722
Log: Fix #75850: Unclear error message wrt. __halt_compiler() w/o semicolon
------------------------------------------------------------------------
[2021-01-25 16:19:37] cmb@php.net
The following pull request has been associated:
Patch Name: Fix #75850: Unclear error message wrt. __halt_compiler() w/o semicolon
On GitHub: https://github.com/php/php-src/pull/6638
Patch: https://github.com/php/php-src/pull/6638.patch
------------------------------------------------------------------------
[2018-01-20 09:40:59] requinix@php.net
?> does imply ; however the Phar stub docs
http://php.net/manual/en/phar.fileformat.stub.php
require "that it conclude with __HALT_COMPILER();". Indeed, Phar internally looks for that
exact (case-insensitive) string.
This could be a request to support dropping the semicolon, but changing the message is certainly
easy enough.
------------------------------------------------------------------------
[2018-01-20 09:21:45] anrdaemon at freemail dot ru
Description:
------------
Unable to use stub with "?>" token present but ";" omitted after
__halt_compiler().
According to PHP parsing rules, "?>" implies ";". (In other words, the stub
itself executes cleanly, which makes it extra hard to realize the source of confusion.)
At the very least, the error message could be clearer.
Test script:
---------------
<?php
(new Phar("test.phar"))->setStub("<?php __halt_compiler()?>");
Expected result:
----------------
A
test.phar example created.
Actual result:
--------------
PHP Fatal error: Uncaught PharException: illegal stub for phar ".../test.phar" in
.../case2.php:3
Stack trace:
#0 .../case2.php(3): Phar->setStub('<?php __halt_co...')
#1 {main}
thrown in .../case2.php on line 3
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=75850&edit=1