Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:106572 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 37764 invoked from network); 13 Aug 2019 22:58:03 -0000 Received: from unknown (HELO mail-wr1-f51.google.com) (209.85.221.51) by pb1.pair.com with SMTP; 13 Aug 2019 22:58:03 -0000 Received: by mail-wr1-f51.google.com with SMTP id 31so109001860wrm.1 for ; Tue, 13 Aug 2019 13:26:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding:content-language; bh=wQECJ05PMwFQteuEkGK3Y5nsYpqgelq+AuzyvFgvJMs=; b=JiM7CEfFKuFy+gsTRAUExiIjnshd5EEWLrt8GxKvKZoDRom/QdNTbsJugSePKI5UQW bSyiQcNXHeIJP4oPJVIafovg22W4YV1h26XDSTirSLO4cgD4eHcEzCKmins6OK6xS51M Lga5QFCUU2U0ehAyuSIEUAh6wTIESALYowsS7IyazTkURugLA+RrIN71wuBa0w1rhbN7 /PL51u5tnhUsqCTJiFxsVgAPBUpc8M5ar2R+9LzIyujjmjoSKEqKEtB4eq8pOCOFTMI/ FHOAlnGZLzZ9tB1nLp7DnR1ys2fArUaXoj1wfDRGpuinRkpuvzZx4xUymfvwtYg19n5r Rr/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=wQECJ05PMwFQteuEkGK3Y5nsYpqgelq+AuzyvFgvJMs=; b=Ips9FAn9uB+D5JqDeYigAGvheoo5U+maROsmdFjaxvJ0nXPFpdSHBixwd8JoBXYH/T TI+8NwoUHQMgLbsrfp1uRUdIIEEEtbqCagh0UTW5lBrPivwVqi6Cf+0MTQIXT0OBMK1M nWHJuG/nxmkUqk25ORNAOce/z9y0hHkTMeszyHzXBbGoTTVNuBiwt/CQ0BeR301nIf29 oiAucv/LlU9UP7hb5FLy4Ah+M4tPLOl1KMwmDzhDgGxewTrUNgtZbRJ7D5nLQhp4vbt2 1qB+j+Gcfi3aCcpnWpK8lQjJJ1quvYxcVsDZtM4N5PnFz0Smu35tQhypbyc2IeYyd8Qr /pRQ== X-Gm-Message-State: APjAAAUS60sojLFdwb41PTTGwGYynImW6jlsOAg9I0W8U/Da8UwwN14Q eXBHBkKy6kgLvvHAzS3NKUSeNjin X-Google-Smtp-Source: APXvYqxkI4p2aHvxbzTSuvOSUi59G8Jr9ca5PTCB/BQaKiENLUmBBATWZmlym8jB2Rf4TkT95wOC4w== X-Received: by 2002:a5d:6409:: with SMTP id z9mr35730807wru.308.1565727991139; Tue, 13 Aug 2019 13:26:31 -0700 (PDT) Received: from [192.168.0.16] (cpc84253-brig22-2-0-cust114.3-3.cable.virginm.net. [81.108.141.115]) by smtp.googlemail.com with ESMTPSA id z9sm2970334wmf.21.2019.08.13.13.26.30 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 13 Aug 2019 13:26:30 -0700 (PDT) To: internals@lists.php.net References: <25d774e8-183b-d39c-4ac4-81c1b7770229@gmail.com> <5d5298a5.1c69fb81.b4ed1.2d97SMTPIN_ADDED_MISSING@mx.google.com> <3db68c5e-54d1-812f-bbf5-1b089cba1bff@gmail.com> <5d52f72d.1c69fb81.8f95f.57a1SMTPIN_ADDED_MISSING@mx.google.com> Message-ID: <2bcb05d6-abf6-4fcb-599e-eaf4bcd58878@gmail.com> Date: Tue, 13 Aug 2019 21:26:27 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <5d52f72d.1c69fb81.8f95f.57a1SMTPIN_ADDED_MISSING@mx.google.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-GB Subject: Re: [PHP-DEV] [RFC] Namespace-scoped declares, again From: rowan.collins@gmail.com (Rowan Collins) On 13/08/2019 18:45, Mark Randall wrote: > I thought about this as my first consideration, however it effectively > requires that the PHP code within the package class is fully parsed > and executed in order for it to retrieve the data. > > Consider pre-loading where the code is compiled, but not run, it would > not be possible to use namespace level defines to add compile-level > optimizations or checks (at least without some AST hackery). Ah, that makes sense. Does that necessarily mean we need a dummy class, though? The autoloading logic in the engine knows that it called the autoload callback expecting a package definition, so can count as success that the package is now defined. In other words, the file the autoloader included would look like this (again, sticking to the notion that "package" is separate from "namespace"): # # File: /lib/company/project1.php #