Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:116377 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 99718 invoked from network); 15 Nov 2021 15:57:38 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 15 Nov 2021 15:57:38 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 2E994180547 for ; Mon, 15 Nov 2021 08:52:22 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_40,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,NICE_REPLY_A, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS15169 209.85.128.0/17 X-Spam-Virus: No X-Envelope-From: Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Mon, 15 Nov 2021 08:52:21 -0800 (PST) Received: by mail-wm1-f51.google.com with SMTP id d72-20020a1c1d4b000000b00331140f3dc8so313151wmd.1 for ; Mon, 15 Nov 2021 08:52:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:date:mime-version:user-agent:subject:content-language:to :references:from:in-reply-to:content-transfer-encoding; bh=EKxL/WcbH+3yMlDCy1msred7xbefzRA0pZYR3CP7nJg=; b=Lr9PB+KORUd2UkwgBVVCa+51F29kGK9DJe+JWXPlYKAHtIkcrXoJikZrpRGtqkL4wF 9sV65tbvTcSo+e/QauD4h2IRArOCJ/nHhmMmNM9tmYDY0MTUrhX+y6wLLW6YGfcJj35Z GiMH7XMsSTomSdOgX3rQ9rR1Jgkd+g3O1CJtR/hROwq12ngkqcO7+d1dV3MhV3BKmzeu EuEIRgI3vTymDLnpRQSDaztG6/QKgzmO/64KkbpI3ZGPSUZFIEJg/tGpYMIXH6p241OV nxFX3Gio6lOYBq2Fg2PkMNBOE64m5f2fK8X31tELUaAFey3Fey7GaeF0zf70F7YOMvtO rM+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:references:from:in-reply-to :content-transfer-encoding; bh=EKxL/WcbH+3yMlDCy1msred7xbefzRA0pZYR3CP7nJg=; b=n3XSM2zDpK1wW/NQukVOX1JcXFrXVuU23sjWwzxPoiaxbka5CWoqjEjvSul90BuiuC 93avYQ5N9KCgHWuf3QyF3CTmS1wyo0LQfH26To7PLMzfCTO8CFObD3hwjTU/9m48dB3a xDtHuhalqRz2sNcuPFBOP66u+rfeqeYqYb0m0PAvyqVQ/xcxBedLCuGqUomwrIlFscmR cvIJ3kWSyamkIgi1XGStOUgHnCEVv3Sf9pcjAFWnSXROU7GJBsbJhdzLfxGbUtWTFsVL iwksWuUcAeRm/uXjKjqnjAEv9kDR3LSdO8IKxhxH6A/22LHR8XD/wyp6ISVbFxhnIRmD ZPlw== X-Gm-Message-State: AOAM532bhi5VZIXGfxGibq8bPFqA2lXweUhGUgR+vZZbCza2FmPxzD9+ F5a8OL6gOvfjT0yOi+YoOs3dW2knQ+gkuQ== X-Google-Smtp-Source: ABdhPJwMO57LyXSOInZZewdl6P05jau3lp+VF5hztDVf1kABKeeT8SGk2dUtC/Vcd2fjwEVYrzoCHQ== X-Received: by 2002:a05:600c:3584:: with SMTP id p4mr60325658wmq.109.1636995140575; Mon, 15 Nov 2021 08:52:20 -0800 (PST) Received: from [192.168.0.22] (cpc104104-brig22-2-0-cust548.3-3.cable.virginm.net. [82.10.58.37]) by smtp.googlemail.com with ESMTPSA id m17sm14642200wrz.22.2021.11.15.08.52.19 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 15 Nov 2021 08:52:19 -0800 (PST) Message-ID: Date: Mon, 15 Nov 2021 16:52:18 +0000 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.3.0 Content-Language: en-GB To: internals@lists.php.net References: <371ca983-2b07-ae39-3629-49cf7ff8ee64@heigl.org> <497ab532-a39d-389c-8bca-86768650c2f4@heigl.org> In-Reply-To: <497ab532-a39d-389c-8bca-86768650c2f4@heigl.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] Re: [RFC] Deprecate dynamic properties From: rowan.collins@gmail.com (Rowan Tommins) On 15/11/2021 16:23, Andreas Heigl wrote: > One thing, that can verify the correct working of properties, whether > that is dynamic or static ones, is testing. Can it? I can't actually see how that would work, without also having a way to detect when dynamic properties were accessed, which brings us full circle. Also: > So the mistakes-part would be easy to handle. If you are working with a million lines of code going back 20 years, "write tests for everything" is not "easy to handle"; it's a long-term ambition which you chip away at when priorities allow. "Logging all deprecations and warnings on a production workload", however, *is* easy to handle. Diagnostic messages in logs are the *only* way this behaviour will be spotted in old code. > What I am still missing is the differentiation between "everything is > strict and you have to explicitly opt-in to make it dynamic" and an > "everything is dynamic and you can use a marker to mark this > explicitly an intended behaviour". That would allow users to mark a > class explicitly to use dynamic features even though it would make no > difference code-wise. I'm not sure what you mean by that. Do you mean, create the attribute, but don't actually do anything with it? Would the plan be to deprecate later? Never remove at all? Regards, -- Rowan Tommins [IMSoP]