Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:94197 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 40482 invoked from network); 22 Jun 2016 13:15:13 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 22 Jun 2016 13:15:13 -0000 Authentication-Results: pb1.pair.com header.from=dmitry@zend.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=dmitry@zend.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 207.46.100.110 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 207.46.100.110 mail-by2on0110.outbound.protection.outlook.com Received: from [207.46.100.110] ([207.46.100.110:64906] helo=na01-by2-obe.outbound.protection.outlook.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id DA/8E-43024-E5F8A675 for ; Wed, 22 Jun 2016 09:15:12 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=RWSoftware.onmicrosoft.com; s=selector1-zend-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=o3wm1xP0PqDpkd8cTrxVFn7GzFoMAW2hrcw6TWz3kBk=; b=GMAlbGgupkexozg+FxPAmnxnjnChNvUtFIHSkjTRfZhyFerDmMAF20KtJDjlVA7Hxg5l3Zbk7tXQbTXLTJ2ZzH+isz3bLYeohHMNsEQEFTMXU/50AmLJUkt77f8N27g2rjoh3ZhBDVx0tC98vgulXzAW552xDXkK6FsHGb+wFE4= Received: from BY2PR0201MB1784.namprd02.prod.outlook.com (10.163.72.26) by BY2PR0201MB1781.namprd02.prod.outlook.com (10.163.72.23) with Microsoft SMTP Server (TLS) id 15.1.523.12; Wed, 22 Jun 2016 13:15:06 +0000 Received: from BY2PR0201MB1784.namprd02.prod.outlook.com ([10.163.72.26]) by BY2PR0201MB1784.namprd02.prod.outlook.com ([10.163.72.26]) with mapi id 15.01.0523.015; Wed, 22 Jun 2016 13:14:58 +0000 To: Nikita Popov CC: Oz Gilat , PHP internals Thread-Topic: Fixing backtraces with custom get_class_name() handler Thread-Index: AQHRzIem25poCEpqDkO/QDc2QA0eZA== Date: Wed, 22 Jun 2016 13:14:58 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=dmitry@zend.com; x-originating-ip: [132.245.81.165] x-ms-office365-filtering-correlation-id: 1f37be86-21da-4c6d-bd94-08d39a9f3604 x-microsoft-exchange-diagnostics: 1;BY2PR0201MB1781;6:uo3S5UCDnSJRBB/vBrXh+JOA92ZVorGkrhrfnXNVVSZBR8yeF1xldeEbZ3WO9ZnNDceOSjgskUzl4PZu+/8qH13TdwsQs+F34O0BuS5L0asm3abPTTahc4gWJdoYWnAUHw4Y3OUK9TtNmVnRtb7KwCuswS87npkYcJJL0BjHRUTT29/8J0sEVnBR2AkC2ka8uqjPv8HQx4jkc85R0bwzkjO2v0Z3fnFuJumbQH6tqxF/13poWme68b9L7QbbhQaqXPoh55vjq3YN4UJCIltAkb0OZmcMDtwchCtqcMI/dhjm7sxUU3uXOG5pjn/GxI4p;5:F/Va7i9tl0nm+nGol9lNADrLo9xNYjUr2liswYJManJFoHGrBub28KUuOzzcVu35Wo3t9VdvNvTqo2n58zch+MAzlePYq/NS5YnMf3a+I/yagz2UWirzjh+BzCYtVbEFLDxBQ6Ur1JjWK/qJ83X7Kw==;24:whSIovkVhrU3zypbSuwSe36D5T1MgMzBJroGjdRKRoa1w0to+UOzAUAGEd5LBjKVfJ+KrSQbuPuFWFqgQ5laUI7PHYi8YUyc7dwLmW2R6Tw=;7:z0kh/oAeZcH+Htq8+ft9AoUyHqOfhM7GP+Z9/gP4E7GAKf9eCqyD6jITqVl/4nwvdL5TozT6Xuw+1smgpoopwHZDKgcbuvjDfnanD4k/kLJnotp2YPNe+JjTFW5mWezVbGNGtEFBVjSrNnk+zYWnDzOSvu00tkBrNHjFyPO/pzCRnHn2+b6omPWiJrI4EFm1J4W0upw0sNPeSJxMdI5R1oJ4EOw7i6v6yg21tLgUcifnZ63xYWtF+0EhdAQUNMefURHSajy2rXxTcIrn5Uin9Q== x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0201MB1781; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(166708455590820)(192278398808882); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046);SRVR:BY2PR0201MB1781;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0201MB1781; x-forefront-prvs: 0981815F2F x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(7916002)(76104003)(199003)(189002)(102836003)(110136002)(6116002)(81156014)(33656002)(189998001)(77096005)(66066001)(15975445007)(68736007)(81166006)(105586002)(7906002)(586003)(54356999)(3846002)(101416001)(106116001)(8676002)(106356001)(2900100001)(87936001)(5003600100003)(92566002)(7736002)(122556002)(50986999)(10400500002)(19625215002)(19617315012)(16236675004)(76576001)(3280700002)(19627405001)(2906002)(8936002)(74316001)(4326007)(19580395003)(99286002)(3660700001)(86362001)(5002640100001)(575784001)(229853001)(9686002)(7696003)(7846002)(97736004);DIR:OUT;SFP:1102;SCL:1;SRVR:BY2PR0201MB1781;H:BY2PR0201MB1784.namprd02.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; received-spf: None (protection.outlook.com: zend.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: multipart/alternative; boundary="_000_BY2PR0201MB17842502187CCC1A7AFE7090BF2C0BY2PR0201MB1784_" MIME-Version: 1.0 X-OriginatorOrg: zend.com X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jun 2016 13:14:58.2846 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 32210298-c08b-4829-8097-6b12c025a892 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0201MB1781 Subject: Fixing backtraces with custom get_class_name() handler From: dmitry@zend.com (Dmitry Stogov) --_000_BY2PR0201MB17842502187CCC1A7AFE7090BF2C0BY2PR0201MB1784_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi Nikita, When we developed php 7.0, we replaced most calls to get_class_name() by si= mple obj->ce->name reading. However, this functionality was used by some 3-rd part extensions (e.g. Zen= d JavaBridge and may be pecl/perl). These extensions create proxy classes and control remote objects through RP= C. Actually, we broke the previous behavior of backtrace* and get_class()/get_= parent_class() functions. Backtrace may be fixed even in 7.0 with the following patch: https://gist.github.com/dstogov/d84183da9b0d958dfe5cb8d711c8d677 However, we can't fix get_parent_class(), because we changed get_class_name= () handler prototype (removed "parent" argument). get_class() may be fixed but I don't like to do this without get_parent_cla= ss(), because they are going to be inconsistent. What do you think about fixing backtrace in 7.0? In my opinion, it looks consistent with other "debug" functions, e.g. var_d= ump() etc Oz, as I understood, you already found a workaround for get_class/get_paren= t_class introducing get_java_class(). right? so, do you think it worth to fix get_class/get_parent_class in 7.1? (I thin= k no) Thanks. Dmitry. --_000_BY2PR0201MB17842502187CCC1A7AFE7090BF2C0BY2PR0201MB1784_--