Re: [Coding Standards] Loading all files at once
| From: | Philippe Jausions | Date: | Mon, 09 Jul 2007 21:13:19 +0000 |
| Subject: | Re: [Coding Standards] Loading all files at once | ||
| References: | 1 2 | Groups: | php.pear.dev |
| Request: | Send a blank email to pear-dev+get-47308@lists.php.net to get a copy of this message | ||
Joshua Eichorn wrote:
> Paul M Jones wrote:
>> The proposed coding standard states:
>>
>>> Loading all files at once
>>>
>>> PEAR2/PackageName/allfiles.php is the "load all classes at once for
>>> easy startup and opcode caches friendliness" so that, for instance,
>>> the file might contain:
>>>
>>> <?php
>>> // note the lack of dependency on include_path - essential for
>>> beginners
>>> if (!class_exists(PEAR2_Exception)) {
>>> class PEAR2_Exception extends Exception {}
>>> }
>>> require dirname(__FILE__) . '/Base.php';
>>> require dirname(__FILE__) . '/Exception.php';
>>> require dirname(__FILE__) . '/Drivers/Common.php';
>>> require dirname(__FILE__) . '/Drivers/Simple.php';
>>> require dirname(__FILE__) . '/Drivers/Fancy.php';
>>> ?>
>>
>> I don't think this should be a *requirement* at all. I agree that
>> developers who *want* to provide this kind of functionality should
>> abide by a standard way of doing it, but making it a requirement for
>> each package seems like overkill to me (esp. for very large packages
>> with adapters and plugin systems, like Text_Wiki and MDB2). I have
>> heard the "it makes things easier for opcode caches" argument, but I
>> don't find it especially strong.
>>
>> This seems very much like a "recipe" or "practice" candidate to me,
>> not a coding standard by which package acceptance or denial will be
>> judged.
>>
> Having includes strewn throughout all your files allows gives us the
> current include_path mess and makes it impossible to use an autoloader
> if you want to. How do you propose we solve these problems if we don't
> drop the includes out of the files.
>
> -josh
I also find include_path quite useful.
How to address lazy-loaded user self-patched PEAR packages, if not with
include_path? (note the dirname(__FILE__))
Also, how would package inter-dependency be handled with allfiles.php
file(s)?
-Philippe