add new ConfigService

This commit is contained in:
Jianxuan Li 2014-11-14 18:02:49 +08:00
parent 65b89e1870
commit 3c393a9144
7 changed files with 112 additions and 45 deletions

View File

@ -9,13 +9,21 @@
namespace Westdc\EventModel;
use Westdc\EventModel\Handles;
use Westdc\Service\AbstractServiceManager;
class HandleFactory {
class HandleFactory extends AbstractServiceManager{
static function get($handleName)
public function get($handleName)
{
$handleName = __NAMESPACE__ . "\\Handles\\" . $handleName;
return new $handleName();
$config = $this->getServiceManager()->get('Config');
$handleName = $config->get('application.ini')->HandlesNamespace . "\\" . $handleName;
if(class_exists($handleName))
{
return new $handleName();
}
}
}

View File

@ -9,12 +9,15 @@
namespace Westdc\EventModel;
use Westdc\EventModel\Listeners;
use Westdc\Service\AbstractServiceManager;
class ListenerFactory {
class ListenerFactory extends AbstractServiceManager{
static function get($listenerName,$handle = "")
public function get($listenerName,$handle = "")
{
$listenerName = __NAMESPACE__ . "\\Listeners\\" . $listenerName;
$config = $this->getServiceManager()->get('Config');
$listenerName = $config->get('application.ini')->ListenersNamespace . "\\" . $listenerName;
if(empty($handle))
return new $listenerName();

View File

@ -1,22 +1,17 @@
<?php
namespace Westdc\Member;
use Zend\EventManager\EventManagerInterface;
use Zend\EventManager\EventManager;
use Zend\EventManager\EventManagerAwareInterface;
use Westdc\EventModel\AbstractEventManager;
use Zend\Authentication\AuthenticationService;
use Zend\Authentication\Storage\Session as SessionStorage;
use Westdc\Helpers\View as view;
use Westdc\Helpers\Assist as view;
use Westdc\Helpers\Config;
use Westdc\Helpers\Dbh as dbh;
use Westdc\Helpers\PDO as Db;
use Westdc\Helpers\Db as Zend_Db;
use Westdc\Db\PDO as Db;
use Westdc\Mail\Mail;
use Westdc\User\Listener\AccountListener as Listener;
use Westdc\User\Listener\PwdListener;
use Westdc\User\Member;
class Account implements EventManagerAwareInterface
class Account extends AbstractEventManager
{
public $memberTable = "tbl_member";
public $FieldUsername = "username";
@ -36,29 +31,8 @@ class Account implements EventManagerAwareInterface
{
$this->db = new Db();
$this->config = Config::get();
$Listener = new Listener();
$this->getEventManager()->attachAggregate($Listener);
}
public function setEventManager(EventManagerInterface $events)
{
$events->setIdentifiers(array(
__CLASS__,
get_called_class(),
));
$this->events = $events;
return $this;
}
public function getEventManager()
{
if (NULL === $this->events) {
$this->setEventManager(new EventManager());
}
return $this->events;
}
//获取账号信息,数组
public function getAccountInfo($id = 0)
{

View File

@ -8,8 +8,6 @@
namespace Westdc\Service;
use Westdc\Service\ServiceManager;
abstract class AbstractServiceManager {
public function getServiceManager()

View File

@ -8,13 +8,9 @@
namespace Westdc\Service\ServiceAgent;
use Westdc\Member\Account;
use Westdc\Member\Account as Westdc_Account;
class User extends Account implements WestdcConfigureInterface{
class Account extends Westdc_Account{
private function init()
{
}
}

View File

@ -0,0 +1,57 @@
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2014/11/14
* Time: 11:34
*/
namespace Westdc\Service\ServiceAgent;
use Zend\Config\Config as Zend_Config;
use Zend\Config\Reader\Ini as ReaderIni;
class Config {
public function get($configName = "")
{
if(!defined(CONFIG_PATH))
{
throw new RuntimeException('Not found the config files path');
}
$config_path = CONFIG_PATH;
if(empty($configName))
$configName = "global.php";
if(!preg_match("/(\\/|\\)$/",$config_path))
{
$config_path .= PATH_SEPARATOR;
}
$configFile = $config_path . $configName;
unset($config_path);
unset($configName);
if(!file_exists($configFile))
{
return NULL;
}
$configFileExt = pathinfo($configFile,PATHINFO_EXTENSION);
if($configFileExt == "php")
{
return new Zend_Config(include_once($configFile));
}
if($configFileExt == 'ini')
{
return new ReaderIni($configFile);
}
}
}

View File

@ -0,0 +1,31 @@
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2014/11/14
* Time: 11:43
*/
namespace Westdc\Service\ServiceAgent;
use Westdc\EventModel\ListenerFactory;
use Westdc\EventModel\HandleFactory;
class Event {
public function getListener($listenerName,$handleName = ""){
$ListenerFactory = new ListenerFactory();
if(empty($handleName))
{
$ListenerFactory->get($listenerName);
}else{
$ListenerFactory->get($listenerName,$handleName);
}
}
public function getHandle()
{
}
}