[PHP-DEV] Re: private_write/protected_write properties

2007-07-18 Thread Sara Golemon
I'll probably be lynched for bringing up this subject again, since it 
caused a long discussion a year ago. Anyway I look in the archives and 
there was never a real conclusion made, so I'm bringing it up again. 
This time for a feature I personally would like to see in PHP 6.


Very often I want to be able to be get a property publicly, while only 
being able to set it within the class. You can solve this by using a 
getPropery() method or by using __get($property), but this feels more 
like a workaround. I think the private/public state of properties is 
becoming more important now that using public frameworks is becoming 
main stream. Therefor I believe this would be a good addition.


Unfortunately, there are a few caveats to this when used with objects, 
resources, and arrays.  The simplest way to explain would be to show 
some sample code:


class foo {
  public $bar = 'baz';
}

class myclass {
  protected_write $f;
  private_write $fp;

  function __construct() {
$this-f = new foo;

$this-fp = fopen('somefile.txt', 'r');
  }
}

$m = new myclass;

$F = $myclass-f;
$F-bar = 'blong';

$FP = $myclass-fp;
fclose($FP);


The explanation of arrays is a bit more involved, but it's got some 
gotchas too...


--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] Re: private_write/protected_write properties

2007-07-18 Thread Jani Taskinen

So the short answer is: no. End of story.

Don't start another endless thread about something that would be nice when we 
have bigger issues on the table that need to be solved before any release, be it 
 alpha/beta/whatever, can be done..


--Jani


Sara Golemon kirjoitti:
I'll probably be lynched for bringing up this subject again, since it 
caused a long discussion a year ago. Anyway I look in the archives and 
there was never a real conclusion made, so I'm bringing it up again. 
This time for a feature I personally would like to see in PHP 6.


Very often I want to be able to be get a property publicly, while only 
being able to set it within the class. You can solve this by using a 
getPropery() method or by using __get($property), but this feels more 
like a workaround. I think the private/public state of properties is 
becoming more important now that using public frameworks is becoming 
main stream. Therefor I believe this would be a good addition.


Unfortunately, there are a few caveats to this when used with objects, 
resources, and arrays.  The simplest way to explain would be to show 
some sample code:


class foo {
  public $bar = 'baz';
}

class myclass {
  protected_write $f;
  private_write $fp;

  function __construct() {
$this-f = new foo;

$this-fp = fopen('somefile.txt', 'r');
  }
}

$m = new myclass;

$F = $myclass-f;
$F-bar = 'blong';

$FP = $myclass-fp;
fclose($FP);


The explanation of arrays is a bit more involved, but it's got some 
gotchas too...




--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php