Re: Pyrus and SimpleChannelFrontend questions

From: Date: Wed, 16 Jun 2010 21:10:27 +0000
Subject: Re: Pyrus and SimpleChannelFrontend questions
References: 1 2 3 4  Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-53573@lists.php.net to get a copy of this message
On Wed, 2010-06-16 at 15:07 -0500, Brett Bieber wrote: > On Wednesday, June 16, 2010, Michael Gauthier <mike@silverorange.com> wrote: > > On Wed, 2010-06-16 at 12:59 -0500, Brett Bieber wrote: > >> On Wednesday, June 16, 2010, Michael Gauthier <mike@silverorange.com> wrote: > >> > Hello, > >> > > >> > I'm working features for the PEAR2 website. The site uses Pyrus and > >> > SimpleChannelFrontend (SCF) as the data source. > >> > > >> > I have a few of questions about Pyrus and SCF: > >> > > >> > 1. I can get package dependencies of a package using: > >> > $package->dependencies['required']->package > >> > The returned object is iterable. How come it isn't also > >> > countable? > >> > > >> > 2. Similarly, how come I can iterate a package to get releases > >> > but can not count the package to count the number of releases? > >> > > >> > 3. How can I get a list of maintainers for a package including > >> > full name and email address? > >> > > >> > 4. How can I get a list of the categories a package belongs to? > >> > > >> > 5. Is there any documentation? Even the class docs in the source > >> > code are missing. This code is going to be hard to maintain in > >> > the future since there are no explanations present in the code. > >> > >> Your best bet is to look at the unit tests for pyrus, and help > >> document it. Basically you're using an object that represents the > >> package.xml file. > >> > > I had a look at the unit tests to get maintainers. In pear2web, when I > > do: > > > > foreach ($context->maintainer as $maintainer) { > > } > > > > I get: > > > > PEAR2\Pyrus\Channel\Exception: Unable to locate a package release for > > pear2.php.net/PEAR2_Autoload that can satisfy all dependencies > > in > > /so/servers/zest/sites/pearweb/pear2.php.net/trunk/includes/Pyrus/src/Pyrus/Channel/RemotePackage.php > > on line 832 > > > > Any idea what I'm doing wrong? > > The default config uses preferred state of stable. Should probably set > it to devel for our purposes. > I'm not sure where the config is set for the PEAR2Web code. I'm also making the menu into a savant template as you suggested. I'm having trouble passing the menu data as a context to the savant->render() call. Is it not possible to pass an array as a context? I tried passing the array as an ArrayObject and it fails in a different way. Whey you pass ArrayObject it gets transformed into an ObjectProxy \Traversable object. Unfortunately, this object does not have the array access methods. I have a couple of other Savant questions as well: 1. Is there a method I can call to escape a value for display, or does this happen automatically? 2. Is there a method I can call to tidy-indent a block of output? Lastly, I've removed the <div class="clearfix"> elements. All this stuff is pending in my working copy until I can get the maintainers and menu template working. Cheers, Mike

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