Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:123346 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by qa.php.net (Postfix) with ESMTPS id 536621A009C for ; Sat, 18 May 2024 14:00:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1716040897; bh=500ATMXn4y4VDX4pYLssXe5BYdC7jk9ZBlAZcV6AYZI=; h=From:Date:Subject:To:From; b=GQUW/DmPW182Xyr988nL5fYAnb/cbhICPdw4Q/0VDr/EB53jxD8ySSHOzgJc4f2FL XJ1nTRE8gRMglc+LZzeNQQ8PAAKJ5YPy9bPYixaTmGZtFqVW7oKhjSFMkIS8BavVcY 6l+ega5846wm/tAt6rYDbZ0zB0WMX+U7baAqeP3/RtfkN61njglyl/X/U8P5afANy1 j6lIHgGQ9HiuWnjNZxfVwzidyE1CmKrilMpEyaUFkH338bmQeaKMkiuyt6KTL9/ugR 73wK79zWn7H8U5dy/Q+7BuIXV43XA1nEg4bxO8bzwlvVyMPp7qUCyBx6EHZLtfAAD3 4TfbO3jLm3AXw== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 51647180004 for ; Sat, 18 May 2024 14:01:36 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_50,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS,FREEMAIL_FROM, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=4.0.0 X-Spam-Virus: Error (Cannot connect to unix socket '/var/run/clamav/clamd.ctl': connect: Connection refused) X-Envelope-From: Received: from mail-lf1-f49.google.com (mail-lf1-f49.google.com [209.85.167.49]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Sat, 18 May 2024 14:01:35 +0000 (UTC) Received: by mail-lf1-f49.google.com with SMTP id 2adb3069b0e04-51fc01b6fe7so1649856e87.0 for ; Sat, 18 May 2024 07:00:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1716040839; x=1716645639; darn=lists.php.net; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=+L4cUB+xqPc3lmu84+KJJWHJTCEyGKmWAcVsd2xG54k=; b=ms6pmfBxPBBjVmZR5XDK0Lnaxj7vZzdPtZqZH9YCWPdsuAT67MPZ3vHh89o47KK8W7 7xVUORLthIozOTwgMa143YlbxGRORQl9/d0Tyu56iztfMtX8JKRrvnzwQ5G4aFuPqFwr uvec4UapD3F8xJejdnDeFybHoaeIfab4whQV8ocGmGWRlpygAQtAuXhzZQEnt7LUaQMa i2UpdY/+S0L/E6PPBQbVzjXrlsxi7YfuWe/WCj3/JLfJth0JtB5Rx5UZ9Tecxj8gkmR6 SDiC0omY6YavDsU4UPh0soMjgewbUnREXfWsNf7f7tvThRAPyl9466+sDbCTJ++x0bM9 2R8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716040839; x=1716645639; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=+L4cUB+xqPc3lmu84+KJJWHJTCEyGKmWAcVsd2xG54k=; b=q1py5EwjDl6GaAW3getB42gKCj9qMmomn5nNl0ty6wbcqH2S3DY2fbmf3jOXBnA+ri gCOFdNbk1d01Uv/i0H8JivfH6FCa68arXcUxp4QPcPGVdKMso3E4kTiPBdQ7PtlM9UcI vE5N0+AmajYm9Y3n79wCMGzVfKbXZZA7YdsCahcaO4BfnkXNs17aH+Kfse/sUohYn/g0 /0njrMar03Fmvl0aSSnmXUO+MtrGhtoy9jqZ6bqoXXBiMQFYXKsgJ9ewpoGMHOklLFgc DNR/V3YrKqSIyaDt0hMxwx13VO8g2TC6X+Zom3NbwH93Bsheqv75gSykHmGZPrsnE6My C55A== X-Gm-Message-State: AOJu0YzLd0QkU4IcPwX6zTig6rfOSGv8YvdA9+wW4hNm2qtr7kPYL8lK LKHEA7w/WmkLYedyex0JWCejHGE3inGgM++rosWMTg7OMjhM5ZB274db2ytjSA6gB0Kv3LV8a4o U3ey7atCjWD6wnxOqGgdSR+vXBkONvoFe X-Google-Smtp-Source: AGHT+IH3X1t0rSFCI/it5BMlYBHxR6VPHsbwBO12WzD1PJPZg/Sxd9GkgcDg8BqEfBW2woXQblDexbHcGAaFmadzzC8= X-Received: by 2002:a05:6512:10cc:b0:523:683a:f5ed with SMTP id 2adb3069b0e04-523683af738mr12642268e87.9.1716040839320; Sat, 18 May 2024 07:00:39 -0700 (PDT) Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net MIME-Version: 1.0 Date: Sat, 18 May 2024 16:00:25 +0200 Message-ID: Subject: [PHP-DEV] [Discussion] "Internal" attribute and warning To: internals Content-Type: text/plain; charset="UTF-8" From: landers.robert@gmail.com (Robert Landers) Hello internals, I've been thinking about having an "internal" attribute that will emit a warning if called from outside it's left-most namespace. It might look something like this: namespace MyCompany\PackageA { #[\Internal] function doStuff() {} } namespace OtherCompany\PackageB { \MyCompany\PackageA\doStuff(); // warning emitted } namespace MyCompany\PackageB { \MyCompany\PackageB\doStuff(); // left-most part of namespace matches, no warning } This would allow for library maintainers to mark internal constructs as such and provide users with feedback that they are using code that may be changed without any notice. Any thoughts? Robert Landers Software Engineer Utrecht NL