你好好人!
我已经使用基于Zend框架1.11.12(从1.10.8升级)的Web应用程序(我的第一个这种类型的)“模块化办法”的文件夹结构,我的意思是说所有的模块都是在application/modules
。 我使用的原则1.2.4
我也使用library
的所有第三方库,包括ZF除了2文件夹: CKEditor
和PGRFilemanager
。 上传文件到图像pgrfile经理从管理面板文件夹中。 这里是我的全局文件结构。
/application
/configs
application.ini
routes.ini
/layouts
/scripts
/partials
*.all_the_partials_files.phtml
*.all_the_layouts.phtml
/modules
all_the_module_folders
Boostrap.php
/logs
/library
/Zend
/Doctrine
/SwiftMailer
/Abra //where all my classes reside
/Model
User.php
Role.php
other_doctrine_entities_class
/public
/javascript
/css
/images
.htaccess // added an htaccess file here
/fonts
`/ckeditor`
a_lot_of_files_including_php_files
other_folders
/plugins
other_folders
`/pgrfilemanager`
/php
auth.php
myconfig.php
other_folders_and_files_including_php
index.php
.htaccess
在一点上,我开发这个网站,我没有使用Zend_Acl里所以在在session_start() /public/ckeditor/plugins/pgrfilemanager/php/auth.php
工作得很好了一段时间,因为pgrfilemanager想出了一个默认的身份验证功能。 但是一旦我开始使用Zend_Acl里我遇到的问题,如Class __PHP_Incomplete_Class has no unserializer Array
时异常session_start()
从所谓的~~/auth.php
文件。 我最初以为这样做我不使用的事实是,由于Zend_Session
,但显然我非常由于这个事实说明如下 (纠正我,如果我错了感谢)
如何使用它? 谢谢阅读
因为我发现了一个关于此问题的方法,我想我也有同感,也许我会得到更好的视角。
对于答案Class __PHP_Incomplete_Class has no unserializer Array
是明确的,现在为会议做怎样的格式unserialize
到PHP的意思还得知道存储在会话对象的定义。
根据该文件结构我创建了一个权威性的文件说myauth.php
在/public/ckeditor/puglins/pgrfilemanager/userfiles
我将把这个路径是pgr/userdir
$path = realpath("../../../../library");
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require "Zend/Loader/Autoloader.php";
require_once 'Doctrine/Doctrine.php';
spl_autoload_register(array("Doctrine", "autoload"), true);
$loader = Zend_Loader_Autoloader::getInstance();
$loader->registerNamespace(array("Abra_"));
/*$p seem to be empty throwing error on Zend_Config_Ini but returns the config anyway.I never figured out
*/
$p = realpath("./../../../../application/configs/application.ini");
try {
// $config = parse_ini_file($p, "production");
$config = new Zend_Config_Ini($p, "production");
$conn = Doctrine_Manager::connection($config->doctrine->dsn);
$user = new Abra_Model_User();
$role = new Abra_Model_Role();
$auth = Zend_Auth::getInstance();
if(!$auth->hasIdentity()|| !in_array($auth->getIdentity()->Role->name, array("superadmin","administrator")) ){
die("Not authenticated");
}
} catch (Exception $ex) {
*/
$p = realpath("./../../../../application/configs/application.ini");
try {
// $config = parse_ini_file($p, "production");
$config = new Zend_Config_Ini($p, "production");
$conn = Doctrine_Manager::connection($config->doctrine->dsn);
$user = new Abra_Model_User();
$role = new Abra_Model_Role();
$auth = Zend_Auth::getInstance();
if(!$auth->hasIdentity()|| !in_array($auth->getIdentity()->Role->name, array("superadmin","administrator")) ){
die("Not authenticated");
}
} catch (Exception $ex) {
}
}
在pgr/php/folders.php
和pgr/php/files.php
我包括
$path = realpath("../../../../library");
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
在顶部。 然后我包括pgr/userfiles/myauth.php
在pgr/myconfig
如下所示
include_once dirname(__FILE__) . '/userfiles/myauth.php';
我希望这会帮助别人。 谢谢
文章来源: how to use Zend_Auth to authenticate user when uploading using ckeditor plugin pgrfilemanager