Re: [PEPr] +1 for Networking::Net_WebFinger

From: Date: Fri, 17 Feb 2012 14:44:47 +0000
Subject: Re: [PEPr] +1 for Networking::Net_WebFinger
References: 1 2 3  Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-54828@lists.php.net to get a copy of this message
On Fri, Feb 17, 2012 at 3:35 PM, Christian Weiske <cweiske@cweiske.de>wrote: > Hello Till, > > > > 1) What I'm not so sure about is the request code in the > > Net_WebFinger class. Some of the methods seem long and a little > > redundant in terms of code. > > > > Maybe spin it off into a dedicated request class. I have no idea yet, > > if you catch my drift, maybe you can improve this, otherwise I'll > > take a look later and will send you a pull request. > > I know what you mean and already thought about this, but consider one: > the class Net_WebFinger has only one task, it's to deliver the reaction > object. Since there is nothing more it has to do, having the > network request code in there is ok in my eyes. > Yeah, that makes sense. It's why I couldn't come up with anything either. > > > 2) Net_WebFinger::finger() should IMHO throw an exception if no '@' is > > found. > In the identifier? Hm. Didn't think of that yet :) > > > > 3) I'd see if you can use Net_URL2 (which comes with HTTP_Request2) > > for the "isHttps()" check. Speaking of which, is SSL usually a given > > with these things or the exception? If most of the resources are > > non-SSL, I'd run the non-SSL request first. Otherwise it'll be pretty > > expensive. > > > > And/Or offer a way to force "non-SSL" lookup (with finger()). > > Webfinger maps an email address to an openid, which is something that's > a target of hijacking (if I were an attacker). If I can move any > address to my own openid provider, I've won. So using a secure channel > first is the best thing to do. Non-SSL is only a fallback. The > WebFinger specs recommend that behavior. > Alright, I guess whatever works. Forcing "non-ssl" would be nice IMHO. > > > 4) I'm not so sure if I like Net_WebFinger_Error. Are all errors > > usually to be disregarded? Is that why you don't throw Exceptions? Or > > is there another reason I am missing. > Not many hosts have webfingers yet, and not all webfinger/lrdd files > have the same features/links. > > My idea of the package was to make discovery extremely easy, and it > should not get in your way. If you want an openid, just do > Makes sense. > > $wf->finger('user@host')->openid > and nothing more. You don't care if there are errors, because the > openid is null if it can't be found. If you really care about the > errors, which most people don't, because they just want the openid, you > can still access it via the error property. > > That's the reason for no exception throwing: Don't get in the way, but > provide enough information for a detailled analysis. > Makes sense. > > > 5) I'd like to see an autoloader. I'm not sure why you think PEAR1 > > cannot have this. Especially with a 5.3 minimum, require_once seems > > really outdated and would force me to fork for my own uses to use > > another class-loading strategy. > > > > Imho, an autoloader could take care of all that. Enabled by default, > > and if people want to run their own, they could disable it. Then > > there's no need to strip require_once. > > Should we use the PEAR2 autoloading rules then? > I think so. > > > > 6) Careful on the dependency on Cache. ;) (I think we need to work on > > something there and bring the code up to date.) > It's optional, so I don't see a problem. Using Cache_Lite was not > possible unfortunately, and we don't have anything else. > Yeah, I'm not sure if we have to offer a solution. If Zend_Cache installable via PEAR, we could use that easily. ;) I'm guessing zf2 could fill the gap, or something from the Symfony ecosystem. I wouldn't mind relying on a stable component there. Till

« previous php.pear.dev (#54828) next »