Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:90311 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 14924 invoked from network); 7 Jan 2016 20:25:36 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 7 Jan 2016 20:25:36 -0000 Authentication-Results: pb1.pair.com smtp.mail=mdwheele@ncsu.edu; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=mdwheele@ncsu.edu; sender-id=unknown Received-SPF: error (pb1.pair.com: domain ncsu.edu from 209.85.215.43 cause and error) X-PHP-List-Original-Sender: mdwheele@ncsu.edu X-Host-Fingerprint: 209.85.215.43 mail-lf0-f43.google.com Received: from [209.85.215.43] ([209.85.215.43:36691] helo=mail-lf0-f43.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id F7/F2-21405-FB9CE865 for ; Thu, 07 Jan 2016 15:25:35 -0500 Received: by mail-lf0-f43.google.com with SMTP id z124so334565174lfa.3 for ; Thu, 07 Jan 2016 12:25:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ncsu-edu.20150623.gappssmtp.com; s=20150623; h=mime-version:date:message-id:subject:from:to:content-type; bh=YFCo+pF5o+zYzpO97A2PoYkFJ+Et9VgPiBgwCRhXyTI=; b=vIgmX/KbSqZA+xRaXpgvAymVeFg2P9zv+Ak2rt7wOwRIG383PZr7FvBBoGuhwMZnjU lcMRLm4OXNbEWuRzf9LQg9QaXpXDD5wf+x6TgAftlG0u0IYXV03gWDiu9ZXQ/tiUE1qE 15T29BFyeg17kVeeh7YFaKDA989X8eiJsSaQ3XPzMHq5xEO+sUMw7cukCUjONcXsR8eN KIwPFewisjkefCSkxSVD/1vzkQT3efAAf6X14vKJfWhI7OAInGi+SUm6shO25Bu79a3x 1SxRw49Ri23ttmpocYN9/alQ6YZq+oQOJBKbaI31cWDzV8BZw2yWiJ/mvqSjkP9QddeL GEZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to :content-type; bh=YFCo+pF5o+zYzpO97A2PoYkFJ+Et9VgPiBgwCRhXyTI=; b=ZbHuWaUWGCCZ0RGWA38TPxUtpTWpp5J/n8VMnRfLEdr6azuFrmbtv5IfzGCgNzIFUf 9aWd2pYjdz5Rk7yt9JDccI16KKAtFxn5WEzcWfH6CsWTIMeFFikuCWRYXBWsSxrKZm9h ygoBZ45H9t7XETLW+ef/Dbqq1prmosQb8hTNczr9ye5clVaRXFcbnOnqWHbBuwglUTb5 Yhy+UuOofD7wgp+SEJ646O3QAC6d0J3I5Z7y+kBUUvIr8SsF46QAV+8po475iN/yUWAF RmF9Ncn2nmYFBhtlBtvS4+BvU2GbTxydRtKUG2XGaqTqqNpwoLvd/vH0Pboq7M3jMiqt /gMQ== X-Gm-Message-State: ALoCoQm66QCOwwqEKmZJb6aretm6D4tjhg2N0gk1sMKJUzFP4IiNHsgNtdfB86oHhYB+rOwWfD3WZ55yZCFgl3agWqfjgVGZZbIyVAfqyLHI3nepDfsnIoc= MIME-Version: 1.0 X-Received: by 10.25.149.213 with SMTP id x204mr6325603lfd.133.1452198332344; Thu, 07 Jan 2016 12:25:32 -0800 (PST) Received: by 10.112.108.198 with HTTP; Thu, 7 Jan 2016 12:25:32 -0800 (PST) Date: Thu, 7 Jan 2016 15:25:32 -0500 Message-ID: To: PHP internals Content-Type: text/plain; charset=UTF-8 Subject: [RFC] Class Friendship From: mdwheele@ncsu.edu (Dustin Wheeler) Hello everyone, Before Winter holiday, I began a discussion on the mailing list regarding the topic of class friendship in order to gauge interest towards authoring and implementing an RFC for the feature. This discussion happened at: https://marc.info/?l=php-internals&m=144954699701305&w=2 I have drafted an RFC that describes a proposal to add this feature to the language. I feel like this draft is at a point where it is reasonable to invite additional perspective and begin the discussion process. While the RFC does capture advice I received in the original discussion, it does not capture as much of the justification / reasoning behind the feature as I felt that the RFC should present the facts of the proposal. Because of this, I urge you to read through the original discussion before reviewing this RFC. It is also included as the top reference for the RFC. If we feel this information is relevant to the RFC document itself, I would gladly amend. https://wiki.php.net/rfc/friend-classes I will be submitting a pull request against `master` soon so that progress and changes to implementation may be tracked for the duration of RFC discussion. There are a few details I need to iron out in the implementation that surfaced as part of initial discussions. This is my first contribution to PHP and it is more ambitious that I am normally comfortable with when making contributions to open-source software. That said, I fully recognize and respect the expertise of developers on this mailing list and welcome scrutiny as far as technical implementation. I am 100% ready and willing to accept all feedback to improve implementation where necessary. Finally, as mentioned in the original discussion: When I began this work, I found that (for a beginner) the barrier-to-entry in contributing a new feature to PHP is fairly substantial. While there were several good references for implementing a feature such as this, much of it was out-of-date; considering the changes made internally for PHP 7. I would like to contribute notes I took while working through this project that begin to detail common differences in how someone might accomplish a feature like what's represented by this RFC for PHP 7. This feature was unique in that it has a fairly simple and light-weight cross-cutting implementation that seems like a decent example for a newcomer. Is there a good place for me to send this information for review? Is another RFC a good medium for review or would a separate post to the mailing list suffice? Thanks again for your time and I look forward to upcoming discussions! -Dustin -- Dustin Wheeler | Software Developer NC State University m: mdwheele@ncsu.edu | w: 5-9786 "If you don't know where you're going, it's easy to iteratively not get there."