Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:95672 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 48604 invoked from network); 5 Sep 2016 20:13:38 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 5 Sep 2016 20:13:38 -0000 Authentication-Results: pb1.pair.com header.from=nicolas.grekas@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=nicolas.grekas@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 74.125.82.41 as permitted sender) X-PHP-List-Original-Sender: nicolas.grekas@gmail.com X-Host-Fingerprint: 74.125.82.41 mail-wm0-f41.google.com Received: from [74.125.82.41] ([74.125.82.41:35126] helo=mail-wm0-f41.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 71/29-45301-0F1DDC75 for ; Mon, 05 Sep 2016 16:13:36 -0400 Received: by mail-wm0-f41.google.com with SMTP id i204so3841299wma.0 for ; Mon, 05 Sep 2016 13:13:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=3aGz20GG8eCUUMwsq33PnCTaiy4/3L6f1wacJ3c/2mc=; b=GFjgGewTT2B2qmXS3pVwuiE9h0V63UPcikOHCD78Gr6Y/BZfoAPqS+tHinGieiSg83 ZmqfPcqoqZF25u1cXY049nPOA2ifj0rUQ1jE5c7OOM+4jonpl3T/Rod40f8R0Rerryim +XRcPywyK/wLabz0ThcwDJ6Op8r2Elk57ZObLNkrIn6mmhlPV3xaUu/UQswHm0kxg/5I lRIiESoe9jgjjDGo253/YVFS+n+tNcuwHLDYN8A/t9E5VvxRwkWgVJr1QWVIqEOIg8hz GNMTzrcpesgnRv2v5+Sn/C0xHtD10i0BJwj+VKfyqIVqnNhHI4Rcpm/MktuA3dgLFt6Y GYMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=3aGz20GG8eCUUMwsq33PnCTaiy4/3L6f1wacJ3c/2mc=; b=Uw64zQukbZp5J0bL4COQpCSoH4TbRg1LajaGSkgrtnSi5amgdr9Z1ohLFKtyti3AE3 DNJXVwaBSUe9GPt21jpVkSqY8GofJnfjG13Rs0nE1Mt1tey2JFyxZ28+piTHTV+l7byE ++XM3As1tt4FqFOYbNmxm6Uz5fMsQW21c/v93Z1e9eRKZEerIVnqOijK8lagQLdyB4fs TW217qBULtnwBT77Yu/BkfKIL37VyD+LUMQJH3RDecTDY78SqK/lfxKNp2XCFunvk6n7 3DIcv2vUQxRqNKAU5jzKbryr9TXmXrHWAynGxL/u1oUr1LJsOIEAPpcM46tXdc+fSSPZ HQ7Q== X-Gm-Message-State: AE9vXwM9JgSS4JQ4rCoVA2qxs6KUnhA5IlXTtce49Oom6dd66/hWSfbIGGwR5aPYR5dH9xaI9I/Liy/K0NXjlg== X-Received: by 10.28.174.76 with SMTP id x73mr16281143wme.60.1473106413388; Mon, 05 Sep 2016 13:13:33 -0700 (PDT) MIME-Version: 1.0 Received: by 10.194.234.105 with HTTP; Mon, 5 Sep 2016 13:13:12 -0700 (PDT) In-Reply-To: References: Date: Mon, 5 Sep 2016 22:13:12 +0200 Message-ID: To: Niklas Keller Cc: Pierre Joye , PHP internals Content-Type: multipart/alternative; boundary=001a11444af47c8a8d053bc8508b Subject: Re: [PHP-DEV] Missing reflection info about strict types? From: nicolas.grekas@gmail.com (Nicolas Grekas) --001a11444af47c8a8d053bc8508b Content-Type: text/plain; charset=UTF-8 > Why do you concatenate these files in the first place? > > It's not specifically me but Symfony's ClassCollectionLoader::load() method, which generates a single file with common classes inlined for faster bootstrapping (the perf gain is objectively measurable). You give this method a list of classes that are always required, and it computes all the required parents/interfaces/traits they use, by using reflection of course. It turns namespace to the bracketed syntax, orderd things as required (parents first), and dumps everything in one php file. The issue came to our tracker that this process was broken once one wanted to inline a strict class there, either directly or indirectly through the parent chain. I worked on the issue and fixed it by replacing the inlining by a "require" for now. Here is the pointer for the fix (then the class & the issue): https://github.com/symfony/symfony/pull/19859/files?w=1 --001a11444af47c8a8d053bc8508b--