Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:103252 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 39879 invoked from network); 25 Sep 2018 10:42:37 -0000 Received: from unknown (HELO mail-pg1-f170.google.com) (209.85.215.170) by pb1.pair.com with SMTP; 25 Sep 2018 10:42:37 -0000 Received: by mail-pg1-f170.google.com with SMTP id b129-v6so10760537pga.13 for ; Mon, 24 Sep 2018 23:50:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:openpgp:autocrypt:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=P9eM3qS3KzoPs32ckAD/eF26fYUfiO25WRMgHXDfo0k=; b=ciJpXHFKKPgBn/BVvK36+JLB48h4Os5JkXuB6wFpZVINirBy7IKLrA+39IUDWNsmag tOeg0ET8qYyHnu8hQgRi31Rt9ReReP9VkXb3B9Ad1JXTssRWz4d2CIzPuY7xtay29Qja fkdj8YT4/jMPqFnHVC11H4GR+xoZRiEd/7FUWOxQu3e/UaMudBcsQc6kUH5583qtwbLI ccH8SZafdbG0rv9UqFIpeZYmcgItRq3tbDRRNvCXQ+5g7Qv6CqhnK8wDcJjoPF4Hl7ee H89MOJCIKLy304Fn5tDA+Ggf/E4zXNcg6DvMk6yTIyGX68g4oGp3Yl5fP/LCH2DMey+I szGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:openpgp:autocrypt :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=P9eM3qS3KzoPs32ckAD/eF26fYUfiO25WRMgHXDfo0k=; b=OE0/OvTHPIIU8VGxfSIxnvlCnBYaaucPCYOE1M3+6JZXhKVol23HdXeQdH3RRPOuE+ HNyVHhJ/+aQqVHRVGqIzaPoCZggfx9hfY5pnoORkVmfAUYCN6D+ROY+NANUWFkhhp9SY eGC+Uw+DgzXYJhQhSQ7A2uPv9WfO0mWkM2Ng/3W7ybq9+SsD2dMaOOORUcnjS3Tz7Fg8 N3B3PfDaj0fhC7uxuzU5N158RkIl7JPo5I0EyYTpIjUE0adHt6GSRk5uFwsKZkB2VlsI haLyzdpSYVyIhUYu64WygBVBalmja+XoG8bccevW433+29fdGHkrGqUEE0RsbSSjvsvK jIwA== X-Gm-Message-State: ABuFfojYeiR4fql/IiNsRvXxf3a5Wb2h4321Me5F4T1K8lXhfqhzo5es STicU3/+ayfM+niKRh4lhoI0nOg= X-Google-Smtp-Source: ACcGV63W2QqnYXK/Lw2+8foE+DDO5ddW1dPxfECtpdASSztUzdYLOTrLmbCphwVv1ucnrVP73Z68ag== X-Received: by 2002:a17:902:b7c2:: with SMTP id v2-v6mr2123381plz.238.1537858225040; Mon, 24 Sep 2018 23:50:25 -0700 (PDT) Received: from Stas-Pro-2016.local ([2601:646:8d01:8ee0:b492:ffed:5169:4efa]) by smtp.gmail.com with ESMTPSA id m11-v6sm1660205pgn.39.2018.09.24.23.50.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 24 Sep 2018 23:50:24 -0700 (PDT) To: Andrey O Gromov , internals@lists.php.net References: Openpgp: preference=signencrypt Autocrypt: addr=smalyshev@gmail.com; prefer-encrypt=mutual; keydata= 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 Message-ID: <1a511db7-3b0b-fcfa-2859-32e47b7a584a@gmail.com> Date: Mon, 24 Sep 2018 23:50:23 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:60.0) Gecko/20100101 Thunderbird/60.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] Pre proposal for "Class extension functions" From: smalyshev@gmail.com (Stanislav Malyshev) Hi! > I want to do RFS proposal for new language concept - Class extension > functions. > > Syntax will looks like: > > function DateTime->localTime() { > return $this->format('H:i'); > } I feel this is inviting trouble. If you need additional functionality, why not extend the class? Or write a function that accepts DateTime as an argument? This encourages a style of programming where you never know which object does what. Even in JS, as far as I know, it's not exactly the recommended style. But in PHP I don't think we should be doing this. Moreover, if your method accesses private variables (that's the only reason why external method can't do the same) then your code needs to change if private structure of the class changes, which violates encapsulation. And on top of that we have the same namespacing problems we've had when we had no namespaces - what if two packages get a bright idea to define localTime on DateTime? What if they do it in a very slightly different way? I think this wouldn't add much what we already can do, but will invite style of programming that is best avoided. -- Stas Malyshev smalyshev@gmail.com