FAQ
I am currently working on a Object-Oriented Library extension that wraps a
lot of functionality in PHP's standard library dealing with strings,
arrays, fileIO, etc. into classes.

(String class, Collection class, etc.)

This would allow end-users to create objects that represent data types and
resources, and take advantage of all the benefits of OOP (object chaining,
polymorphism, etc) all in a c compiled extension.

Example:

$myString=new String("Hello world!");

$myLowerCaseString =
$myString->copy()->replace("world","universe")->lowerCase();







The goal of this project is to help PHP mature into a more object-oriented
language with an object oriented library, while addressing a common
complaint about the standard library not being very consistent
(http://en.wikipedia.org/wiki/Php#Criticism [8th bullet])



I have already implemented a couple classes, but would like to get feedback
from the PHP development community on the idea of creating such a library
for PHP. Also, any suggestions would be greatly appreciated.



Thanks,



Jordan Wambaugh

Search Discussions

  • Marcus Boerger at Dec 3, 2007 at 5:47 pm
    Hello Jordan,

    have a look at the SPL extension (Standard PHP Library) which introduces
    a few things (for instance SplFile). Have a look here: http://php.net/~helly
    I do not think we need a string class right now unless you want to provide a
    full unicode one that later works with HEAD seamingly. If you are intersted,
    then the ArrayObject/ArrayIterator implementation in SPL can be made much
    faster. I know what to do but have no time for that...
    and as always, help is always welcome here
    and if you have something to show, then show us :-)

    marcus

    Monday, December 3, 2007, 5:43:19 PM, you wrote:
    I am currently working on a Object-Oriented Library extension that wraps a
    lot of functionality in PHP's standard library dealing with strings,
    arrays, fileIO, etc. into classes.
    (String class, Collection class, etc.)
    This would allow end-users to create objects that represent data types and
    resources, and take advantage of all the benefits of OOP (object chaining,
    polymorphism, etc) all in a c compiled extension.
    Example:
    $myString=new String("Hello world!");
    $myLowerCaseString =
    $myString->copy()->replace("world","universe")->lowerCase();
    >

    >

    >
    The goal of this project is to help PHP mature into a more object-oriented
    language with an object oriented library, while addressing a common
    complaint about the standard library not being very consistent
    (http://en.wikipedia.org/wiki/Php#Criticism [8th bullet]) >
    I have already implemented a couple classes, but would like to get feedback
    from the PHP development community on the idea of creating such a library
    for PHP. Also, any suggestions would be greatly appreciated. >
    Thanks, >
    Jordan Wambaugh
    >

    >




    Best regards,
    Marcus
  • Jordan Wambaugh at Dec 3, 2007 at 7:04 pm
    Thanks. I was not aware of SPL's file and array classes. As for the string
    class, some of it is done, and should work in 5.x HEAD. I fully plan to add
    Unicode support for PHP 6's HEAD. Is there any other concerns you may have
    about a string class (other than it being a big task)? I think it would be
    great to unify, and standardize all the string functions in PHP into a
    class.

    I don't want to rewrite anything already written, so I'll go ahead and take
    a look at ArrayObject and ArrayIterator. I'd love to help PHP as much as
    possible.

    Thanks,
    Jordan.


    -----Original Message-----
    From: Marcus Boerger
    Sent: Monday, December 03, 2007 12:18 PM
    To: Jordan Wambaugh
    Cc: [email protected]
    Subject: Re: [PHP-DEV] Object Oriented standard Library

    Hello Jordan,

    have a look at the SPL extension (Standard PHP Library) which introduces
    a few things (for instance SplFile). Have a look here: http://php.net/~helly
    I do not think we need a string class right now unless you want to provide a
    full unicode one that later works with HEAD seamingly. If you are intersted,
    then the ArrayObject/ArrayIterator implementation in SPL can be made much
    faster. I know what to do but have no time for that...
    and as always, help is always welcome here
    and if you have something to show, then show us :-)

    marcus

    Monday, December 3, 2007, 5:43:19 PM, you wrote:
    I am currently working on a Object-Oriented Library extension that wraps a
    lot of functionality in PHP's standard library dealing with strings,
    arrays, fileIO, etc. into classes.
    (String class, Collection class, etc.)
    This would allow end-users to create objects that represent data types and
    resources, and take advantage of all the benefits of OOP (object chaining,
    polymorphism, etc) all in a c compiled extension.
    Example:
    $myString=new String("Hello world!");
    $myLowerCaseString =
    $myString->copy()->replace("world","universe")->lowerCase();
    >

    >

    >
    The goal of this project is to help PHP mature into a more object-oriented
    language with an object oriented library, while addressing a common
    complaint about the standard library not being very consistent
    (http://en.wikipedia.org/wiki/Php#Criticism [8th bullet]) >
    I have already implemented a couple classes, but would like to get feedback
    from the PHP development community on the idea of creating such a library
    for PHP. Also, any suggestions would be greatly appreciated. >
    Thanks, >
    Jordan Wambaugh
    >

    >




    Best regards,
    Marcus
  • Larry Garfield at Dec 4, 2007 at 1:42 am
    I can certainly see a use for strings as Value Objects, if only for
    readability. Chaining a series of methods is much more readable (to me at
    least) than wrapping a series of functions. See:

    $str = $str->substr(0, 5)->upper()->trim('\n');

    vs.

    $str = trim(strtoupper(substr(0, 5, $str)), '\n');

    That said, the advantage of functions is that you can trivially add your own.
    Adding new methods to a class in PHP requires either inheritance (which is
    very limiting in many ways) or all sorts of thoroughly weird mechanisms for
    sorta implementing mix-ins. I see that as a more limiting factor than using
    functions instead of methods.

    (Not to say that value objects, auto-boxing, prototype inheritance, and other
    semi-functional features aren't cool; I'd love to have more of those in PHP,
    but they're a considerably harder problem to solve.)

    I would also dispute the idea that "everything is a class/object" is a
    necessary design feature of a "mature OO language". It's a design feature of
    Java, which is sort of the poster child of classic OO. But Javascript takes
    an entirely different, functional-esque approach of everything is an object,
    including classes. (Weird but cool.) Python, Perl, and Ruby do their own
    weird things. C++ has multiple inheritance. I'm sure there's other
    languages I should mention that I am missing, but you get the idea.

    Don't make things an object unless there's a reason to. Most of the
    OOP "features" that PHP lacks that would be useful to have are, IMO, the more
    functional-esque stuff from Javascript and its ilk, not classes-all-around.
    On Monday 03 December 2007, Jordan Wambaugh wrote:
    Thanks. I was not aware of SPL's file and array classes. As for the string
    class, some of it is done, and should work in 5.x HEAD. I fully plan to add
    Unicode support for PHP 6's HEAD. Is there any other concerns you may have
    about a string class (other than it being a big task)? I think it would be
    great to unify, and standardize all the string functions in PHP into a
    class.

    I don't want to rewrite anything already written, so I'll go ahead and take
    a look at ArrayObject and ArrayIterator. I'd love to help PHP as much as
    possible.

    Thanks,
    Jordan.


    -----Original Message-----
    From: Marcus Boerger
    Sent: Monday, December 03, 2007 12:18 PM
    To: Jordan Wambaugh
    Cc: [email protected]
    Subject: Re: [PHP-DEV] Object Oriented standard Library

    Hello Jordan,

    have a look at the SPL extension (Standard PHP Library) which introduces
    a few things (for instance SplFile). Have a look here:
    http://php.net/~helly I do not think we need a string class right now
    unless you want to provide a full unicode one that later works with HEAD
    seamingly. If you are intersted, then the ArrayObject/ArrayIterator
    implementation in SPL can be made much faster. I know what to do but have
    no time for that...
    and as always, help is always welcome here
    and if you have something to show, then show us :-)

    marcus

    Monday, December 3, 2007, 5:43:19 PM, you wrote:
    I am currently working on a Object-Oriented Library extension that wraps
    a lot of functionality in PHP's standard library dealing with strings,
    arrays, fileIO, etc. into classes.

    (String class, Collection class, etc.)

    This would allow end-users to create objects that represent data types
    and resources, and take advantage of all the benefits of OOP (object
    chaining, polymorphism, etc) all in a c compiled extension.

    Example:

    $myString=new String("Hello world!");

    $myLowerCaseString =
    $myString->copy()->replace("world","universe")->lowerCase();







    The goal of this project is to help PHP mature into a more
    object-oriented language with an object oriented library, while
    addressing a common complaint about the standard library not being very
    consistent
    (http://en.wikipedia.org/wiki/Php#Criticism [8th bullet])



    I have already implemented a couple classes, but would like to get feedback
    from the PHP development community on the idea of creating such a library
    for PHP. Also, any suggestions would be greatly appreciated.



    Thanks,



    Jordan Wambaugh
    Best regards,
    Marcus

    --
    Larry Garfield AIM: LOLG42
    [email protected] ICQ: 6817012

    "If nature has made any one thing less susceptible than all others of
    exclusive property, it is the action of the thinking power called an idea,
    which an individual may exclusively possess as long as he keeps it to
    himself; but the moment it is divulged, it forces itself into the possession
    of every one, and the receiver cannot dispossess himself of it." -- Thomas
    Jefferson

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-internals @
categoriesphp
postedDec 3, '07 at 5:00p
activeDec 4, '07 at 1:42a
posts4
users3
websitephp.net

People

Translate

site design / logo © 2023 Grokbase