tested, fix comfirmed.

What a speed! Thanks,
Bart

Matthew Weier O'Phinney schreef:
-- Bart McLeod <[EMAIL PROTECTED]> wrote
(on Thursday, 09 October 2008, 02:58 PM +0200):
and now with improved regex:
//pluginloader.php line 374
            foreach ($paths as $key => $path) {
                if (preg_match('/^[a-z0-9_](?!(:\/))(?!:' . preg_quote('\\') .
')/i', $path)) {//works for windows paths too, like E:\myapp\etc

Awesome sleuthing! and I see exactly what failed in my original regex as
well. Applied and committed to svn; please test!

                    foreach ($incPaths as $index => $incPath) {
                        $incPaths[$index] .= DIRECTORY_SEPARATOR . $path;
                    }
                    unset($paths[$key]);
                }
            }

Bart

Bart McLeod schreef:

    Think I found it (at least a quick fix that works, but you will probably
    have to fix the regex and add an else statement:
    //line 374 in pluginloader.php
                foreach ($paths as $key => $path) {
                    if (preg_match('/^[a-z0-9_](?!:' . preg_quote('\\') . ')/
    i', $path)) {
                        foreach ($incPaths as $index => $incPath) {
                            $incPaths[$index] .= DIRECTORY_SEPARATOR . $path;
                        }
                        //unset($paths[$key]);//I commented this line to keep
    the paths that I have set for specific keys that go wrong, provides a quick
    fix
                    }
                }

    Bart

    Matthew Weier O'Phinney schreef:

        -- Bart McLeod <[EMAIL PROTECTED]> wrote
        (on Wednesday, 08 October 2008, 12:10 PM +0200):


            This is what I get with 11666:
            Fatal error: Uncaught exception 
'Zend_Loader_PluginLoader_Exception' with
            message 'Plugin by name CmsScripts was not found in the registry; 
paths
            searched: array ( 'Admin_View_Helper_' => array ( 0 => 'D:/werkmap/
            www.houthandelwijers.nl zf/application/admin/views\\helpers/', ),
            'Zend_View_Helper_' => array ( 0 => 'Zend/View/Helper/', ), ) 
Original
            include_path: .;C:\Program 
Files\PHP\pear;c:\php\includes;c:\php\PEAR\;c:\php;
            D:\ZendFramework\library' in D:\ZendFramework\library\Zend\Loader\
            PluginLoader.php:404 Stack trace: #0 
D:\ZendFramework\library\Zend\View\
            Abstract.php(1114): Zend_Loader_PluginLoader->load('CmsScripts') #1 
D:\
            ZendFramework\library\Zend\View\Abstract.php(545): 
Zend_View_Abstract->
            _getPlugin('helper', 'cmsScripts') #2 
D:\ZendFramework\library\Zend\View\
            Abstract.php(312): Zend_View_Abstract->getHelper('cmsScripts') #3 
[internal
            function]: Zend_View_Abstract->__call('cmsScripts', Array) #4 
D:\ZendFramework\
            library\SpaceCMS\ActionController.php(44): Zend_View->cmsScripts() 
#5 D:\ZendFr
            in D:\ZendFramework\library\Zend\Loader\PluginLoader.php on line 404

            So I'll just revert back to 10753 for now! :-)



        Okay, so it's still an issue on Windows, then. I'll keep digging.




            Matthew Weier O'Phinney schreef:

                -- Bart McLeod <[EMAIL PROTECTED]> wrote
                (on Wednesday, 08 October 2008, 11:17 AM +0200):


                    I updated the Loader dir to 10753 and it works again now. 
Revision 11629 is the
                    one that broke it.



                That makes sense -- I made changes as of r11666 that should 
have fixed
                it.




                    Matthew Weier O'Phinney schreef:

                        -- Bart McLeod <[EMAIL PROTECTED]> wrote
                        (on Monday, 06 October 2008, 09:10 PM +0200):


                            Hi all,

                            I had similar problems today with my custom view 
helpers. They are in
                            the location where ZF is looking for them, but it 
can't load them. I
                            thought I sent a mail to the list about it, but it 
probably got rejected.

                            The only thing I could think of is the directory 
separator... I can see
                            you are on windows too. In my case, everything 
worked before and now
                            nothing does, because the helpers aren't found by 
the plugin loader.



                        I'm pretty certain it's an OS-dependent bug, and will 
be working when I
                        can to fix this the next few days.




                            The loader works by adding to the include path the 
directories required...

                            Bart

                            Codiac schreef:


                                Matthew,

                                It's probably my setup but I'm still 
experiencing problems. I'm not using
                                the incubator and I'm trying to load the 
Zend_View_Helper_Translate. It
                                works fine for the login page, but after that 
it somehow goes wrong. Here's
                                a little more info.

                                #0 C:\Documents and Settings\Mijn 
documenten\Projecten\Workspace\Zend
                                Framework 
(Core)\library\Zend\View\Abstract.php(1114):
                                Zend_Loader_PluginLoader-&gt;load('Translate')
                                #1 C:\Documents and Settings\Mijn 
documenten\Projecten\Workspace\Zend
                                Framework 
(Core)\library\Zend\View\Abstract.php(545):
                                Zend_View_Abstract-&gt;_getPlugin('helper', 
'translate')
                                #2 C:\Documents and Settings\Mijn 
documenten\Projecten\Workspace\Zend
                                Framework 
(Core)\library\Zend\View\Abstract.php(312):
                                Zend_View_Abstract-&gt;getHelper('translate')
                                #3 [internal function]: 
Zend_View_Abstract-&gt;__call('translate', Array)
                                #4 C:\Documents and Settings\Mijn 
documenten\Projecten\Workspace\D
                                
Wms\d_wms\default\views\scripts\index\index.php(3):
                                Zend_View-&gt;translate('INDEX_PAGE_001')

                                Regards, TJ.



                                Matthew Weier O'Phinney-3 wrote:



                                    -- Matthew Weier O'Phinney <[EMAIL 
PROTECTED]> wrote
                                    (on Sunday, 05 October 2008, 11:45 AM 
-0400):



                                        -- Matthew Weier O'Phinney <[EMAIL 
PROTECTED]> wrote
                                        (on Sunday, 05 October 2008, 11:27 AM 
-0400):



                                            -- Codiac <[EMAIL PROTECTED]> wrote
                                            (on Sunday, 05 October 2008, 02:25 
AM -0700):



                                                I'm experiencing some errors 
while loading a plugin (in this case the
                                                translate view helper). I'm 
seeing what appears to be escaped




                                        directory



                                                separators in the include path. 
Is this somehow related to the




                                        changes in



                                                Zend_Loader_PluginLoader how it 
handles plugin loading? Here are the
                                                details:

                                                Fatal error: Uncaught exception 
'Zend_Loader_PluginLoader_Exception'




                                        with



                                                message 'Plugin by name 
Translate was not found in the registry;




                                        paths



                                                searched: array ( 'D_View_Helper_' 
=> array ( 0 =>
                                                'C:\\Documents and




                                        Settings\\Mijn



                                                
documenten\\Projecten\\Workspace\\Wms\\wms\\views\\helpers/', ),
                                                'Zend_View_Helper_' => array ( 0 
=> 'Zend/View/Helper/', 1 =>




                                        'C:/Documents



                                                and Settings/Mijn
                                                
documenten/Projecten/Workspace/Wms/wms/default/views\\helpers/',
                                                ), )



                                            The escapes above are because I use 
var_export to create the message --
                                            which will escape backslashes in 
strings so they may be evaluated
                                            properly by PHP. So, that's not the 
issue.

                                            I've just verified problems loading 
the translate view helper when I
                                            have a custom helper path in place, 
so I'll continue looking for the
                                            source of the issue.




                                        Actually, I take that back -- the 
helper was found. However, because I
                                        had display_errors on, I was distracted 
by the warnings. Now I need to
                                        find out why the warning errors are 
showing since they should be
                                        suppressed.




                                    Issue was that the version of the incubator 
was conflicting with the one
                                    in trunk. I've now removed the incubator 
version, and I'm no longer
                                    seeing the warnings. Please update and 
verify.




                                                Original include_path:

                                                
.;C:\xampp\php\pear\;C:\Documents and Settings\Mijn
                                                
documenten\Projecten\Workspace\Zend Framework (Core)\library\;

                                                C:\Documents and Settings\Mijn
                                                
documenten\Projecten\Workspace\Framework\library' in C:\Documents and
                                                Settings\Mijn 
documenten\Projecten\Workspace\Zend Framework
                                                
(Core)\library\Zend\Loader\PluginLoader.php:404

                                                Stack trace:

                                                #0 C:\Documents and 
Settings\Taco\Mijn




                                        documenten\Projecten\Workspace\Zend



                                                Framework 
(Core)\library\Zend\View\Abstr in C:\Documents and
                                                Settings\Taco\Mijn 
documenten\Projecten\Workspace\Zend Framework
                                                
(Core)\library\Zend\Loader\PluginLoader.php on line 404

                                                Thanks,
                                                TJ.



                                                Matthew Weier O'Phinney-3 wrote:



                                                    -- Pieter Kokx <[EMAIL 
PROTECTED]> wrote
                                                    (on Saturday, 04 October 
2008, 11:12 PM +0200):



                                                        Since revision 11629 
there are some problems with the PluginLoader




                                        This



                                                        is because there were 
some performance tweaks. Since that




                                        revision, it



                                                        is that when you are 
calling the Zend_Loader_PluginLoader::load()
                                                        method, it uses the 
Zend_Loader::loadFile() method in stead of




                                        just



                                                        using require_once. The 
problem with that is that the
                                                        Zend_Loader::loadFile() 
method is adding the given directories to




                                        the



                                                        include path and 
removing them after the include operation. But




                                        when you



                                                        have a relative path 
that depends on the include path, it won't




                                        work



                                                        (then you are adding 
something like Zend/View/Helper/ to the




                                        include



                                                        path). So it doesn't 
work anymore.

                                                        How can we make this 
work well again?




                                                    Pieter, please update to 
current svn. Since 11666, committed last




                                        night,



                                                    things are now working 
fine. I identified the issue, and have




                                        resolved



                                                    it (while keeping the 
performance improvement).




                                                        Well, just make that 
the PluginLoader doesn't use the
                                                        Zend_Loader::loadFile() 
method and uses its old method with
                                                        require_once. Or we 
should change Zend_Loader::loadFile() so it




                                        will use



                                                        the directories 
correctly and make that that directories can be in




                                        the



                                                        include path. Currently 
we are making a big API break. Even




                                        Zend_View



                                                        doesn't work with 
helpers or filters anymore without re-adding the




                                        path



                                                        manualy.

                                                        Does anybody else have 
some other ideas to solve this?




                                                    --
                                                    Matthew Weier O'Phinney
                                                    Software Architect       | 
[EMAIL PROTECTED]
                                                    Zend Framework           | 
http://framework.zend.com/






                                                --
                                                View this message in context:




                                        
http://www.nabble.com/Zend_Loader_PluginLoader-problems-tp19817529p19822598.html



                                                Sent from the Zend Framework 
mailing list archive at Nabble.com.





                                            --
                                            Matthew Weier O'Phinney
                                            Software Architect       | [EMAIL 
PROTECTED]
                                            Zend Framework           | 
http://framework.zend.com/





                                        --
                                        Matthew Weier O'Phinney
                                        Software Architect       | [EMAIL 
PROTECTED]
                                        Zend Framework           | 
http://framework.zend.com/





                                    --
                                    Matthew Weier O'Phinney
                                    Software Architect       | [EMAIL PROTECTED]
                                    Zend Framework           | 
http://framework.zend.com/


























Reply via email to