Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:115800 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 54790 invoked from network); 25 Aug 2021 09:28:59 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 25 Aug 2021 09:28:59 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 08E561804DB for ; Wed, 25 Aug 2021 03:03:08 -0700 (PDT) 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.7 required=5.0 tests=BAYES_05,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,HTML_MESSAGE, 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-lf1-f47.google.com (mail-lf1-f47.google.com [209.85.167.47]) (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 ; Wed, 25 Aug 2021 03:03:07 -0700 (PDT) Received: by mail-lf1-f47.google.com with SMTP id m28so5461183lfj.6 for ; Wed, 25 Aug 2021 03:03:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=xNTg1hDsv5KEJPpSgG8EOh2maTlZUhPuhjTqSUzuDdk=; b=fzduFIUnTTFkjara4jZaMrdhhHNcwU40zNsbmPzCEbJjTROjbpjhTMjDJVW760z1us B8cM7FNfTzPJ4cnBMeuVNjKAxxo4xePYaG5fq931XGRwaGNDxhUmw9Ffd6Wr9AlTrrOU nSPm4by7O9MbQwhxnWZZfOlyWCedOMepvKDfO6oySKFucNiTQ4smhYfXv+6rmQCqkHg+ qJsb2RcWbvibPSC8I7NiU9gLUAbUB3Q/+T2pmROdHl8X0KT9tLFUKsEZiJA0hbUXEguc Gj8x+vTRX1MZWAHiClRNHHqdqY9SH800clL0N2pJ/swA/vQP6+oi6qCRYf+59w2RVxEW YU/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=xNTg1hDsv5KEJPpSgG8EOh2maTlZUhPuhjTqSUzuDdk=; b=FAJUuQaN7QlzA4HTp0RdsZzPAFDfKcdPD1AbO3Mp2LDDVpYbYXKCsyaqURaAFmHFxa hvHAu/dWWlsIdhT1UfiPDycZ/hsFbVc9f2UUvt159h43R/uq2MA98uCbmvVERV+13Vqe ecDYHYYiJdDgEU27/Q+QxZu5CkicIklrwbnEAIX1OHXUGdEaOMcv698A1ZDSiGrRAcnd lowaoGBUrkYN5ub8GstTurEurhAoTeMwZ8uBROOP1Q0J/v3HusKT4YQFdcNTGuGGepwe MBbIM0k1FnpkbDO6UB+dAJ5TAEYOsIth473rsNve56SfUsQg9qiKnVcBETmCynfGIhmC tQrA== X-Gm-Message-State: AOAM533Pyi9/0ZIm8cy7YB1DDlMH9lqENzAKCQ/C+PK8czbtwI9MI83o UeND0PM1CeR2xvxPUIvCbqS3FXwOFTaP3qkzXBiDk6w11TzfGQ== X-Google-Smtp-Source: ABdhPJxaBqvcXP0h2VZPeD4kqo74kCMqQB/FSH6YG82R0hFxIaZiqpZCYShdHr4tC/eVNQ8OEJG+pZURR2XjwXG5t1E= X-Received: by 2002:a05:6512:21a:: with SMTP id a26mr1323931lfo.223.1629885785487; Wed, 25 Aug 2021 03:03:05 -0700 (PDT) MIME-Version: 1.0 Date: Wed, 25 Aug 2021 12:02:49 +0200 Message-ID: To: PHP internals Content-Type: multipart/alternative; boundary="00000000000044bce305ca5f5b54" Subject: [RFC] Deprecate dynamic properties From: nikita.ppv@gmail.com (Nikita Popov) --00000000000044bce305ca5f5b54 Content-Type: text/plain; charset="UTF-8" Hi internals, I'd like to propose the deprecation of "dynamic properties", that is properties that have not been declared in the class (stdClass and __get/__set excluded, of course): https://wiki.php.net/rfc/deprecate_dynamic_properties This has been discussed in various forms in the past, e.g. in https://wiki.php.net/rfc/locked-classes as a class modifier and https://wiki.php.net/rfc/namespace_scoped_declares / https://github.com/nikic/php-rfcs/blob/language-evolution/rfcs/0000-language-evolution.md as a declare directive. This RFC takes the more direct route of deprecating this functionality entirely. I expect that this will have relatively little impact on modern code (e.g. in Symfony I could fix the vast majority of deprecation warnings with a three-line diff), but may have a big impact on legacy code that doesn't declare properties at all. Regards, Nikita --00000000000044bce305ca5f5b54--