Re: String Extension Proposal

From: Date: Fri, 01 Jul 2005 19:20:16 +0000
Subject: Re: String Extension Proposal
References: 1 2  Groups: php.pecl.dev 
Request: Send a blank email to pecl-dev+get-2514@lists.php.net to get a copy of this message
Wez, I remember reading the posts about a String class. In fact, I had the idea before, but when I read the post, I felt inspired to write the extension. I have a couple of questions: 1) I'm not sure how the process works for core extensions, but can the String class be developed in PECL first, and when it matures, (possibly) be moved to the core? 2) Where can I read more about the pending Unicode changes? I'd like to also add Unicode support to my class, and it'd be great if I can base it off something that will be in the core. Regards, Jessie "Wez Furlong" <kingwez@gmail.com> wrote in message news:4e89b426050701113811829907@mail.gmail.com... Jessie, I can see how this will be useful. Two things make me hesitant about putting this in PECL right now: - String is such a generic name for a non-core class - The PHP core has a big patch for Unicode support pending (we're waiting to release 5.1 before merging it). I think there might be some merit to having some kind of String class in the core; IIRC Derick was talking about something like that with full unicode support. Let's see what the other core guys think about this before making a decision on having it in PECL. --Wez. On 7/1/05, Jessie Hernandez <jrhernandez05@gmail.com> wrote: > Hello, I've started working on an extension which declares a String > class for PHP. I already have several methods completed and will add more as > I have time. The features of this String class are the following: > > Speed/Space Management > ---------------------- > Right now, when you perform an operation such as "$value = > strtoupper($value)", a copy of the string is made, uppercased, and then > returned. This copy is unnecessary, as the original string is going to be > replaced. In this String class, all operations are done in the current > buffer. Another example, a "trim" method call simply moves the > non-whitespace characters to the beginning of the string and terminates > (sets it to '\0') the string at the first whitespace chacter at the end of > the string. > > If a copy of the string is truly needed, then the "makeCopy()" method is > just for that. You can do "$myStr->trim()" to do in-line trimming or > "$trimmedStr = $myStr->makeCopy()->trim()" to preserve the original value. > > The start size and prealloc sizes for string buffers will be configurable > through INI options. A method "reserve()" exists to reserve a specific size > for the string. If a string expects to have a lot of concatenations, > reserve()'ing an appropriate size for the string will GREATLY increase > performance and space utilization. > > > Primitive String Compatibility > ----------------------------- > The following primitive string operations ALREADY work on the current class, > compiled against PHP 5.0.4! > > <code> > $myStr = new String( "Hello World!" ); > > // get single character > echo $myStr{1}; // prints 'e' > // interpolation! > echo "The contents are: $myStr"; //prints "The contents are: Hello World!" > // regular functions! > echo strrev( $myStr ); // prints "!dlroW olleH" > </code> > > > If there are no objections, I would like to post my code to PECL. This > extension only declares one class, "String", and is meant to only work in > PHP 5 and above. > > > Regards, > > Jessie Hernandez > > -- > PECL development discussion Mailing List (http://pecl.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > >

« previous php.pecl.dev (#2514) next »