Re: Package Proposal - DateRange and Range

From: Date: Wed, 27 Aug 2003 01:27:13 +0000
Subject: Re: Package Proposal - DateRange and Range
References: 1  Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-20598@lists.php.net to get a copy of this message
On Monday, August 18, 2003 23:24, MFriedman@symcor.com wrote: > The source code of both classes can be reviewed at: > http://www.daart.ca/php/range.php > It's only partly done in terms of comments etc, but it should give a clear > indication of the purpose of the classes. I'm -1 for this class. I see that you strictly and rightly use the OO programming, but IMHO the code is too bloated. For example, including a range.php class that adds no functionality it's only a big performance penalty in php. In the case of Date_Range I see too much object creations/passings/destructions for such simple calculations, I'd preffer to see a lighter code. Tomas V.V.Cox > The Validate package stuff sounds interesting but I'm not familiar with the > package. I'll have a look. > Thanks, > Matt Friedman. > MFriedman@symcor. > > com To: pear-dev@lists.php.net > > cc: > > 18/08/2003 02:04 Subject: [PEAR-DEV] Package Proposal - > DateRange and Range > PM > > I would like to propose two classes for PEAR entitled Range and DateRange. > DateRange would extend a more general abstract interface: Range. > The Range interface is as follows: > // constructor > Range::Range($start, $end) > // return the start of the range > Range::&getStart() > // return the end of the range > Range::&getEnd() > // Determine if this element is contained within the range > Range::inRange($rangeElement) > // Determine if one range equals another > Range::equals($range) > // the distance between the start and end > Range::getLength() > // Determine if the supplied range is a subset of this range > Range::isSubset($range) > // Determine if the supplied range is a superset of this range. > Range::isSuperset($range) > // Determine if this the supplied range intersects with this range > Range::intersects($range) > // Return the union of the supplied range and this range > Range::merge($range) > I've found this useful in particular for programming schedules. One can use > DateRanges to find free time in appointment books for instance. > Additionally, Range could be extended in various ways, for example it would > be easy to create an IntegerRange class. By the way, DateRange uses the > existing Date package. > I'm unsure as to where this might fit into PEAR; certainly DateRange could > possibly fit into the Date package, but what about Range? Does there need > to be a new category named Range? I'm partial to adding a Range category > and then including Range subclasses in that directory. In any case, perhaps > that discussion can be deferred until we see if the package gets the votes > required. :) > Coding is complete for DateRange and Range as well as a set of tests > written using PHPUnit - I was careful to check lots of boundary conditions > etc... and all the tests pass so things should be in pretty good shape. > Most of the comments haven't been written but will be soon. > Thanks very much. Any questions, please let me know. > Matt Friedman. > -- > PEAR Development Mailing List (http://pear.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php -- Tomas V.V.Cox mailto:cox@idecnet.com

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