Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:67971 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 94156 invoked from network); 27 Jun 2013 16:38:22 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 27 Jun 2013 16:38:22 -0000 Authentication-Results: pb1.pair.com header.from=ralph@ralphschindler.com; sender-id=unknown Authentication-Results: pb1.pair.com smtp.mail=ralph@ralphschindler.com; spf=permerror; sender-id=unknown Received-SPF: error (pb1.pair.com: domain ralphschindler.com from 209.85.213.43 cause and error) X-PHP-List-Original-Sender: ralph@ralphschindler.com X-Host-Fingerprint: 209.85.213.43 mail-yh0-f43.google.com Received: from [209.85.213.43] ([209.85.213.43:50022] helo=mail-yh0-f43.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 7C/9C-34034-D7A6CC15 for ; Thu, 27 Jun 2013 12:38:22 -0400 Received: by mail-yh0-f43.google.com with SMTP id b12so525432yha.16 for ; Thu, 27 Jun 2013 09:38:19 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding :x-gm-message-state; bh=2mDN4U0KlJioYkgtToS80eBLbXgNxKKQTgBppGnPrUA=; b=XWRjLVUtJpP2INkr3an8W26dbQGUT+Z+8XRzhOLcdpU4PsqixPAu6fpnPyUX1yDCz8 unOV8hfottURo4tRPJSzoahpJE1RgRKqO/OvgUbzE51GSYsd11yM6xMZmMimNGIVv0fO R2jOx5X2hrt9OGScJDmyd3PGWiQ4JBxrwYon02fyKLln4cFroWdkCAOieZcs+abWGLOQ p8Wq/tOOsiz2dm+ATRPioL+eYjio7TaPJ/VzmMKphOq4R+6QqllWR1mvTYMO53YrbdXF jVKu0OL+vLFoML3y33lJpSDS+C6RVeyvQDqe//kmqaTisg/17WibP/B3pmx0KoEeguHO EEiw== X-Received: by 10.236.174.4 with SMTP id w4mr5104465yhl.43.1372351099496; Thu, 27 Jun 2013 09:38:19 -0700 (PDT) Received: from Ralphs-Mac-Pro.local (ip174-73-14-247.no.no.cox.net. [174.73.14.247]) by mx.google.com with ESMTPSA id x52sm5310243yhh.18.2013.06.27.09.38.17 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 27 Jun 2013 09:38:18 -0700 (PDT) Message-ID: <51CC6A79.5040306@ralphschindler.com> Date: Thu, 27 Jun 2013 11:38:17 -0500 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:17.0) Gecko/20130620 Thunderbird/17.0.7 MIME-Version: 1.0 To: internals@lists.php.net References: <51C9FA9C.8050403@sugarcrm.com> <51CA1C93.6080500@sugarcrm.com> <51CA24C5.9090505@sugarcrm.com> <51CB167A.4020207@sugarcrm.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Gm-Message-State: ALoCoQl16QwU8xTQwMG+p5dCg3lXylNkJc7jibr3XG+SibxNnzFHNPQAYWqjNjS0Rtz7yi/kHOcZ Subject: Re: [PHP-DEV] RFC: Protocol Type Hinting From: ralph@ralphschindler.com (Ralph Schindler) ... > group of people are mostly solved already). The average framework core-dev > (like Symfony or ZF) isn't going to get *much* benefit out of this either > (it can help in some areas, and they will use it, but it's not solving > major problems). The Drupals, Magentos and Fuel CMS's of the world. The > people who make plugins and modules for Frameworks and CMS's. That's not exactly true. As a core developer of a major framework (zf), I see a metric *ton* of value in this. Most of the value comes in the form of how we communicate upstream and downstream dependencies, requirements, and usage. Right now, there is a rock and a hard place - and not much else. The community wants consistent APIs for tools that solve cross cutting problems (cache, logging, etc). But the only solution is to collectively, as a community, pick a name, a governing body, and physical repository. The manifestation of this is the PSR/Fig group. At current, people who wish to participate have to a) aid in the decision processs, b) help craft the code, and host it as part of the 3rd party, then c) depend (phyically) on the code/interfaces that comes out of a+b (C) is a tough problem b/c not everyone wants to use a package management system to pull in these now required 3rd party dependencies, or alternatively ship them as part of our own code base. What would be *ideal* is if we can all generally agree on an API and ship our own interfaces which are structurally equivalent, thus reducing all external dependencies. This, from a communication standpoint, makes consumption easier between projects. Physically, Zend\Logger\LoggerInterface (zf base log interface) Symfony\Mvc\LogInterface (sy) Monolog\LoggerInterface .. more .. would all be structurally equivalent through their participation in FIG/PSR3, and instances of an implementation of any of them could structually pass for an instance of another. This is better than what we have now which is having a dependency on some 3rd party's Logger interface: (PSR\PSR3\LoggerInterface). > So if you don't see the usefulness of this type of change, ask if you > maintain anything significant that fits that description. If you don't, > find someone who does and talk to them. Otherwise you may be unfairly > judging by ignoring problems that you personally don't have... Here's the important part for people that don't see the use case: There's no doubt that large groups of developers in the PHP ecosystem are sharing code more now than I've seen in my 15 years in it. It would be nice if the engine would facilitate or simplify this kind of code-sharing in a way that our instanceof/is_a history and roots simply can't. -ralph