-- 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/
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 

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

Reply via email to