Edit report at https://bugs.php.net/bug.php?id=50526&edit=1

 ID:                 50526
 Comment by:         matti dot jarvinen at nitroid dot fi
 Reported by:        codeslinger at compsalot dot com
 Summary:            stat() needs Context parameter
 Status:             Assigned
 Type:               Feature/Change Request
 Package:            *General Issues
 Operating System:   any
 PHP Version:        5.2.12
 Assigned To:        kalle
 Block user comment: N
 Private report:     N

 New Comment:

And it seems that StreamWrapper stat doesn't use default context either.

$options = array('testfs'=> array(
   'storagePath'=>dirname(ROOTPATH).DIRECTORY_SEPARATOR.'storage'
   )
);

$defaultContext = stream_context_get_options(stream_context_get_default());

$newContext = array_replace_recursive($defaultContext, $options);

stream_context_set_default($newContext);

stream_wrapper_register('testfs', 'Test_StreamWrapper');

class Test_StreamWrapper
{
  public $context;

  public function url_stat()
  {
    if($this->context === null)
    {
       print 'No Context!';   
    }
    return false;
  }
}

file_exists('testfs://foobar');

Expected:

Got:
No Context!


Previous Comments:
------------------------------------------------------------------------
[2009-12-21 22:37:11] lbarn...@php.net

For stream_wrappers, by calling fopen() with a context parameter and then 
fstat() on the opened stream, you should be able to pass a context (the 
->context attribute in the wrapper's instance).

------------------------------------------------------------------------
[2009-12-18 21:36:59] codeslinger at compsalot dot com

Description:
------------
Feature Request:

the stream wrapper functions are *totally awesome*  :-)  !!!

but the "stat" family of functions is limited by the lack of a "context" param.

For instance I need to be able to provide a user name and password for a 
particular connection.  for opendir mkdir fopen etc.  I am able to pass a 
context with that info and everything works.  But then when I try to do a 
"stat" or "fstat"  it fails because there is no way to pass the $context.

Thank you for making PHP such a fantastic programming language!


Reproduce code:
---------------
---
>From manual page: streamwrapper.stream-stat#Description
---


Actual result:
--------------
also see related 
Bug #42965      copy() should support context parameters for URLs




------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=50526&edit=1

Reply via email to