I've just added a user note.

================================
One way of achieving a system wide default context is to use the php.ini
setting auto_prepend_file.

By creating a php script which is placed anywhere in the include_dir
paths, you can assign the default context for all streams.

This is of most use when you are behind a firewall and without the
context, stream functions like fopen('http://www.site.com/page.html')
fail as the proxy server rejects the request.

The auto_prepend_file itself can be anything you like.

The sort of things you can include in it are ...

1 - __autoload()

Control the automatic loading of classes on demand. This helps reduce
the amount of loading and memory usage when a script starts.

2 - Global Uncaught Exception Handling

By placing a set_exception_handler() function in this file you can catch
ALL exceptions. A much nicer way than having the page be just an error.

3 - Global error handling

Pretty much the same as 2 really, but for generic PHP errors. Ideally,
these are the things you should engineer out of the code.

4 - Default Stream Context.

As I mentioned, if you are behind a firewall, then having a default
context is EXTREMELY useful. Thanks to tiago at mdtestudio for alerting
me to this function.


The great thing about the auto_prepend_file is that is can be set on a
per directory basis. This means that if you are on a shared host, you
can see the auto_prepend_file setting within your webroot.

There is also auto_append_file which probably has more use for
traditional HTML footers. I've not found a PHP specific reason for this
setting. Yet. 
================================


I think there are a LOT of functions which could benefit from more
exposure to the auto_prepend_file setting.


When you start using the setting, you are starting to build some
global/default handling mechanisms. If your code is using these
facilities, remember that they are being used when you tell people about
your code. No require_once() in my_sub_class.inc file could give a
newbie a bit of a headache trying to work out how the parent classes are
loaded/defined?

-----Original Message-----
From: tiago at mdtestudio dot com dot br [mailto:[EMAIL PROTECTED] 
Sent: 29 March 2006 06:09
To: [email protected]
Subject: [PHP-DOC] #36904 [NEW]: Default Context for Stream

From:             tiago at mdtestudio dot com dot br
Operating system: Any
PHP version:      Irrelevant
PHP Bug Type:     Documentation problem
Bug description:  Default Context for Stream

Description:
------------
    Hi, I`m coming from this page:                     
http://br.php.net/manual/add-note.php?sect=function.stream-context-get-d
efault&redirect=http://br.php.net/manual/en/function.stream-context-get-
default.php
    where I got: "lick here to request a feature, so, here I am !

    I think that you could explain on documentation of
stream_context_create or Apendix M how to put a 'default' context at a
CONFIG level.
    For example, an ISP creates a fake IP, for example : eth0:1 ->
192.168.0.155 and sets bindto for it ip.
    Making this at config level, it could disable stream_context_create
function (for users don't change) and control the TARGET hosts for
FSOCKOPEN, FGETS, ETC via iptables ...
    Sorry, I`m new to "reporting" things to you. But I think that it can
help a lot of people, so, I`m writing Here.



--
Edit bug report at http://bugs.php.net/?id=36904&edit=1
--
Try a CVS snapshot (PHP 4.4):
http://bugs.php.net/fix.php?id=36904&r=trysnapshot44
Try a CVS snapshot (PHP 5.1):
http://bugs.php.net/fix.php?id=36904&r=trysnapshot51
Try a CVS snapshot (PHP 6.0):
http://bugs.php.net/fix.php?id=36904&r=trysnapshot60
Fixed in CVS:
http://bugs.php.net/fix.php?id=36904&r=fixedcvs
Fixed in release:
http://bugs.php.net/fix.php?id=36904&r=alreadyfixed
Need backtrace:
http://bugs.php.net/fix.php?id=36904&r=needtrace
Need Reproduce Script:
http://bugs.php.net/fix.php?id=36904&r=needscript
Try newer version:
http://bugs.php.net/fix.php?id=36904&r=oldversion
Not developer issue:
http://bugs.php.net/fix.php?id=36904&r=support
Expected behavior:
http://bugs.php.net/fix.php?id=36904&r=notwrong
Not enough info:
http://bugs.php.net/fix.php?id=36904&r=notenoughinfo
Submitted twice:
http://bugs.php.net/fix.php?id=36904&r=submittedtwice
register_globals:
http://bugs.php.net/fix.php?id=36904&r=globals
PHP 3 support discontinued:
http://bugs.php.net/fix.php?id=36904&r=php3
Daylight Savings:             http://bugs.php.net/fix.php?id=36904&r=dst
IIS Stability:
http://bugs.php.net/fix.php?id=36904&r=isapi
Install GNU Sed:
http://bugs.php.net/fix.php?id=36904&r=gnused
Floating point limitations:
http://bugs.php.net/fix.php?id=36904&r=float
No Zend Extensions:
http://bugs.php.net/fix.php?id=36904&r=nozend
MySQL Configuration Error:
http://bugs.php.net/fix.php?id=36904&r=mysqlcfg

Reply via email to