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

 ID:                 53810
 User updated by:    panman at traileyes dot com
 Reported by:        panman at traileyes dot com
 Summary:            Phar::mount() Entire Directory
 Status:             Open
 Type:               Feature/Change Request
 Package:            PHAR related
 Operating System:   Win 7 32 bit
 PHP Version:        5.3.5
 Block user comment: N
 Private report:     N

 New Comment:

Another nice feature that would go along with this is the ability to
merge a directory with an existing Phar directory. This way users could
make their own modules that would then act like it is apart of the Phar.
I know this can be done on an individual file basis but there may be
files scatter throughout several folders and just mounting the one
folder would be nice. Of course there would be some kind of conflict
checker, maybe user option to use the internal or mounted files.


Previous Comments:
------------------------------------------------------------------------
[2011-01-22 05:12:45] panman at traileyes dot com

Description:
------------
It would be _very_ nice to be able to mount an external directory
somewhere in the Phar. That way if there are many files that need to be
included they don't need to each be Phar::mount()'ed.



Note that all sub files and folders should also be in directory listings
and available through the Web. Bugs 53809 and 53801.



The directory structure should be as follows for the test below:



make.php = In the test script below

list.php = In the test script below

ext/page1.html = <p>Page 1</p>

ext/page2.html = <p>Page 2</p>

Test script:
---------------
<?php

// make.php



try {

    $p = new Phar('test.phar');

    $p->addFile('list.php');

    $p->setStub('<?php

Phar::interceptFileFuncs();

Phar::webPhar("test.phar", "list.php");

Phar::mount(__DIR__ . "/ext/", "ext/");

__HALT_COMPILER();');

    echo 'Done making test.phar';

} catch (Exception $e) {

    echo 'Exception caught: ' . $e->getMessage();

}

?>





<?php

// list.php



$path = Phar::running() . '/ext';

echo "Path: $path<br>\r\n";

echo 'Exists: ' . (file_exists($path) ? 'Yes' : 'No') . "<br>\r\n";

echo "Listing...<br>\r\n";

foreach (new DirectoryIterator($path) as $file) {

    if ($file->isDot()) continue;

    echo $file->getFilename() . "<br>\r\n";

}

echo "...done listing<br>\r\n";

?>

Expected result:
----------------
Visiting: make.php

Done making test.phar



Visiting: test.phar/list.php

Path: phar://test.phar/ext

Exists: Yes

Listing...

page1.html

page2.html

...done listing



Visiting: test.phar/ext/page1.html

Page 1

Actual result:
--------------
Visiting: make.php

Done making test.phar



Visiting: test.phar/list.php

Path: phar://test.phar/ext

Exists: No

Listing...



Visiting: test.phar/ext/page1.html

404 - File /ext/page1.html Not Found


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



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

Reply via email to