Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:88082 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 81690 invoked from network); 7 Sep 2015 09:46:58 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 7 Sep 2015 09:46:58 -0000 Authentication-Results: pb1.pair.com smtp.mail=mail@dasprids.de; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=mail@dasprids.de; sender-id=unknown Received-SPF: error (pb1.pair.com: domain dasprids.de from 46.4.80.198 cause and error) X-PHP-List-Original-Sender: mail@dasprids.de X-Host-Fingerprint: 46.4.80.198 server1.dasprids.de Received: from [46.4.80.198] ([46.4.80.198:59857] helo=mail.dasprids.de) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 72/06-40368-C0D5DE55 for ; Mon, 07 Sep 2015 05:46:57 -0400 Received: from [192.168.0.86] (unknown [5.158.132.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: mail@dasprids.de) by mail.dasprids.de (Postfix) with ESMTPSA id 9F08534404F5; Mon, 7 Sep 2015 11:46:49 +0200 (CEST) To: =?UTF-8?Q?Pavel_Kou=c5=99il?= References: <55E4B9AA.9060906@dasprids.de> Cc: PHP internals Message-ID: <55ED5D0E.2090808@dasprids.de> Date: Mon, 7 Sep 2015 11:46:54 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="------------ms060201020109080400090503" Subject: Re: [PHP-DEV] Generic classes and methods RFC From: mail@dasprids.de (Ben Scholzen) --------------ms060201020109080400090503 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Hi, > I would love to see generics in PHP, but I have a few questions for you= r RFC. > > class Bazz > > Why did you use this syntax for forcing extending/implementation? I > know this is the syntax C# uses, but it doesn't fit PHP. I think it > should be "extends" or "implements", because in PHP : has a different > meaning. I've used a different syntax before (namely "extends" and "implements"), = but someone pointed out, that a keyword-less version would make more=20 sense, so I updated it appropriately. If someone has a better=20 suggestion, I'm happy to include it in the RFC. > Also, how do you specify multiple constraints? I didn't plan on covering multiple constraints here, as we don't handle=20 them at all in PHP yet. Although I've read that someone wanted to have=20 Union-types in PHP, which could be used here as well I suppose. > Do you have any idea how it would work internally and if there was > some performance hit while using generics, and if it would also slow > down existing apps that don't use generics? I don't have enough insights in the PHP guts to make a good suggestion=20 about this, but I'd assume that it should not have a negative=20 performance effect on code which doesn't use generics. > I hope this RFC will have positive comments, and someone who is > capable of writing C will help you out with it so there's a patch for > people to review - because I'm not sure if this RFC can get anywhere > without a patch. :( > > Regards > Pavel Kouril > --=20 Ben Scholzen http://www.dasprids.de --------------ms060201020109080400090503 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCC DLQwggY0MIIEHKADAgECAgEgMA0GCSqGSIb3DQEBBQUAMH0xCzAJBgNVBAYTAklMMRYwFAYD VQQKEw1TdGFydENvbSBMdGQuMSswKQYDVQQLEyJTZWN1cmUgRGlnaXRhbCBDZXJ0aWZpY2F0 ZSBTaWduaW5nMSkwJwYDVQQDEyBTdGFydENvbSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe Fw0wNzEwMjQyMTAyNTVaFw0xNzEwMjQyMTAyNTVaMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UE ChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUg U2lnbmluZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3MgMiBQcmltYXJ5IEludGVybWVkaWF0 ZSBDbGllbnQgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDLKIVFnAEs+xny q6UzjCqgDcvQVe1dIoFnRsQPCFO+y92k8RK0Pn3MbQ2Gd+mehh9GBZ+36uUQA7Xj9AGM6wgP hEE34vKtfpAN5tJ8LcFxveDObCKrL7O5UT9WsnAZHv7OYPYSR68mdmnEnJ83M4wQgKO19b+R t8sPDAz9ptkQsntCn4GeJzg3q2SVc4QJTg/WHo7wF2ah5LMOeh8xJVSKGEmd6uPkSbj113yK Mm8vmNptRPmM1+YgmVwcdOYJOjCgFtb2sOP79jji8uhWR91xx7TpM1K3hv/wrBZwffrmmEpU euXHRs07JqCCvFh9coKF4UQZvfEg+x3/69xRCzb1AgMBAAGjggGtMIIBqTAPBgNVHRMBAf8E BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrlWDb+wxyrn3HfqvazHzyB3jrLsw HwYDVR0jBBgwFoAUTgvvGqRAW6UXaYcwyjRoQ9BBrvIwZgYIKwYBBQUHAQEEWjBYMCcGCCsG AQUFBzABhhtodHRwOi8vb2NzcC5zdGFydHNzbC5jb20vY2EwLQYIKwYBBQUHMAKGIWh0dHA6 Ly93d3cuc3RhcnRzc2wuY29tL3Nmc2NhLmNydDBbBgNVHR8EVDBSMCegJaAjhiFodHRwOi8v d3d3LnN0YXJ0c3NsLmNvbS9zZnNjYS5jcmwwJ6AloCOGIWh0dHA6Ly9jcmwuc3RhcnRzc2wu Y29tL3Nmc2NhLmNybDCBgAYDVR0gBHkwdzB1BgsrBgEEAYG1NwECATBmMC4GCCsGAQUFBwIB FiJodHRwOi8vd3d3LnN0YXJ0c3NsLmNvbS9wb2xpY3kucGRmMDQGCCsGAQUFBwIBFihodHRw Oi8vd3d3LnN0YXJ0c3NsLmNvbS9pbnRlcm1lZGlhdGUucGRmMA0GCSqGSIb3DQEBBQUAA4IC AQA6qScNyNO0FpHvaZTQacVMXH33O51KyEKSRw3IvdQxRu31YR0ZDGdSfgSoOVDVMSBSdmfQ fdDInHPzV3LO5DwUXZ+lxjv7z3PO2OkfnFkvTXPfn6dxJ5rJveDsTsCPcJ/Kp6/+qN5g+J6D /SaYcFD018B6L42r0Z4VEBy36P4tjRtF14Ex10tl5tJFVKM16qWKQHbpjIgf73s49UB0CQ5l HT2DHKfq3oPfdNc5Mk93w1v4ryVb+qVrZIej8NsrWU+5r4O2IV91edDb/OtHFddZqHFFXKgS 79IHE/hwQ2LW7r3sTX7cDUCg+dfdwO8zeLxuwk2JF8crUoyrl66RGrRIhT8VoG/OJ1Y9uUlO av69V4cG8upi4ZG2l7JZFbcBFk91Wp+Payo5SuF61CmGFrZ386umkmpObtFacXda2O/bVoQ9 xHQrzoTc/0KZTWvlZCLK3Ke/vGYT9ZdW9lOjGsSFbXrlTA919L84iMK+48WGnvRWY28ZaVHp ql43AtEGhXze6iNCbEDACy+4hkQYOytAqDgcxAnQ937mYpeZFPyz/XK9QSt9VNFMuudWxZwD DDJKoQAoSG59Hou9lZ26UrK60nRdAQBmEPL8h2nuWgoPh++XVQld9yuhbsWa39Pck8/lcfz5 HUVGJF5mc/zk38iV7FDlF68puiryNq2KXHEpOTCCBngwggVgoAMCAQICAk+UMA0GCSqGSIb3 DQEBBQUAMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UE CxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzE4MDYGA1UEAxMvU3RhcnRD b20gQ2xhc3MgMiBQcmltYXJ5IEludGVybWVkaWF0ZSBDbGllbnQgQ0EwHhcNMTQwNzE2MTAw MDA3WhcNMTYwNzE2MDg0NDU3WjCBljEZMBcGA1UEDRMQbWM2UUhYMURzM2RzcU05MzELMAkG A1UEBhMCREUxGzAZBgNVBAgTEkJhZGVuLVd1ZXJ0dGVtYmVyZzESMBAGA1UEBxMJS2FybHNy dWhlMRowGAYDVQQDExFCZW5qYW1pbiBTY2hvbHplbjEfMB0GCSqGSIb3DQEJARYQbWFpbEBk YXNwcmlkcy5kZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANXLSvxoloTyTN3c TqeuaJwdSnmVmOd9yss5uUa9z5MLb8NM1Q0LEQyiR1qdjYdfswMj3vj+TLypc2Uiz7vWZbD6 Mnb+ZFvgNdpqZIxvraFVS03vD8lWiUCW1RiN7vMsNbTjLKryWoHYz68+taLT94EysoTxcmLD gxUDFpiDjPxZhqRI8EF+hE2110N5yqSo2u9QyOxiUDVGK0I+y00Xztcmw4MkjvI956KC/vC3 hjn/4KTCQ7GaX2j2pvA5NbEDJeHyU+meqe0rLdMpZ3qgP80w/B05VTo+PNbGFFrECVsh5zWy e1+jHbJakmivmFtVWHYI2oRJ8xZ06TiqmrV3RBkCAwEAAaOCAtYwggLSMAkGA1UdEwQCMAAw CwYDVR0PBAQDAgSwMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDAdBgNVHQ4EFgQU jHPWRhox44dOFMkk4jN/EY4csGcwHwYDVR0jBBgwFoAUrlWDb+wxyrn3HfqvazHzyB3jrLsw GwYDVR0RBBQwEoEQbWFpbEBkYXNwcmlkcy5kZTCCAUwGA1UdIASCAUMwggE/MIIBOwYLKwYB BAGBtTcBAgMwggEqMC4GCCsGAQUFBwIBFiJodHRwOi8vd3d3LnN0YXJ0c3NsLmNvbS9wb2xp Y3kucGRmMIH3BggrBgEFBQcCAjCB6jAnFiBTdGFydENvbSBDZXJ0aWZpY2F0aW9uIEF1dGhv cml0eTADAgEBGoG+VGhpcyBjZXJ0aWZpY2F0ZSB3YXMgaXNzdWVkIGFjY29yZGluZyB0byB0 aGUgQ2xhc3MgMiBWYWxpZGF0aW9uIHJlcXVpcmVtZW50cyBvZiB0aGUgU3RhcnRDb20gQ0Eg cG9saWN5LCByZWxpYW5jZSBvbmx5IGZvciB0aGUgaW50ZW5kZWQgcHVycG9zZSBpbiBjb21w bGlhbmNlIG9mIHRoZSByZWx5aW5nIHBhcnR5IG9ibGlnYXRpb25zLjA2BgNVHR8ELzAtMCug KaAnhiVodHRwOi8vY3JsLnN0YXJ0c3NsLmNvbS9jcnR1Mi1jcmwuY3JsMIGOBggrBgEFBQcB AQSBgTB/MDkGCCsGAQUFBzABhi1odHRwOi8vb2NzcC5zdGFydHNzbC5jb20vc3ViL2NsYXNz Mi9jbGllbnQvY2EwQgYIKwYBBQUHMAKGNmh0dHA6Ly9haWEuc3RhcnRzc2wuY29tL2NlcnRz L3N1Yi5jbGFzczIuY2xpZW50LmNhLmNydDAjBgNVHRIEHDAahhhodHRwOi8vd3d3LnN0YXJ0 c3NsLmNvbS8wDQYJKoZIhvcNAQEFBQADggEBAMXWuJGblFGdUPNS1MkFccBf0Z/8N2TCA/l/ Q9p8CmzBWrCbN1qbpIuXYQZBJnepjBQx4KZrnYBddqzHOOYUB4yD72TsGaXLpSVg7Btf1uKK wkL/RAAVdRoUMnuyDgQIzP6A7KOkAU+ZbQr7mW+VXinUWz1TwQWEoawb6cnCll3eVF8Xw9R0 lFuOYFb7wYd6a5yzaRrajR6OO1JC25xVlJOK4FlfBvGZrpUufPtYB2aRVk0Mj/t/XbTjS/Xn 4nut8w6ZI9gT3hS56PPQhLUslIGY5qBelkwVOeM9cMVNYSMVtbbynszXxGrdPPsj/rvdejK1 LSGZLTEPxGZ4cbFx2i0xggPqMIID5gIBATCBkzCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoT DVN0YXJ0Q29tIEx0ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNp Z25pbmcxODA2BgNVBAMTL1N0YXJ0Q29tIENsYXNzIDIgUHJpbWFyeSBJbnRlcm1lZGlhdGUg Q2xpZW50IENBAgJPlDANBglghkgBZQMEAgEFAKCCAicwGAYJKoZIhvcNAQkDMQsGCSqGSIb3 DQEHATAcBgkqhkiG9w0BCQUxDxcNMTUwOTA3MDk0NjU0WjAvBgkqhkiG9w0BCQQxIgQgGE8k RRSC/ch7Qpn+0HxLFatZtN2S8jp12EISw1SqigQwbAYJKoZIhvcNAQkPMV8wXTALBglghkgB ZQMEASowCwYJYIZIAWUDBAECMAoGCCqGSIb3DQMHMA4GCCqGSIb3DQMCAgIAgDANBggqhkiG 9w0DAgIBQDAHBgUrDgMCBzANBggqhkiG9w0DAgIBKDCBpAYJKwYBBAGCNxAEMYGWMIGTMIGM MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJl IERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3Mg MiBQcmltYXJ5IEludGVybWVkaWF0ZSBDbGllbnQgQ0ECAk+UMIGmBgsqhkiG9w0BCRACCzGB lqCBkzCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xKzApBgNVBAsT IlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxODA2BgNVBAMTL1N0YXJ0Q29t IENsYXNzIDIgUHJpbWFyeSBJbnRlcm1lZGlhdGUgQ2xpZW50IENBAgJPlDANBgkqhkiG9w0B AQEFAASCAQCSBCJimpNIZntSE95wG0d/jYAwmvT1ZcVxQtmBKJooo/M40KSCQDLe2/PHSZP/ PKBiflgLxs+iVXCq0vpbYYogSFgMXCcwug/egb/BE4Vbbar2v/QdLZTsoCFukDT6sikPFy1d llrcZaYfPcizxdq1A8qerrlOMzuP0TMVHMQnqcrJSco8gkX+a31sbfEROj7UHqSGnIm/vEoP ZMo70YRLPQh8iHyZrWINi8S7e/W6tnkCfl3AubxKujcLc/Qt2GfXot5m3rTkDxxJLVYzhPc0 IutunB65L6is4VK4pTOYtRgkBGPeSMIaeXZ2CKpmI2I6iqla/EfOtBCJ0lR5tqHJAAAAAAAA --------------ms060201020109080400090503--