Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:108355 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 64403 invoked from network); 4 Feb 2020 09:14:47 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 4 Feb 2020 09:14:47 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id E240D180532 for ; Mon, 3 Feb 2020 23:26:52 -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=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS39142 195.191.240.0/23 X-Spam-Virus: No X-Envelope-From: Received: from hos109.unaxus.net (hos109.unaxus.net [195.191.240.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Mon, 3 Feb 2020 23:26:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=heigl.org; s=default; h=Content-Type:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Sender:Reply-To:Cc:Content-Transfer-Encoding:Content-ID :Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To: Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe :List-Post:List-Owner:List-Archive; bh=lbmClNSBrqJHKkWMGKVOUkGg54aSxv43F/q5zqnXSao=; b=ZooV5znrxRKsWPPeX9H7cZo3gP pnTuKRjZfnMH6+FV+K2Ay5qVRu03rOD2i7t9LUXl08QpDnOrwutfF+Z28RWgNUoO+7AJyj7L9HR9z rMI9l6FrBEJxLEHOyl7Q/Lr41cUFsEAVrRUXnTnb7mrga3hBScYfafpJBVv860+pmHqAEhS9qrNzQ d+RMPJB7s9k+2l63Pu/UeSx8l75Tbh67UX6LTatB+nkqalHPp6Zi0QQ3f69XIJK8k7gESD01+cOsb XWKEhTn4yJNraaV4MiWX33b0QUwi40cpjsYKmX7fQHAeHiDWR9mUF8pqBTDslsUh8aOoE2MV6Vfct /gGVU3ag==; Received: from ma.bitexpert.net ([82.119.168.218]:57212 helo=[192.168.13.2]) by hos109.unaxus.net with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.92) (envelope-from ) id 1iysbi-00AFx8-Rc for internals@lists.php.net; Tue, 04 Feb 2020 08:26:50 +0100 To: internals@lists.php.net References: Autocrypt: addr=andreas@heigl.org; keydata= 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 RLiMJj+x8jGy2xtu Message-ID: Date: Tue, 4 Feb 2020 08:26:44 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="maCkuqJUuyUi35I5qc3fm45hvgQ7bj1NB" X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - hos109.unaxus.net X-AntiAbuse: Original Domain - lists.php.net X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - heigl.org X-Get-Message-Sender-Via: hos109.unaxus.net: authenticated_id: a.heigl@heigl.org X-Authenticated-Sender: hos109.unaxus.net: a.heigl@heigl.org Subject: Re: [PHP-DEV] Re: What about a magic __toArray() method? From: andreas@heigl.org (Andreas Heigl) --maCkuqJUuyUi35I5qc3fm45hvgQ7bj1NB Content-Type: multipart/mixed; boundary="TSkUG3VnoW9jEYRaKUJRKeKwYfedd3bAh" --TSkUG3VnoW9jEYRaKUJRKeKwYfedd3bAh Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable Hey all. Instead of adding more magic I personally like the approach of explicitness more and your suggest adding an interface "Arrayable" (naming is hard and this might not be the best name) instead. Whether that interface then defines a `__toArray()`-method or something entirely different is then a different matter. Additionally this would be in line with Nicolas RFC regarding "Stringable" (https://wiki.php.net/rfc/stringable) Just my 0.02=E2=82=AC Cheers Andreas Am 04.02.20 um 08:18 schrieb Midori Ko=C3=A7ak: > Or we can deprecate __toString() method at all and detect cast events > instead. Would it make more sense? Something like this __casted(). >=20 > P.S: I saw the previous conversation but hence now we have types, it wo= uld > make sense. >=20 > Midori >=20 > On Tue, 4 Feb 2020 at 08:15, Midori Ko=C3=A7ak wrot= e: >=20 >> As you know we have __toString method that runs whenever an object is >> typecasted to string or it is directly echoed. >> >> > >> $class =3D (new class{ >> public function __toString(){ >> echo "casted\n"; >> return "mahmut\n"; >> } >> }); >> >> echo $class; >> $casted =3D (string)$class; >> >> /* >> prints: >> casted >> mahmut >> casted >> mahmut >> */ >> >> >> As you know toArray() method implemented when an object is converted i= nto >> and array and most of the time when a plain data object is sent to >> front-end. >> >> Having a magic method like __toString called __toArray would be useful= to >> detect and act on conversion events. >> >> Roughly it would be like: >> >> > >> $class =3D (new class{ >> public function __toArray(){ >> echo "casted\n"; >> return >> [ >> 'key'=3D>'value' >> ]; >> } >> }); >> >> >> $casted =3D (array)$class; >> print_r($casted); >> >> /* >> prints: >> Array >> ( >> [key] =3D> value >> ) >> mahmut >> */ >> >> What would you think? I think it would add value. >> >=20 --=20 ,,, (o o) +---------------------------------------------------------ooO-(_)-Ooo-+ | Andreas Heigl | | mailto:andreas@heigl.org N 50=C2=B022'59.5" E 08=C2=B0= 23'58" | | http://andreas.heigl.org http://hei.gl/wiFKy7 | +---------------------------------------------------------------------+ | http://hei.gl/root-ca | +---------------------------------------------------------------------+ --TSkUG3VnoW9jEYRaKUJRKeKwYfedd3bAh-- --maCkuqJUuyUi35I5qc3fm45hvgQ7bj1NB Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEOHo7et0VdZk8RJK34Ff+SCK3tkUFAl45HLQACgkQ4Ff+SCK3 tkXnTxAAjb8r9r1rAB+IBE9WPN3oOo3/xxf/3nzVKn1RxFnCYtkZ97mg87cSYXsj 8Hzzuh2BUW5Dim76ITDIn7ojZmYNbBfoeFBkNYBEaE5yx+EiCWtiv9E4m9dN10To ThCtoFbyXMSFSsnHPXdcbeKI5Itq/J41JuaWHgh13Po4Jf8U1xzfKqVP80UD1sTL HRwXstKmKex6UnqgvzpCC0fSaE+WPH+U1SxJsnyanGk+Rrc0m57fSUpmxts26vUU BIeEWaXNt/EIhyx2GNgQ4crtLSSDlqA6o7OBDW7BvH3cmx/TX+ZTeuRAZkombX/H zL2T/FCeqtqSHwUQU0WcCbeQbU0PpQEBmNX3vDaE5eW160Dybpz8fyfdApjcWVU1 M5GY6efj3DivIvpIWkDV5XwnnbFNTkRK51YnS4Nt/xG32GWCk3LhY1FvvJ8rC8Qr Efi/L8JlruYkBoeUoBhbFGuFgGI/KP3/JCyig7Tnby83zmIqfR3ft9Wcn49uDHvy OYthzSwjwdFs3Wsq8tBEuKen/WPc9XMfzuSIjB1El7Cvb0oEKwIAFh49ztr47ccg UOO9HICWEWZ/Mt5w3N29+AJPwoi3X+Qhdg8320td4Tcc3D/xn8wyAWjh+tG8jswJ 4zneCa2NLyCY4GdCZRvg43iPfiNWyShAaWM+BWAtMicELXtcNIE= =uV84 -----END PGP SIGNATURE----- --maCkuqJUuyUi35I5qc3fm45hvgQ7bj1NB--