Re: Re: Resource typehint and return type
| From: | Bob Weinand | Date: | Fri, 13 Nov 2015 11:59:18 +0000 |
| Subject: | Re: Re: Resource typehint and return type | ||
| References: | 1 2 3 4 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-89206@lists.php.net to get a copy of this message | ||
> Am 13.11.2015 um 11:57 schrieb François Laupretre <francois@php.net>:
>
> Hi,
>
> Le 13/11/2015 04:30, Stanislav Malyshev a écrit :
>> Hi!
>>
>>> The reason for this is that the resource type is an anachronism from an
>>> age in which PHP did not have objects, yet still needed to make certain
>>> types of data opaque. The resource type is a type that exists only to
>> I think more specific reason is not that resource type is outdated, but
>> that resource is not really a type - it's a collection of types. Mysql
>> connection is a resource, and file is a resource, but they are certainly
>> not interchangeable. So typing a value as "resource" would not achieve
>> you much.
>
> I agree. Some resources may disappear in the future but others, like opened streams, are not
> obsolete at all.
>
> As 'resource' is not specific enough. What about including the resource type in some
> way ? Something like '@stream', '[stream]', '{stream}' ? Just need to
> replace spaces with underscores (e.g. 'persistent_stream').
>
> Regards
>
> François
The alternative is replacing the resources by proper objects, without methods and public properties.
Then we could integrate it into our object hierarchy in a very lightweight way with proper typing.
Having special syntax doesn't really improve it much...
Bob