вот индексный файл, который является точкой входа.
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 1);
date_default_timezone_set('Europe/Moscow');
//путь до установленного фреймворка
set_include_path('.'.PATH_SEPARATOR . '../libs'
.PATH_SEPARATOR.'../libs/Pear'
.PATH_SEPARATOR.get_include_path());
require_once 'Zend/Loader/Autoloader.php';
$loader = Zend_Loader_Autoloader::getInstance();
$loader->registerNamespace(array('CustomControllerAclManager', 'Templater', 'CustomControllerAction'
, 'DatabaseObject', 'FormProcessor', 'Profile','Text_CAPTCHA'
,'Text_Password'));
//загрузка конфигурационной информации
$config=new Zend_Config_Ini('../settings.ini','development');
Zend_Registry::set('config',$config);
//создание обьекта для системного журнала
$logger=new Zend_Log(new Zend_Log_Writer_Stream($config->logging->file));
Zend_Registry::set('logger',$logger);
//соединение с базой данных
$params = array('host' => $config->database->hostname,
'username' => $config->database->username,
'password' => $config->database->password,
'dbname' => $config->database->database,
'driver_options'=> array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8'),
'profiler' => false);
$db = Zend_Db::factory($config->database->type, $params);
Zend_Registry::set('db', $db);
$db->query("set names utf8");
//настройка аутентификации пользователей
$auth = Zend_Auth::getInstance();
$auth->setStorage(new Zend_Auth_Storage_Session());
//обработка запроса пользователя
$controller=Zend_Controller_Front::getInstance();
$controller->throwExceptions(true);
$controller->setControllerDirectory($config->paths->base.'/include/Controllers/');
$controller->registerPlugin(new CustomControllerAclManager($auth));
//настройка визуализации
$vr = new Zend_Controller_Action_Helper_ViewRenderer();
$vr->setView(new Templater());
$vr->setViewSuffix('tpl');
Zend_Controller_Action_HelperBroker::addHelper($vr);
$controller->throwExceptions(true);
$controller->dispatch();
вот содержимое файлы user
<?php
class DatabaseObject_User extends DatabaseObject
{
static $userTypes = array('member' => 'Member',
'administrator' => 'Administrator');
public $profile = null;
public $_newPassword = null;
public function __construct($db)
{
parent::__construct($db, 'users', 'user_id');
$this->add('username');
$this->add('password');
$this->add('user_type', 'member');
$this->add('ts_created', time(), self::TYPE_TIMESTAMP);
$this->add('ts_last_login', null, self::TYPE_TIMESTAMP);
$this->profile = new Profile_User($db);
}
protected function preInsert()
{
// $this->password = uniqid();
$this->_newPassword = Text_Password::create(8);
$this->password = $this->_newPassword;
return true;
}
protected function postLoad()
{
$this->profile->setUserId($this->getId());
$this->profile->load();
}
protected function postInsert()
{
$this->profile->setUserId($this->getId());
$this->profile->save(false);
$this->sendEmail('user-register.tpl');
return true;
}
protected function postUpdate()
{
$this->profile->save(false);
return true;
}
protected function preDelete()
{
$this->profile->delete();
return true;
}
public function __set($name, $value)
{
switch ($name) {
case 'password':
$value = md5($value);
break;
case 'user_type':
if (!array_key_exists($value, self::$userTypes))
$value = 'member';
break;
}
return parent::__set($name, $value);
}
public function usernameExists($username)
{
$query = sprintf('select count(*) from %s where username = ?',
$this->_table);
$result = $this->_db->fetchOne($query, $username);
return $result > 0;
}
static public function IsValidUsername($username)
{
$validator = new Zend_Validate_Alnum();
return $validator->isValid($username);
}
public function sendEmail($tpl)
{
$templater = new Templater();
$templater->user = $this;
// считывается тело сообщения
$body = $templater->render('email/' . $tpl);
// извлечение темы из первой строки
list($subject, $body) = preg_split('/\r|\n/', $body, 2);
// настройка и отправка сообщения
$mail = new Zend_Mail();
// помещение адреса доставки и полного имени в строку "кому"
$mail->addTo($this->profile->email,
trim($this->profile->first_name . ' ' .
$this->profile->last_name));
// чтение данных администратора из конфигурационной информации
$mail->setFrom(Zend_Registry::get('config')->email->from->email,
Zend_Registry::get('config')->email->from->name);
// добавление темы и тела, отправки
$mail->setSubject(trim($subject));
$mail->setBodyText(trim($body));
$mail->send();
}
}
?>
в чем проблема? где я не доуказал, что используется utf-8 кодировка? база данных в кодировке utf-8, файлы пхп тоже в ней. В заранее благоддарен