I've did symfony plugin-install http://plugins.symfony-project.com/sfPropelActAsRatableBehaviorPlugin in new project directory and got following:
>> pear channel://pear.symfony-project....ctAsRatableBehaviorPlugin-0.7.1
>> plugin installing web data for plugin
PHP Warning: split(): REG_EESCAPE in E:\PHP\PEAR\data\symfony\tasks\sfPakePlugins.php on line 293
PHP Stack trace:
PHP 1. {main}() C:\Projects\qwe\symfony:0
PHP 2. include() C:\Projects\qwe\symfony:14
PHP 3. pakeApp->run() E:\PHP\PEAR\data\symfony\bin\symfony.php:174
PHP 4. pakeTask->invoke() E:\PHP\PEAR\symfony\vendor\pake\pakeApp.class.php:175
PHP 5. pakeTask->execute() E:\PHP\PEAR\symfony\vendor\pake\pakeTask.class.php:181
PHP 6. call_user_func_array() E:\PHP\PEAR\symfony\vendor\pake\pakeTask.class.php:218
PHP 7. run_plugin_install() E:\PHP\PEAR\symfony\vendor\pake\pakeTask.class.php:0
PHP 8. _install_web_content() E:\PHP\PEAR\data\symfony\tasks\sfPakePlugins.php:43
PHP 9. _absolute_path_difference() E:\PHP\PEAR\data\symfony\tasks\sfPakePlugins.php:261
PHP 10. split() E:\PHP\PEAR\data\symfony\tasks\sfPakePlugins.php:293
Warning: split(): REG_EESCAPE in E:\PHP\PEAR\data\symfony\tasks\sfPakePlugins.php on line 293
Call Stack:
0.0007 51856 1. {main}() C:\Projects\qwe\symfony:0
0.0052 112056 2. include('E:\PHP\PEAR\data\symfony\bin\symfony.php') C:\Projects\qwe\symfony:14
0.1539 2086816 3. pakeApp->run() E:\PHP\PEAR\data\symfony\bin\symfony.php:174
0.1685 2201984 4. pakeTask->invoke() E:\PHP\PEAR\symfony\vendor\pake\pakeApp.class.php:175
0.1725 2202992 5. pakeTask->execute() E:\PHP\PEAR\symfony\vendor\pake\pakeTask.class.php:181
0.1726 2204104 6. call_user_func_array() E:\PHP\PEAR\symfony\vendor\pake\pakeTask.class.php:218
0.1726 2204104 7. run_plugin_install() E:\PHP\PEAR\symfony\vendor\pake\pakeTask.class.php:0
8.9647 11818976 8. _install_web_content() E:\PHP\PEAR\data\symfony\tasks\sfPakePlugins.php:43
8.9670 11819488 9. _absolute_path_difference() E:\PHP\PEAR\data\symfony\tasks\sfPakePlugins.php:261
8.9963 11944384 10. split() E:\PHP\PEAR\data\symfony\tasks\sfPakePlugins.php:293
PHP Warning: split(): REG_EESCAPE in E:\PHP\PEAR\data\symfony\tasks\sfPakePlugins.php on line 294
PHP Stack trace:
PHP 1. {main}() C:\Projects\qwe\symfony:0
PHP 2. include() C:\Projects\qwe\symfony:14
PHP 3. pakeApp->run() E:\PHP\PEAR\data\symfony\bin\symfony.php:174
PHP 4. pakeTask->invoke() E:\PHP\PEAR\symfony\vendor\pake\pakeApp.class.php:175
PHP 5. pakeTask->execute() E:\PHP\PEAR\symfony\vendor\pake\pakeTask.class.php:181
PHP 6. call_user_func_array() E:\PHP\PEAR\symfony\vendor\pake\pakeTask.class.php:218
PHP 7. run_plugin_install() E:\PHP\PEAR\symfony\vendor\pake\pakeTask.class.php:0
PHP 8. _install_web_content() E:\PHP\PEAR\data\symfony\tasks\sfPakePlugins.php:43
PHP 9. _absolute_path_difference() E:\PHP\PEAR\data\symfony\tasks\sfPakePlugins.php:261
PHP 10. split() E:\PHP\PEAR\data\symfony\tasks\sfPakePlugins.php:294
Warning: split(): REG_EESCAPE in E:\PHP\PEAR\data\symfony\tasks\sfPakePlugins.php on line 294
Call Stack:
0.0007 51856 1. {main}() C:\Projects\qwe\symfony:0
0.0052 112056 2. include('E:\PHP\PEAR\data\symfony\bin\symfony.php') C:\Projects\qwe\symfony:14
0.1539 2086816 3. pakeApp->run() E:\PHP\PEAR\data\symfony\bin\symfony.php:174
0.1685 2201984 4. pakeTask->invoke() E:\PHP\PEAR\symfony\vendor\pake\pakeApp.class.php:175
0.1725 2202992 5. pakeTask->execute() E:\PHP\PEAR\symfony\vendor\pake\pakeTask.class.php:181
0.1726 2204104 6. call_user_func_array() E:\PHP\PEAR\symfony\vendor\pake\pakeTask.class.php:218
0.1726 2204104 7. run_plugin_install() E:\PHP\PEAR\symfony\vendor\pake\pakeTask.class.php:0
8.9647 11818976 8. _install_web_content() E:\PHP\PEAR\data\symfony\tasks\sfPakePlugins.php:43
8.9670 11819488 9. _absolute_path_difference() E:\PHP\PEAR\data\symfony\tasks\sfPakePlugins.php:261
9.1453 11944416 10. split() E:\PHP\PEAR\data\symfony\tasks\sfPakePlugins.php:294
Well, I've looked into split.c from php source and found that this function uses treats first argument as regexp, while explode does not. Moreover, looks like that it is normal behavior for split (and such call actually does not split nothing, that could possibly break some paths), so I've just replaced its call with explode call. Appropriate patch is included.
--- data\symfony\tasks\sfPakePlugins.old.php Sat Dec 22 10:03:36 2007
+++ data\symfony\tasks\sfPakePlugins.php Thu Jan 17 16:41:03 2008
@@ -288,12 +288,12 @@
{
return $target;
}
- $source = split(DIRECTORY_SEPARATOR, rtrim($source, DIRECTORY_SEPARATOR));
- $target = split(DIRECTORY_SEPARATOR, rtrim($target, DIRECTORY_SEPARATOR));
+ $source = explode(DIRECTORY_SEPARATOR, rtrim($source, DIRECTORY_SEPARATOR));
+ $target = explode(DIRECTORY_SEPARATOR, rtrim($target, DIRECTORY_SEPARATOR));
if ($source == $target)
{
return '.';
}