Skip to content
This repository has been archived by the owner on Jan 21, 2020. It is now read-only.

Uncaught exception 'Exception' with message 'Serialization of 'Closure' is not allowed' #153

Open
h3110w0r1d opened this issue May 28, 2014 · 7 comments

Comments

@h3110w0r1d
Copy link

in the application config ,i have a route its type is 'Zend\Mvc\Router\Http\Chain', this type need a parameter 'route_plugins', so i new it in the application config.
but in the \Zend\Mvc\Router\RoutePluginManager, the initializer propery store some closures. so when the application config is serialized, the error happend.

i think we need a method named makeObjectProperySerializable in the class Collector\ConfigCollector

@Ocramius
Copy link
Member

@h3110w0r1d do you have a stack trace for this? But yeah, we may need some clever way of replacing those unserializable instances.

@h3110w0r1d
Copy link
Author

Stack trace:

 #0 /home/ethantsien/project/www/h3110w0r1d.com/vendor/zendframework/zend-developer-tools/src/ZendDeveloperTools/Collector/ConfigCollector.php(94): serialize(Array) 

#1 [internal function]: ZendDeveloperTools\Collector\ConfigCollector->serialize() 

#2 /home/ethantsien/project/www/h3110w0r1d.com/vendor/zendframework/zend-developer-tools/src/ZendDeveloperTools/Profiler.php(213): serialize(Object(ZendDeveloperTools\Collector\ConfigCollector)) 

#3 /home/ethantsien/project/www/h3110w0r1d.com/vendor/zendframework/zend-developer-tools/src/ZendDeveloperTools/Listener/ProfilerListener.php(107): ZendDeveloperTools\Profiler->collect(Object(Zend\Mvc\MvcEvent)) 

#4 [internal function]: ZendDeveloperTools\Listener\ProfilerListener->onFinish(Object(Zend\Mvc\MvcEvent)) #5 /home/ethantsien in /home/ethantsien/project/www/h3110w0r1d.com/vendor/zendframework/zend-developer-tools/src/ZendDeveloperTools/Collector/ConfigCollector.php on line 94

i am sure that the line ''route_plugins' => new RoutePluginManager(),' in the config below cause this error

return array(
    'router' => array(
        'routes' => array(
            'passport' => array(
                'type' => 'chain',
                'options' => array(
                    'routes' => array(
                        'hostname' => array(
                            'type' => 'Zend\Mvc\Router\Http\Hostname',
                            'options' => array(
                                'route' => PASSPORT_HOSTNAME,    
                                'defaults' => array(
                                    '__NAMESPACE__' => 'Passport\Controller',
                                    'controller' => 'Index',
                                    'action' => 'index',    
                                ),
                            ),    
                        ),
                        'scheme' => array(
                            'type' => 'Zend\Mvc\Router\Http\Scheme',
                            'options' => array(
                                'scheme' => 'http',
                            ),    
                        ),
                    ),
                    'route_plugins' => new RoutePluginManager(),
                ),

                'may_terminate' => true,

                'child_routes' => array(
                    'home' => array(
                        'type' => 'literal',
                        'options' => array(
                            'route' => '/',
                        ),
                    ),
                    'register' => array(
                        'type' => 'literal',
                        'options' => array(
                            'route' => '/register',
                            'defaults' => array(
                                'action' => 'register',    
                            ), 
                        ),    
                    ),
                    'login' => array(
                        'type' => 'literal',
                        'options' => array(
                            'route' => '/login',
                            'defaults' => array(
                                'action' => 'login',    
                            ),
                        ),    
                    ),
                    'logout' => array(
                        'type' => 'literal',
                        'options' => array(
                            'route' => '/logout',
                            'defaults' => array(
                                'action' => 'logout',    
                            ), 
                        ),    
                    ),
                ),
            ),
        ),    
    ),
);

@Ocramius
Copy link
Member

@h3110w0r1d
Copy link
Author

thanks
2014年5月28日 下午8:11于 "Marco Pivetta" [email protected]写道:

@h3110w0r1d https://github.com/h3110w0r1d yeah, I have something in
RoaveDeveloperTools which may be backported here, see
https://github.com/Roave/RoaveDeveloperTools/blob/424285eb861c9df7891ce7c6e66a21756eecd81c/src/Roave/DeveloperTools/Stub/SerializableValueStub.php#L44


Reply to this email directly or view it on GitHubhttps://github.com//issues/153#issuecomment-44398163
.

@Ocramius
Copy link
Member

Still an issue.

@Perfect-Web
Copy link

a very annoying one

@weierophinney
Copy link
Member

This repository has been closed and moved to laminas/laminas-developer-tools; a new issue has been opened at laminas/laminas-developer-tools#14.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants