Symfony2+;Capifony回滚错误

Symfony2+;Capifony回滚错误,symfony,rollback,capifony,Symfony,Rollback,Capifony,我将Capifony配置为部署到远程服务器,当我部署项目时,在Capifony执行回滚操作后,我会收到一些错误。 但是在capifony执行symfony:composer:dump_autoload操作之后,它会使用新的发布路径转储chache和autoload文件。在运行symfony应用程序后,出现错误: PHP警告:include():在第185行/var/www/vhosts/user/app/releases/20130805162052/src/Rocket/Applicatio

我将Capifony配置为部署到远程服务器,当我部署项目时,在Capifony执行回滚操作后,我会收到一些错误。 但是在capifony执行
symfony:composer:dump_autoload
操作之后,它会使用新的发布路径转储chache和autoload文件。在运行symfony应用程序后,出现错误:


PHP警告:include():在第185行/var/www/vhosts/user/app/releases/20130805162052/src/Rocket/ApplicationBundle/RocketApplicationBundle.PHP中打开“/var/www/vhosts/user/app/shared/vendor/composer/ClassLoader.PHP”以包含(include_path='/…..”)失败

所以问题是:如果部署出现任何错误,我如何执行
symfony:composer:dump\u autoload

大概是这样的:

namespace :symfony do 
    namespace :composer: do 
        task :dump_autoload, :on_error => :continue do 
             /* parent task */ 
        end
    end
end
在“部署:回滚\u操作”之后,“symfony:composer:dump\u autoload”

有人能帮我吗

编辑

我试图在当前部署会话中重新声明名称空间
:部署:更新\u code
并在\u回滚操作上更改
,如果我收到任何错误,则此钩子有效。但是当执行on_rollback event
releas_path
中的
symfony:composer:dump_autoload
操作时,该路径不是当前路径,我无法重新声明。。。以下是我尝试重新声明命名空间时的代码:

namespace :deploy do
     task :update_code, :except => { :no_release => true } do
         on_rollback { my_namespace.rollback }
        strategy.deploy!
        finalize_update
     end
 end

 namespace :my_namespace do

  task :rollback, :except => { :no_release => true } do
        run "rm -rf #{release_path}; true" #default capistrano action on rollback

        #my custom actions
        #run "cd "+shared_path+"/../current"
        #run "php composer.phar dump-autoload"

        set :release_path, shared_path+"/../current"
        symfony.composer.dump_autoload
  end
 end
到目前为止,我已经找到了这个问题的临时解决方案-每次部署后执行execute
cap symfony:composer:dump_autoload
以更新路径并转储新的自动加载信息,但我不喜欢


我可以通过重新声明名称空间或其他解决方案了解真相吗?

如果出现错误,可以使用以下方法继续执行此任务:

namespace :symfony do 
    namespace :composer: do 
        task :dump_autoload, :on_error => :continue do 
             /* parent task */ 
        end
    end
end

谢谢@nifr的回答,我在它的问题中详细地回答和解释了。。。