RE: [PHP-DOC] #36904 [NEW]: Default Context for Stream

From: Date: Wed, 29 Mar 2006 09:42:33 +0000
Subject: RE: [PHP-DOC] #36904 [NEW]: Default Context for Stream
Groups: php.doc 
Request: Send a blank email to phpdoc+get-969372513@lists.php.net to get a copy of this message
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:phpdoc@lists.php.net] Sent: 29 March 2006 06:09 To: phpdoc@lists.php.net 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

« previous php.doc (#969372513) next »