Re: PEAR2 Standards Update
| From: | till | Date: | Tue, 22 Sep 2009 19:08:06 +0000 |
| Subject: | Re: PEAR2 Standards Update | ||
| References: | 1 2 3 | Groups: | php.pear.dev php.standards |
| Request: | Send a blank email to pear-dev+get-52888@lists.php.net to get a copy of this message | ||
On Tue, Sep 22, 2009 at 7:47 PM, Michael Gauthier <mike@silverorange.com> wrote:
> On Tue, 2009-09-22 at 18:42 +0200, till wrote:
>> On Tue, Sep 22, 2009 at 5:38 PM, Brett Bieber <brett.bieber@gmail.com> wrote:
>> > Greetings everyone -
>> >
>> > Just an update on PEAR's progress adopting the "PHP Standards and Best
>> > Practices for PHP 5.3+ Frameworks and Libraries." :-)
>> >
>> > At the last PEAR Group meeting the exception policy and the class
>> > naming policy were approved by the PEAR Group and are now incorporated
>> > into the PEAR2 standards.
>>
>> I got a couple questions -- and I looked at the docs.
>>
>> Currently, a couple packages implement/use SPL exceptions directly,
>> e.g. they throw an InvalidArgumentException and not
>> Foo_InvalidArgumentException. Does this mean we have to wrap all SPL
>> exceptions when we want to use them?
>>
>> Also, how exactly does that play with having a base exception class?
>>
>> My base exception class is Foo_Exception, but I want to use SPL
>> exceptions as well. How do I extend to conform to the rule to provide
>> one base exception for the package? From what it looks like, I extend
>> the SPL exception but implement my own package' base exception. I'm
>> not sure if I read the code right, so I'm asking to make sure.
>
> You are required to wrap SPL exceptions thrown by your package. The idea
> here is that all exceptions generated by a package can be caught using
> "catch foo\Exception $e".
>
> For example:
>
> class foo\InvalidArgumentException extends \InvalidArgumentException
> implements foo\Exception
> {
> }
>
Makes sense, and thanks for clearing it up for me. :)