Re: General question: packaging in PHP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



<verÃffentlicht & per Mail versendet>

Thanks for your answer!

Terje Slettebà wrote:

>>From: "Vivian Steller" <vivian.steller@xxxxxxxxxxxxxxxxxxxxx>
> 
>> i've a general question concerning PHP's architecture.
>>
>> Why isn't there a native packaging concept in PHP?
> 
> This was also suggested on comp.lang.php, recently (the "nested class"
> thread), called "namespaces", but there wasn't a lot of enthusiasm for it.
> Apparently, it was even implemented at one point, but then subsequently
> dropped. I've found it difficult to find the relevant discussion in the
> archive (possible the internals-list or Zend's engin2-list), could anyone
> provide a link?
> 
>> I think php became much more powerfull with the extended OOP features
>> introduced in PHP5 - without a packaging concept you couldn't use these
>> features "in big business" (in terms of sharing classes/libraries). I
>> know the discussion of OOP features vs. PHPs scripting capabilities, but
>> IMHO doing the half way of OOP isn't right...
> 
> I guess package/namespace doesn't have a lot to do with OO (except that
> they both allow grouping of functionality, and avoiding name collision,
> but that's not the only benefit of OO), but as there hasn't been any
> enthusiasm for overloading, either (not even for user-defined types, where
> you _can_ use "type hints" in function signatures), and it's common in OO
> languages, I guess you have a point. 
Thanks for metioning this issue! This is another point where I think OO is
done the half way in PHP:

Why do we need some implicit type check, like
        public method(Type $type)
if we then loose the optional parameter advantage?

Either some polymorphism mechanism should be implemented, or something like
        public method(Type $type = new MyType())
should be able being passed through the interpreter..

also the primitive datatypes should be (exceptionally) used here:
        public method(string $argument)

Otherwise (IMHO) the typecheck mechanism is useless.

> Interestingly, I found that Perl has 
> the possibility of function overloading (also a language that's
> dynamically typed)
> (http://www.math.tu-berlin.de/polymake/perl/overload.html) It also has -
> like Python - operator overloading. But is there any enthusiasm for that
> in the PHP community, either? Nah...
regrettably... :(

> 
>> Are there any thoughts about that in future releases?
>> What do other developers think about this issue?
>> How do organize multiple used classnames?
> 
> The common answer is: "Use a prefix"...
but i really dislike using cryptic and long prefixes to ensure uniqueness...
dots in the classname (ok, doing it like java) would be so nice, gr**

> 
> Regards,
> 
> Terje

vivian

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux