我正在尝试将 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管理器的别名。
所以,我不清楚为什么说这个服务无法找到。
真的会对此提出一些建议。
答案 0 :(得分:0)
您需要scn-social-auth.global.php
和scn-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');