别名" ScnSocialAuth_ZendSessionManager"被要求但没有找到服务

时间:2015-10-11 11:08:55

标签: php zend-framework2

我正在尝试将 ScnSocialAuth_ZendSessionManager 安装到我的zend 2应用程序中。 当我尝试进入登录或注册页面时收到以下错误消息:

An alias "ScnSocialAuth_ZendSessionManager" was requested but no service could be found.

我已按照说明here:

并上传。

然后我安装

./vendor/socalnick/scn-social-auth/config/scn-social-auth.global.php.dist
/vendor/socalnick/scn-social-auth/config/scn-social-auth.local.php.dist

到我的配置。

然后在scn-social-auth.global.php中我做了以下事情:

$settings = array(

    'zend_db_adapter' => 'Zend\Db\Adapter\Adapter',

    'zend_session_manager' => 'Zend\Session\SessionManager'
}
);

return array(
    'scn-social-auth' => $settings,
    'service_manager' => array(
        'aliases' => array(
            'ScnSocialAuth_ZendDbAdapter' => (isset($settings['zend_db_adapter'])) ? $settings['zend_db_adapter']: 'Zend\Db\Adapter\Adapter',
            'ScnSocialAuth_ZendSessionManager' => (isset($settings['zend_session_manager'])) ? $settings['zend_session_manager']: 'Zend\Session\SessionManager',
        ),
    ),
);

我还创建了一个./config/autoload/session.local.php:

<?php

return array(
    'service_manager' => array(
        'invokables' => array(
            'Zend\Session\SessionManager' => 'Zend\Session\SessionManager',
        ),
    ),
); 

所以,我不清楚为什么我仍然收到错误消息;

真的会对此提出任何建议。

更新

我还将模块添加到作曲家:

"require": {
        "php": ">=5.3.3",
        "zendframework/zendframework": "2.*",
        "socalnick/scn-social-auth": "1.*"
    }

UPATE Wilt已经询问了当var_dump配置值时返回了什么值。 返回的值是:

  array (size=3)
          'ScnSocialAuth_ZendDbAdapter' => string 'Zend\Db\Adapter\Adapter' (length=23)
          'ScnSocialAuth_ZendSessionManager' => string 'Zend\Session\SessionManager' (length=27)
          'zfcuser_zend_db_adapter' => string 'Zend\Db\Adapter\Adapter' (length=23)

你会发现 ScnSocialAuth_ZendSessionManager 是zend sesssion管理器的别名。

所以,我不清楚为什么说这个服务无法找到。

真的会对此提出一些建议。

1 个答案:

答案 0 :(得分:0)

您需要scn-social-auth.global.phpscn-social-auth.local.php到您的应用程序配置文件夹,并设置所需的所有配置参数。

在此文件中,您会找到the key 'ScnSocialAuth_ZendSessionManager'。您的问题可能与这些配置文件相关的一些配置问题有关。

既然你说你加载了它们,我会说你的自动加载设置有问题。

您的ZF2应用程序是否具有proper system configuration

'module_listener_options' => array(
    'module_paths' => array(
        './module',
        './vendor',
    ),
    'config_glob_paths' => array(
        'config/autoload/{{,*.}global,{,*.}local}.php',
    )
)

如果合并的$config数组包含所有密钥,请检查一次?

$config = $serviceManager->get('Config');