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

 ID:               52406
 Comment by:       jinmoku at hotmail dot com
 Reported by:      jinmoku at hotmail dot com
 Summary:          spl_autoload support phar with namespace
 Status:           To be documented
 Type:             Bug
 Package:          SPL related
 Operating System: XP, OSX
 PHP Version:      5.3.3

 New Comment:

Ok, I retry on XP and it's work, even if it isn't simple, a filename in
project is not always in lowercase...



Unfortunately it's doesn't work on osx, we see :
set_include_path('phar://' . __FILE__ . PATH_SEPARATOR .
get_include_path());



but after the require_once the phar path's gone, i'll check on other
system and I come back



;)


Previous Comments:
------------------------------------------------------------------------
[2010-07-23 01:59:42] fel...@php.net

What I am saying is:



- Using require_once you might use (lowercase not required):

$phar->addFromString('Framework/Test.php', $contents);

require_once 'Framework/Test.php'; // the search is non-lowercased



- Using spl_autoload() you must use (lowercase required):

$phar->addFromString('framework/test.php', $contents);

$test = new Framework\Test(); // spl_autoload() searchs for the
lowercased namespace/classname.php

------------------------------------------------------------------------
[2010-07-23 01:44:48] jinmoku at hotmail dot com

oups, caracteres don't passed, you can find the phar here :
http://backfront.org/MyPhar.phar



;)

------------------------------------------------------------------------
[2010-07-23 01:36:47] jinmoku at hotmail dot com

Do u have a sample code who doesn't work with the lowercase, I want to
test in my osx ?



about :

> I can't reproduce the weird chars...



I've this in my phar 



Extract_Phar::go();

__HALT_COMPILER(); ?>e

------------------------------------------------------------------------
[2010-07-23 01:22:59] fel...@php.net

I can't reproduce the weird chars...



About this is work...:

require_once('MyPhar.phar');

set_include_path('phar://' . realpath('MyPhar.phar') . PATH_SEPARATOR .
get_include_path());

require_once 'Framework/Test.php';



It's because that in this case the require_once doesn't look into the
file system at all, but into the phar structure, so it doesnt search for
the lowercased one, as in the other sample code.

------------------------------------------------------------------------
[2010-07-23 01:02:57] jinmoku at hotmail dot com

I try lowercase, but that doesn't work too, I make some tests with
spl_autoload and it's work in lower and uppercase filename.

Why in osx (i don't try with other *nix) the phar is not in the
include_path ?



it's work fine (always with the strange "��????") with this
follow code :



require_once('MyPhar.phar');

set_include_path('phar://' . realpath('MyPhar.phar') . PATH_SEPARATOR .
get_include_path());

require_once 'Framework/Test.php';

$test = new Framework\Test();



see ya ;)

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


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    http://bugs.php.net/bug.php?id=52406


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

Reply via email to