Пример #1
0
 /**
  * Creates a new user session manager object.
  *
  * @param ConfigManager $configManager
  * @param UserManager $userManager
  * @param SessionManager $sessionManager;
  */
 public function __construct(ConfigManager $configManager, UserManager $userManager, SessionManager $sessionManager)
 {
     $this->configManager = $configManager;
     $this->userManager = $userManager;
     $this->sessionManager = $sessionManager;
     /* Prepare session validators */
     $sessionManager->getValidatorChain()->attach('session.validate', array(new HttpUserAgent(), 'isValid'));
     $sessionManager->getValidatorChain()->attach('session.validate', array(new RemoteAddr(), 'isValid'));
 }
Пример #2
0
 public function initSession($config, \Zend\ServiceManager\ServiceManager $sm)
 {
     $sessionConfig = new SessionConfig();
     $sessionConfig->setOptions($config);
     $sessionManager = new SessionManager($sessionConfig);
     $sessionManager->getValidatorChain()->attach('session.validate', array(new HttpUserAgent(), 'isValid'));
     $sessionManager->getValidatorChain()->attach('session.validate', array(new RemoteAddr(), 'isValid'));
     $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
     $tableGateway = new TableGateway(new TableIdentifier('sessions', 'users'), $dbAdapter);
     $saveHandler = new DbTableGateway($tableGateway, new DbTableGatewayOptions());
     $sessionManager->setSaveHandler($saveHandler);
     $sessionManager->start();
     Container::setDefaultManager($sessionManager);
 }
Пример #3
0
 public function getServiceConfig()
 {
     return array('factories' => array('JYLibrary\\Model\\SessionTable' => function ($sm) {
         $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
         $table = new SessionTable($dbAdapter);
         return $table;
     }, 'Zend\\Session\\SessionManager' => function ($sm) {
         $config = $sm->get('config');
         if (isset($config['session'])) {
             $session = $config['session'];
             $sessionConfig = null;
             if (isset($session['config'])) {
                 $class = isset($session['config']['class']) ? $session['config']['class'] : 'Zend\\Session\\Config\\SessionConfig';
                 $options = isset($session['config']['options']) ? $session['config']['options'] : array();
                 $sessionConfig = new $class();
                 $sessionConfig->setOptions($options);
             }
             $sessionStorage = null;
             if (isset($session['storage'])) {
                 $class = $session['storage'];
                 $sessionStorage = new $class();
             }
             $sessionSaveHandler = null;
             if (isset($session['save_handler'])) {
                 // class should be fetched from service manager since it will require constructor arguments
                 $sessionSaveHandler = $sm->get($session['save_handler']);
             }
             $sessionManager = new SessionManager($sessionConfig, $sessionStorage, $sessionSaveHandler);
             if (isset($session['validator'])) {
                 $chain = $sessionManager->getValidatorChain();
                 foreach ($session['validator'] as $validator) {
                     $validator = new $validator();
                     $chain->attach('session.validate', array($validator, 'isValid'));
                 }
             }
         } else {
             $sessionManager = new SessionManager();
             /*
             $adapter = new \Zend\Db\Adapter\Adapter(array(
             	'driver' => 'Mysqli',
             	'database' => 'jymobile',
             	'username' => 'root',
             	'password' => '',
             	'hostname'=>'localhost'
             ));
             
             $tableGateway = new TableGateway('session', $adapter);
             $saveHandler = new DbTableGateway($tableGateway, new DbTableGatewayOptions());
             $manager = new SessionManager();
             $manager->setSaveHandler($saveHandler);
             
             //echo '×Ô¶¨ÒåsessionManager';
             */
         }
         Container::setDefaultManager($sessionManager);
         return $sessionManager;
     }));
 }
 public function getSessionManager()
 {
     $sessionManager = new ZendSessionManager($this->getConfigObject(), $this->getStorageObject(), $this->getSessionSaveHandler());
     $chain = $sessionManager->getValidatorChain();
     foreach ($this->getSessionOptions()->getValidators() as $validatorName) {
         $validator = $this->validatorPluginManager->get($validatorName);
         $chain->attach('session.validate', array($validator, 'isValid'));
     }
     SessionContainer::setDefaultManager($sessionManager);
     return $sessionManager;
 }
Пример #5
0
 /**
     COPY DARI SIMBRA :D
     **/
 public function getServiceConfig()
 {
     return array('factories' => array('Fauth\\Model\\User' => function ($sm) {
         $adapter = $sm->get('TNDE\\DbAdapter');
         $table = new UserDbTable($adapter);
         return $table;
     }, 'Zend\\Session\\SessionManager' => function ($sm) {
         $config = $sm->get('config');
         if (isset($config['session'])) {
             $session = $config['session'];
             $sessionConfig = null;
             if (isset($session['config'])) {
                 $class = isset($session['config']['class']) ? $session['config']['class'] : 'Zend\\Session\\Config\\SessionConfig';
                 $options = isset($session['config']['options']) ? $session['config']['options'] : array();
                 $sessionConfig = new $class();
                 $sessionConfig->setOptions($options);
             }
             $sessionStorage = null;
             if (isset($session['storage'])) {
                 $class = $session['storage'];
                 $sessionStorage = new $class();
             }
             $sessionSaveHandler = null;
             if (isset($session['save_handler'])) {
                 // class should be fetched from service manager since it will require constructor arguments
                 $sessionSaveHandler = $sm->get($session['save_handler']);
             }
             $sessionManager = new SessionManager($sessionConfig, $sessionStorage, $sessionSaveHandler);
             if (isset($session['validator'])) {
                 $chain = $sessionManager->getValidatorChain();
                 foreach ($session['validator'] as $validator) {
                     $validator = new $validator();
                     $chain->attach('session.validate', array($validator, 'isValid'));
                 }
             }
         } else {
             $sessionManager = new SessionManager();
         }
         Container::setDefaultManager($sessionManager);
         return $sessionManager;
     }, 'Fauth\\sessionContainer' => function ($sm) {
         $container = new Container('container');
         if (!isset($container->init)) {
             $session = $sm->get('Zend\\Session\\SessionManager');
             $session->regenerateId(true);
             $container->init = 1;
         }
         return $container;
     }, 'Fauth\\authService' => function ($sm) {
         $container = $sm->get('Fauth\\sessionContainer');
         $authService = new AuthService($container);
         return $authService;
     }));
 }
 /**
  * Registers services on the given app.
  *
  * This method should only be used to configure services and parameters.
  * It should not get services.
  *
  * @param Application $app
  */
 public function register(Application $app)
 {
     $app['zend.session.handler._factory'] = $app->protect(function ($type, $options) use($app) {
         switch ($type) {
             case 'SilexCMF\\ZendSession\\SaveHandler\\Db':
                 return new Db($app[$options['connection']], new DbOptions());
             case 'Zend\\Session\\SaveHandler\\MongoDB':
                 return new MongoDB($app['mongo'], new MongoDBOptions($options));
         }
         return null;
     });
     $app['zend.session.manager'] = $app->share(function () use($app) {
         $options = isset($app['zend.session.options']) ? $app['zend.session.options'] : [];
         $config = null;
         if (isset($options['config'])) {
             $config = new SessionConfig();
             $config->setOptions($options['config']);
         }
         $storage = null;
         if (isset($options['storage'])) {
             $storage = Factory::factory($options['storage']['type'], isset($options['storage']['options']) ? $options['storage']['options'] : []);
         }
         $handler = null;
         if (isset($options['handler'])) {
             $handler = $app['zend.session.handler._factory']($options['handler']['type'], isset($options['handler']['options']) ? $options['handler']['options'] : []);
         }
         $manager = new SessionManager($config, $storage, $handler);
         if (isset($options['validators'])) {
             /* @var $request \Symfony\Component\HttpFoundation\Request */
             $request = $app['request_stack']->getCurrentRequest();
             foreach ($options['validators'] as $validator) {
                 switch ($validator) {
                     case 'Zend\\Session\\Validator\\HttpUserAgent':
                         $validator = new $validator($request->server->get('HTTP_USER_AGENT'));
                         break;
                     case 'Zend\\Session\\Validator\\RemoteAddr':
                         $validator = new $validator($request->server->get('REMOTE_ADDR'));
                         break;
                     default:
                         $validator = new $validator();
                 }
                 $manager->getValidatorChain()->attach('session.validate', array($validator, 'isValid'));
             }
         }
         Container::setDefaultManager($manager);
         return $manager;
     });
 }
 public function createService(ServiceLocatorInterface $sm)
 {
     $config = $sm->get('config');
     if (isset($config['session'])) {
         $session = $config['session'];
         $sessionConfig = null;
         //если есть ключ, проверить базовые настройки
         if (isset($session['config'])) {
             $class = isset($session['config']['class']) ? $session['config']['class'] : 'Zend\\Session\\Config\\SessionConfig';
             $options = isset($session['config']['options']) ? $session['config']['options'] : array();
             $sessionConfig = new $class();
             $sessionConfig->setOptions($options);
         }
         //настройка типа хранилища
         $sessionStorage = null;
         if (isset($session['storage'])) {
             $class = $session['storage'];
             $sessionStorage = new $class();
         }
         //не настроено
         $sessionSaveHandler = null;
         if (isset($session['save_handler'])) {
             // class should be fetched from service manager since
             // it will require constructor arguments
             $sessionSaveHandler = $sm->get($session['save_handler']);
         }
         $sessionManager = new SessionManager($sessionConfig, $sessionStorage, $sessionSaveHandler);
         //применить валидаторы
         if (isset($session['validators'])) {
             $chain = $sessionManager->getValidatorChain();
             foreach ($session['validators'] as $validator) {
                 $validator = new $validator();
                 $chain->attach('session.validate', array($validator, 'isValid'));
             }
         }
     } else {
         //если нет конфига - возвращаем по умолчанию
         //            $sessionManager = new SessionManager();
         $sessionManager = parent::createService($services);
     }
     //установка для контейнеров
     Container::setDefaultManager($sessionManager);
     return $sessionManager;
 }
Пример #8
0
 public function initSession($config)
 {
     $sessionConfig = new SessionConfig();
     $sessionConfig->setOptions($config);
     $sessionManager = new SessionManager($sessionConfig);
     $sessionManager->getValidatorChain()->attach('session.validate', array(new HttpUserAgent(), 'isValid'));
     /*
               $sessionManager->getValidatorChain()
               ->attach(
                 'session.validate',
                   array(new RemoteAddr(), 'isValid')
               );*/
     $sessionManager->start();
     /**
      * Optional: If you later want to use namespaces, you can already store the 
      * Manager in the shared (static) Container (=namespace) field
      */
     Container::setDefaultManager($sessionManager);
 }
 public function createService(ServiceLocatorInterface $sm)
 {
     $config = $sm->get('config');
     $sessionManager = null;
     if (isset($config['uthando_session_manager'])) {
         $session = $config['uthando_session_manager'];
         $sessionConfig = null;
         if (isset($session['config'])) {
             $class = isset($session['config']['class']) ? $session['config']['class'] : 'Zend\\Session\\Config\\SessionConfig';
             $options = isset($session['config']['options']) ? $session['config']['options'] : [];
             $sessionConfig = new $class();
             $sessionConfig->setOptions($options);
         }
         $sessionStorage = null;
         if (isset($session['storage'])) {
             $class = $session['storage'];
             $sessionStorage = new $class();
         }
         $sessionSaveHandler = null;
         if (isset($session['save_handler'])) {
             // class should be fetched from service manager since it will require constructor arguments
             $sessionSaveHandler = $sm->get($session['save_handler']);
         }
         $sessionManager = new SessionManager($sessionConfig, $sessionStorage, $sessionSaveHandler);
         if (isset($session['validators'])) {
             $chain = $sessionManager->getValidatorChain();
             foreach ($session['validators'] as $validator) {
                 $validator = new $validator();
                 $chain->attach('session.validate', [$validator, 'isValid']);
             }
         }
     }
     if (null === $sessionManager) {
         $sessionManager = new SessionManager();
     }
     Container::setDefaultManager($sessionManager);
     return $sessionManager;
 }
Пример #10
0
 public function getServiceConfig()
 {
     return array('factories' => array('Zend\\Session\\SessionManager' => function ($sm) {
         $config = $sm->get('config');
         if (isset($config['session'])) {
             $session = $config['session'];
             $sessionConfig = null;
             if (isset($session['config'])) {
                 $class = isset($session['config']['class']) ? $session['config']['class'] : 'Zend\\Session\\Config\\SessionConfig';
                 $options = isset($session['config']['options']) ? $session['config']['options'] : array();
                 $sessionConfig = new $class();
                 $sessionConfig->setOptions($options);
             }
             $sessionStorage = null;
             if (isset($session['storage'])) {
                 $class = $session['storage'];
                 $sessionStorage = new $class();
             }
             $sessionSaveHandler = null;
             if (isset($session['save_handler'])) {
                 // class should be fetched from service manager since it will require constructor arguments
                 $sessionSaveHandler = $sm->get($session['save_handler']);
             }
             $sessionManager = new SessionManager($sessionConfig, $sessionStorage, $sessionSaveHandler);
             if (isset($session['validator'])) {
                 $chain = $sessionManager->getValidatorChain();
                 foreach ($session['validator'] as $validator) {
                     $validator = new $validator();
                     $chain->attach('session.validate', array($validator, 'isValid'));
                 }
             }
         } else {
             $sessionManager = new SessionManager();
         }
         Container::setDefaultManager($sessionManager);
         return $sessionManager;
     }));
 }
Пример #11
0
 public function getServiceConfig()
 {
     return array('factories' => array('UserTable' => function ($sm) {
         $adapter = $sm->get('zend_db_adapter');
         $table = new UserTable($adapter);
         return $table;
     }, 'ProvTable' => function ($sm) {
         $adapter = $sm->get('zend_db_adapter');
         $table = new ProvTable($adapter);
         return $table;
     }, 'AuthTable' => function ($sm) {
         $adapter = $sm->get('zend_db_adapter');
         $table = new AuthTable($adapter);
         return $table;
     }, 'UserCredential' => function ($sm) {
         $adapter = $sm->get('zend_db_adapter');
         $table = new CredentialTable($adapter);
         return $table;
     }, 'Zend\\Session\\SessionManager' => function ($sm) {
         $config = $sm->get('config');
         if (isset($config['session'])) {
             $session = $config['session'];
             $sessionConfig = null;
             if (isset($session['config'])) {
                 $class = isset($session['config']['class']) ? $session['config']['class'] : 'Zend\\Session\\Config\\SessionConfig';
                 $options = isset($session['config']['options']) ? $session['config']['options'] : array();
                 $sessionConfig = new $class();
                 $sessionConfig->setOptions($options);
             }
             $sessionStorage = null;
             if (isset($session['storage'])) {
                 $class = $session['storage'];
                 $sessionStorage = new $class();
             }
             $sessionSaveHandler = null;
             if (isset($session['save_handler'])) {
                 // class should be fetched from service
                 // manager since it will require constructor
                 // arguments
                 $sessionSaveHandler = $sm->get($session['save_handler']);
             }
             $sessionManager = new SessionManager($sessionConfig, $sessionStorage, $sessionSaveHandler);
             if (isset($session['validators'])) {
                 $chain = $sessionManager->getValidatorChain();
                 foreach ($session['validators'] as $validator) {
                     foreach ($validator as $validatorCurrent) {
                         $validator = new $validatorCurrent();
                         $chain->attach('session.validate', array($validator, 'isValid'));
                     }
                 }
             }
         } else {
             $sessionManager = new SessionManager();
         }
         Container::setDefaultManager($sessionManager);
         return $sessionManager;
     }, 'mail.transport' => function ($sm) {
         $config = $sm->get('Config');
         $transport = new Smtp();
         $transport->setOptions(new SmtpOptions($config['mail']['transport']['options']));
         return $transport;
     }, 'mail.transport2' => function ($sm) {
         $config = $sm->get('Config');
         $transport = new Smtp();
         $transport->setOptions(new SmtpOptions($config['mail2']['transport']['options']));
         return $transport;
     }, 'auth_service' => function ($sm) {
         $auth = new AuthenticationService();
         return $auth;
     }));
 }
Пример #12
0
 public function getServiceConfig()
 {
     return array('invokables' => array('service_universal_dashboard_main' => 'DDD\\Service\\UniversalDashboard\\Main', 'service_accommodations' => 'DDD\\Service\\Accommodations', 'service_upload' => 'DDD\\Service\\Upload', 'service_partners' => 'DDD\\Service\\Partners', 'service_partner_gcm_value' => 'DDD\\Service\\PartnerGcmValue', 'service_currency_currency' => 'DDD\\Service\\Currency\\Currency', 'service_currency_currency_vault' => 'DDD\\Service\\Currency\\CurrencyVault', 'service_profile' => 'DDD\\Service\\Profile', 'service_location' => 'DDD\\Service\\Location', 'service_review' => 'DDD\\Service\\Review', 'service_booking' => 'DDD\\Service\\Booking', 'service_blog' => 'DDD\\Service\\Blog', 'service_news' => 'DDD\\Service\\News', 'service_language' => 'DDD\\Service\\Language', 'service_translation' => 'DDD\\Service\\Translation', 'service_textline' => 'DDD\\Service\\Textline', 'service_channel_manager' => 'DDD\\Service\\ChannelManager', 'service_queue_inventory_synchronization_queue' => 'DDD\\Service\\Queue\\InventorySynchronizationQueue', 'service_distribution' => 'DDD\\Service\\Distribution', 'service_queue_email_queue' => 'DDD\\Service\\Queue\\EmailQueue', 'service_apartment_group' => 'DDD\\Service\\ApartmentGroup', 'service_apartment_group_main' => 'DDD\\Service\\ApartmentGroup\\Main', 'service_apartment_group_deactivate' => 'DDD\\Service\\ApartmentGroup\\Deactivate', 'service_apartment_group_usages_concierge' => 'DDD\\Service\\ApartmentGroup\\Usages\\Concierge', 'service_apartment_group_usages_apartel' => 'DDD\\Service\\ApartmentGroup\\Usages\\Apartel', 'service_apartment_group_usages_building' => 'DDD\\Service\\ApartmentGroup\\Usages\\Building', 'service_user' => 'DDD\\Service\\User', 'service_user_main' => 'DDD\\Service\\User\\Main', 'service_user_documents' => 'DDD\\Service\\User\\Documents', 'service_user_evaluations' => 'DDD\\Service\\User\\Evaluations', 'service_user_schedule' => 'DDD\\Service\\User\\Schedule', 'service_user_disable_user' => 'DDD\\Service\\User\\DisableUser', 'service_user_permissions' => 'DDD\\Service\\User\\Permissions', 'service_user_vacation' => 'DDD\\Service\\User\\Vacation', 'service_user_external_account' => 'DDD\\Service\\User\\ExternalAccount', 'service_user_salary_scheme' => 'DDD\\Service\\User\\SalaryScheme', 'service_apartment_amenities' => 'DDD\\Service\\Apartment\\Amenities', 'service_apartment_amenity_items' => 'DDD\\Service\\Apartment\\AmenityItems', 'service_apartment_main' => 'DDD\\Service\\Apartment\\Main', 'service_apartment_general' => 'DDD\\Service\\Apartment\\General', 'service_apartment_details' => 'DDD\\Service\\Apartment\\Details', 'service_apartment_location' => 'DDD\\Service\\Apartment\\Location', 'service_apartment_rate' => 'DDD\\Service\\Apartment\\Rate', 'service_apartment_inventory' => 'DDD\\Service\\Apartment\\Inventory', 'service_apartment_review' => 'DDD\\Service\\Apartment\\Review', 'service_apartment_furniture' => 'DDD\\Service\\Apartment\\Furniture', 'service_apartment_statistics' => 'DDD\\Service\\Apartment\\Statistics', 'service_apartment_logs' => 'DDD\\Service\\Apartment\\Logs', 'service_parking_general' => 'DDD\\Service\\Parking\\General', 'service_parking_inventory' => 'DDD\\Service\\Parking\\Inventory', 'service_parking_spot' => 'DDD\\Service\\Parking\\Spot', 'service_parking_spot_inventory' => 'DDD\\Service\\Parking\\Spot\\Inventory', 'service_apartment_group_facilities' => 'DDD\\Service\\ApartmentGroup\\Facilities', 'service_apartment_group_facility_items' => 'DDD\\Service\\ApartmentGroup\\FacilityItems', 'service_apartment_group_building_details' => 'DDD\\Service\\ApartmentGroup\\BuildingDetails', 'service_penalty_calculation' => 'DDD\\Service\\PenaltyCalculation', 'service_task' => 'DDD\\Service\\Task', 'service_group_inventory' => 'DDD\\Service\\GroupInventory', 'service_geolite_country' => 'DDD\\Service\\GeoliteCountry', 'service_booking_management' => 'DDD\\Service\\Booking\\BookingManagement', 'service_booking_booking_ticket' => 'DDD\\Service\\Booking\\BookingTicket', 'service_booking_charge' => 'DDD\\Service\\Booking\\Charge', 'service_booking_bank_transaction' => 'DDD\\Service\\Booking\\BankTransaction', 'service_booking_booking_addon' => 'DDD\\Service\\Booking\\BookingAddon', 'service_booking_reservation_issues' => 'DDD\\Service\\Booking\\ReservationIssues', 'service_booking_attachment' => 'DDD\\Service\\Booking\\Attachment', 'service_money_account' => 'DDD\\Service\\MoneyAccount', 'service_money_account_attachment' => 'DDD\\Service\\MoneyAccountAttachment', 'service_psp' => 'DDD\\Service\\Psp', 'service_universal_dashboard_widget_ki_not_viewed' => 'DDD\\Service\\UniversalDashboard\\Widget\\KINotViewed', 'service_universal_dashboard_widget_no_collection' => 'DDD\\Service\\UniversalDashboard\\Widget\\NoCollection', 'service_universal_dashboard_widget_collect_from_customer' => 'DDD\\Service\\UniversalDashboard\\Widget\\CollectFromCustomer', 'service_universal_dashboard_widget_pay_to_customer' => 'DDD\\Service\\UniversalDashboard\\Widget\\PayToCustomer', 'service_universal_dashboard_widget_to_be_settled' => 'DDD\\Service\\UniversalDashboard\\Widget\\ToBeSettled', 'service_universal_dashboard_widget_pending_transaction' => 'DDD\\Service\\UniversalDashboard\\Widget\\PendingTransaction', 'service_universal_dashboard_widget_collect_from_partner' => 'DDD\\Service\\UniversalDashboard\\Widget\\CollectFromPartner', 'service_universal_dashboard_widget_validate_cc' => 'DDD\\Service\\UniversalDashboard\\Widget\\ValidateCC', 'service_universal_dashboard_widget_pending_cancellation' => 'DDD\\Service\\UniversalDashboard\\Widget\\PendingCancelation', 'service_universal_dashboard_widget_in_registration_process' => 'DDD\\Service\\UniversalDashboard\\Widget\\InRegistrationProcess', 'service_universal_dashboard_widget_suspended_apartments' => 'DDD\\Service\\UniversalDashboard\\Widget\\SuspendedApartments', 'service_universal_dashboard_widget_pinned_reservation' => 'DDD\\Service\\UniversalDashboard\\Widget\\PinnedReservation', 'service_universal_dashboard_widget_resolve_comments' => 'DDD\\Service\\UniversalDashboard\\Widget\\ResolveComments', 'service_universal_dashboard_widget_not_charged_apartel_reservations' => 'DDD\\Service\\UniversalDashboard\\Widget\\NotChargedApartelReservations', 'service_universal_dashboard_widget_overbooking_reservations' => 'DDD\\Service\\UniversalDashboard\\Widget\\OverbookingReservations', 'service_universal_dashboard_widget_upcoming_evaluations' => 'DDD\\Service\\UniversalDashboard\\Widget\\UpcomingEvaluations', 'service_universal_dashboard_widget_evaluation_less_employees' => 'DDD\\Service\\UniversalDashboard\\Widget\\EvaluationLessEmployees', 'service_universal_dashboard_widget_time_off_requests' => 'DDD\\Service\\UniversalDashboard\\Widget\\TimeOffRequests', 'service_ota_distribution' => 'DDD\\Service\\OTADistribution', 'service_website_cache' => 'DDD\\Service\\Website\\Cache', 'service_apartment_ota_distribution' => 'DDD\\Service\\Apartment\\OTADistribution', 'service_notifications' => 'DDD\\Service\\Notifications', 'service_apartment_review_category' => 'DDD\\Service\\Apartment\\ReviewCategory', 'service_taxes' => 'DDD\\Service\\Taxes', 'service_team_team' => 'DDD\\Service\\Team\\Team', 'service_office' => 'DDD\\Service\\Office', 'service_finance_customer' => 'DDD\\Service\\Finance\\Customer', 'service_finance_account_receivable_chart' => 'DDD\\Service\\Finance\\AccountReceivable\\Chart', 'service_common' => 'DDD\\Service\\Common', 'service_fraud' => 'DDD\\Service\\Fraud', 'service_recruitment_applicant' => 'DDD\\Service\\Recruitment\\Applicant', 'service_reservation_main' => 'DDD\\Service\\Reservation\\Main', 'service_reservation_worst_cxl_policy_selector' => 'DDD\\Service\\Reservation\\WorstCXLPolicySelector', 'service_reservation_partner_specific' => 'DDD\\Service\\Reservation\\PartnerSpecific', 'service_availability' => 'DDD\\Service\\Availability', 'service_email_sender' => 'DDD\\Service\\EmailSender', 'service_frontier' => 'DDD\\Service\\Frontier', 'service_finance_transaction_account' => 'DDD\\Service\\Finance\\TransactionAccount', 'service_team_usages_base' => 'DDD\\Service\\Team\\Usages\\Base', 'service_team_usages_security' => 'DDD\\Service\\Team\\Usages\\Security', 'service_team_usages_frontier' => 'DDD\\Service\\Team\\Usages\\Frontier', 'service_team_usages_hiring' => 'DDD\\Service\\Team\\Usages\\Hiring', 'service_team_usages_procurement' => 'DDD\\Service\\Team\\Usages\\Procurement', 'service_customer' => 'DDD\\Service\\Customer', 'service_reservation_rate_selector' => 'DDD\\Service\\Reservation\\RateSelector', 'service_lock_general' => 'DDD\\Service\\Lock\\General', 'service_lock_usages_apartment' => 'DDD\\Service\\Lock\\Usages\\Apartment', 'service_lock_usages_building' => 'DDD\\Service\\Lock\\Usages\\Building', 'service_lock_usages_parking' => 'DDD\\Service\\Lock\\Usages\\Parking', 'service_reservation_charge_authorization' => 'DDD\\Service\\Reservation\\ChargeAuthorization', 'service_cubilis_connection' => 'DDD\\Service\\Cubilis\\Connection', 'service_reservation_identificator' => 'DDD\\Service\\Reservation\\Identificator', 'service_tag_tag' => 'DDD\\Service\\Tag\\Tag', 'service_warehouse_category' => 'DDD\\Service\\Warehouse\\Category', 'service_warehouse_storage' => 'DDD\\Service\\Warehouse\\Storage', 'service_finance_budget' => 'DDD\\Service\\Finance\\Budget', 'service_warehouse_asset' => 'DDD\\Service\\Warehouse\\Asset', 'service_document_document' => 'DDD\\Service\\Document\\Document', 'service_unit_testing' => 'DDD\\Service\\UnitTesting', 'service_cache_memcache' => 'DDD\\Service\\Cache\\Memcache', 'library_service_google_auth' => 'Library\\Service\\GoogleAuth', 'service_website_search' => 'DDD\\Service\\Website\\Search', 'service_website_apartment' => 'DDD\\Service\\Website\\Apartment'), 'factories' => array('Zend\\Session\\SessionManager' => function ($sm) {
         $config = $sm->get('config');
         if (isset($config['session'])) {
             $session = $config['session'];
             $sessionSaveHandler = null;
             $sessionStorage = null;
             $sessionConfig = null;
             if (isset($session['config'])) {
                 $class = isset($session['config']['class']) ? $session['config']['class'] : 'Zend\\Session\\Config\\SessionConfig';
                 $options = isset($session['config']['options']) ? $session['config']['options'] : [];
                 $sessionConfig = new $class();
                 $sessionConfig->setOptions($options);
             }
             if (isset($session['storage'])) {
                 $class = $session['storage'];
                 $sessionStorage = new $class();
             }
             if (isset($session['save_handler'])) {
                 // class should be fetched from service manager since it will require constructor arguments
                 $sessionSaveHandler = $sm->get($session['save_handler']);
             }
             $sessionManager = new SessionManager($sessionConfig, $sessionStorage, $sessionSaveHandler);
             if (isset($session['validator'])) {
                 $chain = $sessionManager->getValidatorChain();
                 foreach ($session['validator'] as $validator) {
                     $validator = new $validator();
                     $chain->attach('session.validate', [$validator, 'isValid']);
                 }
             }
         } else {
             $sessionManager = new SessionManager();
         }
         Container::setDefaultManager($sessionManager);
         return $sessionManager;
     }, 'Library\\Authentication\\BackofficeAuthenticationService' => function ($sm) {
         $authAdapter = new BcryptDbAdapter($sm->get('dbadapter'), DbTables::TBL_BACKOFFICE_USERS, 'email', 'password');
         $authStorage = new AuthStorage();
         $backofficeAuthenticationService = new BackofficeAuthenticationService($authStorage, $authAdapter);
         $backofficeAuthenticationService->setServiceManager($sm);
         return $backofficeAuthenticationService;
     }, 'MainNavigation' => function ($sm) {
         $authUser = $sm->get('library_backoffice_auth');
         if (!$authUser->hasIdentity()) {
             $url = $sm->get('router')->assemble([], ['name' => 'backoffice_user_login']);
             $response = $sm->get('response');
             $response->getHeaders()->addHeaderLine('Location', $url);
             $response->setStatusCode(302);
             $response->sendHeaders();
             return $response;
         }
         $navigation = new BackofficeNavigation();
         $navigation->setName('main');
         return $navigation->createService($sm);
     }, 'ProfileNavigation' => function ($sm) {
         $navigation = new BackofficeNavigation();
         $navigation->setName('profile');
         return $navigation->createService($sm);
     }, 'NotificationsNavigation' => function ($sm) {
         $navigation = new BackofficeNavigation();
         $navigation->setName('notifications');
         return $navigation->createService($sm);
     }, 'ChannelManager' => function ($sm) {
         return new ChannelManager($sm);
     }, 'ActionLogger' => function ($sm) {
         return new \Library\ActionLogger\Logger($sm);
     }, 'CurrencyList' => function ($sm) {
         return $sm->get('dao_currency_currency')->getAllCurrencies();
     }, 'DDD\\Service\\Location' => function ($sm) {
         $as = new \DDD\Service\Location();
         $as->setServiceLocator($sm);
         return $as;
     }, 'DDD\\Service\\Website\\Cache' => function ($sm) {
         $service = new \DDD\Service\Website\Cache();
         $service->setServiceLocator($sm);
         return $service;
     }, 'DDD\\Service\\Notifications' => function ($sm) {
         $service = new \DDD\Service\Notifications();
         $service->setServiceLocator($sm);
         return $service;
     }, 'DDD\\Dao\\User\\Users' => function ($sm) {
         $as = new \DDD\Dao\User\Users($sm);
         return $as;
     }, 'DDD\\Dao\\User\\UserManager' => function ($sm) {
         $as = new \DDD\Dao\User\UserManager($sm);
         return $as;
     }, 'DDD\\Dao\\User\\UserGroup' => function ($sm) {
         $as = new \DDD\Dao\User\UserGroup($sm);
         return $as;
     }, 'DDD\\Dao\\User\\Schedule\\Schedule' => function ($sm) {
         $as = new \DDD\Dao\User\Schedule\Schedule($sm);
         return $as;
     }, 'DDD\\Dao\\User\\Schedule\\Inventory' => function ($sm) {
         $as = new \DDD\Dao\User\Schedule\Inventory($sm);
         return $as;
     }, 'DDD\\Dao\\User\\Document\\Documents' => function ($sm) {
         $as = new \DDD\Dao\User\Document\Documents($sm);
         return $as;
     }, 'DDD\\Dao\\User\\Document\\DocumentTypes' => function ($sm) {
         $as = new \DDD\Dao\User\Document\DocumentTypes($sm);
         return $as;
     }, 'DDD\\Dao\\User\\Evaluation\\Evaluations' => function ($sm) {
         $as = new \DDD\Dao\User\Evaluation\Evaluations($sm);
         return $as;
     }, 'DDD\\Dao\\User\\Evaluation\\EvaluationItems' => function ($sm) {
         $as = new \DDD\Dao\User\Evaluation\EvaluationItems($sm);
         return $as;
     }, 'DDD\\Dao\\User\\Evaluation\\EvaluationTypes' => function ($sm) {
         $as = new \DDD\Dao\User\Evaluation\EvaluationTypes($sm);
         return $as;
     }, 'DDD\\Dao\\User\\Evaluation\\EvaluationValues' => function ($sm) {
         $as = new \DDD\Dao\User\Evaluation\EvaluationValues($sm);
         return $as;
     }, 'DDD\\Dao\\User\\Devices' => function ($sm) {
         $as = new \DDD\Dao\User\Devices($sm);
         return $as;
     }, 'DDD\\Dao\\MoneyAccount\\MoneyAccount' => function ($sm) {
         $as = new \DDD\Dao\MoneyAccount\MoneyAccount($sm);
         return $as;
     }, 'DDD\\Dao\\MoneyAccount\\MoneyAccountUsers' => function ($sm) {
         $as = new \DDD\Dao\MoneyAccount\MoneyAccountUsers($sm);
         return $as;
     }, 'DDD\\Dao\\MoneyAccount\\Attachment' => function ($sm) {
         $instance = new \DDD\Dao\MoneyAccount\Attachment($sm);
         return $instance;
     }, 'DDD\\Dao\\MoneyAccount\\AttachmentItem' => function ($sm) {
         $instance = new \DDD\Dao\MoneyAccount\AttachmentItem($sm);
         return $instance;
     }, 'DDD\\Dao\\Finance\\Supplier' => function ($sm) {
         $as = new \DDD\Dao\Finance\Supplier($sm);
         return $as;
     }, 'DDD\\Dao\\Geolocation\\Countries' => function ($sm) {
         $as = new \DDD\Dao\Geolocation\Countries($sm);
         return $as;
     }, 'DDD\\Dao\\Geolocation\\City' => function ($sm) {
         $as = new \DDD\Dao\Geolocation\City($sm);
         return $as;
     }, 'DDD\\Dao\\Currency\\Currency' => function ($sm) {
         $as = new \DDD\Dao\Currency\Currency($sm);
         return $as;
     }, 'DDD\\Dao\\Currency\\CurrencyVault' => function ($sm) {
         $as = new \DDD\Dao\Currency\CurrencyVault($sm);
         return $as;
     }, 'DDD\\Dao\\ActionLogs\\ActionLogs' => function ($sm) {
         return new \DDD\Dao\ActionLogs\ActionLogs($sm);
     }, 'DDD\\Dao\\ActionLogs\\LogsTeam' => function ($sm) {
         return new \DDD\Dao\ActionLogs\LogsTeam($sm);
     }, 'DDD\\Dao\\Finance\\Expense\\ExpenseItemCategories' => function ($sm) {
         $as = new \DDD\Dao\Finance\Expense\ExpenseItemCategories($sm);
         return $as;
     }, 'DDD\\Dao\\Accommodation\\Accommodations' => function ($sm) {
         $as = new \DDD\Dao\Accommodation\Accommodations($sm);
         return $as;
     }, 'DDD\\Dao\\User\\UserDashboards' => function ($sm) {
         $as = new \DDD\Dao\User\UserDashboards($sm);
         return $as;
     }, 'DDD\\Dao\\User\\UserGroups' => function ($sm) {
         $as = new \DDD\Dao\User\UserGroups($sm);
         return $as;
     }, 'DDD\\Dao\\User\\Dashboards' => function ($sm) {
         $as = new \DDD\Dao\User\Dashboards($sm);
         return $as;
     }, 'DDD\\Dao\\User\\Vacationdays' => function ($sm) {
         $as = new \DDD\Dao\User\Vacationdays($sm);
         return $as;
     }, 'DDD\\Dao\\User\\VacationRequest' => function ($sm) {
         $as = new \DDD\Dao\User\VacationRequest($sm);
         return $as;
     }, 'DDD\\Dao\\User\\ExternalAccount' => function ($sm) {
         $as = new \DDD\Dao\User\ExternalAccount($sm);
         return $as;
     }, 'DDD\\Dao\\User\\SalaryScheme' => function ($sm) {
         $as = new \DDD\Dao\User\SalaryScheme($sm);
         return $as;
     }, 'DDD\\Dao\\Apartment\\Amenities' => function ($sm) {
         $as = new \DDD\Dao\Apartment\Amenities($sm);
         return $as;
     }, 'DDD\\Dao\\Apartment\\AmenityItems' => function ($sm) {
         $as = new \DDD\Dao\Apartment\AmenityItems($sm);
         return $as;
     }, 'DDD\\Dao\\ApartmentGroup\\Facilities' => function ($sm) {
         $as = new \DDD\Dao\ApartmentGroup\Facilities($sm);
         return $as;
     }, 'DDD\\Dao\\ApartmentGroup\\FacilityItems' => function ($sm) {
         $as = new \DDD\Dao\ApartmentGroup\FacilityItems($sm);
         return $as;
     }, 'DDD\\Dao\\ApartmentGroup\\BuildingDetails' => function ($sm) {
         $as = new \DDD\Dao\ApartmentGroup\BuildingDetails($sm);
         return $as;
     }, 'DDD\\Dao\\ApartmentGroup\\BuildingSections' => function ($sm) {
         $as = new \DDD\Dao\ApartmentGroup\BuildingSections($sm);
         return $as;
     }, 'DDD\\Dao\\ApartmentGroup\\BuildingLots' => function ($sm) {
         $as = new \DDD\Dao\ApartmentGroup\BuildingLots($sm);
         return $as;
     }, 'DDD\\Dao\\ApartmentGroup\\ApartmentGroup' => function ($sm) {
         $as = new \DDD\Dao\ApartmentGroup\ApartmentGroup($sm);
         return $as;
     }, 'DDD\\Dao\\ApartmentGroup\\ApartmentGroupItems' => function ($sm) {
         $as = new \DDD\Dao\ApartmentGroup\ApartmentGroupItems($sm);
         return $as;
     }, 'DDD\\Dao\\ApartmentGroup\\ConciergeView' => function ($sm) {
         $as = new \DDD\Dao\ApartmentGroup\ConciergeView($sm);
         return $as;
     }, 'DDD\\Dao\\Booking\\Booking' => function ($sm) {
         $as = new \DDD\Dao\Booking\Booking($sm);
         return $as;
     }, 'DDD\\Dao\\ApartmentGroup\\ConciergeDashboardAccess' => function ($sm) {
         $as = new \DDD\Dao\ApartmentGroup\ConciergeDashboardAccess($sm);
         return $as;
     }, 'DDD\\Dao\\Partners\\Partners' => function ($sm) {
         $as = new \DDD\Dao\Partners\Partners($sm);
         return $as;
     }, 'DDD\\Dao\\Partners\\PartnerGcmValue' => function ($sm) {
         $as = new \DDD\Dao\Partners\PartnerGcmValue($sm);
         return $as;
     }, 'DDD\\Dao\\Partners\\PartnerAccount' => function ($sm) {
         $as = new \DDD\Dao\Partners\PartnerAccount($sm);
         return $as;
     }, 'DDD\\Dao\\Partners\\PartnerCityCommission' => function ($sm) {
         $as = new \DDD\Dao\Partners\PartnerCityCommission($sm);
         return $as;
     }, 'DDD\\Dao\\Geolocation\\Details' => function ($sm) {
         $as = new \DDD\Dao\Geolocation\Details($sm);
         return $as;
     }, 'DDD\\Dao\\Geolocation\\Poitype' => function ($sm) {
         $as = new \DDD\Dao\Geolocation\Poitype($sm);
         return $as;
     }, 'DDD\\Dao\\Geolocation\\Poi' => function ($sm) {
         $as = new \DDD\Dao\Geolocation\Poi($sm);
         return $as;
     }, 'DDD\\Dao\\Geolocation\\Provinces' => function ($sm) {
         $as = new \DDD\Dao\Geolocation\Provinces($sm);
         return $as;
     }, 'DDD\\Dao\\Geolocation\\Cities' => function ($sm) {
         $as = new \DDD\Dao\Geolocation\Cities($sm);
         return $as;
     }, 'DDD\\Dao\\Geolocation\\Continents' => function ($sm) {
         $as = new \DDD\Dao\Geolocation\Continents($sm);
         return $as;
     }, 'DDD\\Dao\\Blog\\Blog' => function ($sm) {
         $as = new \DDD\Dao\Blog\Blog($sm);
         return $as;
     }, 'DDD\\Dao\\News\\News' => function ($sm) {
         $as = new \DDD\Dao\News\News($sm);
         return $as;
     }, 'DDD\\Dao\\WebsiteLanguage\\Language' => function ($sm) {
         $as = new \DDD\Dao\WebsiteLanguage\Language($sm);
         return $as;
     }, 'DDD\\Dao\\GeoliteCountry\\GeoliteCountry' => function ($sm) {
         $as = new \DDD\Dao\GeoliteCountry\GeoliteCountry($sm);
         return $as;
     }, 'DDD\\Dao\\Textline\\Universal' => function ($sm) {
         $as = new \DDD\Dao\Textline\Universal($sm);
         return $as;
     }, 'DDD\\Dao\\Textline\\UniversalPageRel' => function ($sm) {
         $as = new \DDD\Dao\Textline\UniversalPageRel($sm);
         return $as;
     }, 'DDD\\Dao\\Translation\\UniversalPages' => function ($sm) {
         $as = new \DDD\Dao\Translation\UniversalPages($sm);
         return $as;
     }, 'DDD\\Dao\\Textline\\Location' => function ($sm) {
         $as = new \DDD\Dao\Textline\Location($sm);
         return $as;
     }, 'DDD\\Dao\\Textline\\Apartment' => function ($sm) {
         $as = new \DDD\Dao\Textline\Apartment($sm);
         return $as;
     }, 'DDD\\Dao\\Textline\\Group' => function ($sm) {
         $as = new \DDD\Dao\Textline\Group($sm);
         return $as;
     }, 'DDD\\Dao\\Apartment\\Main' => function ($sm) {
         $as = new \DDD\Dao\Apartment\Main($sm);
         return $as;
     }, 'DDD\\Dao\\Apartment\\General' => function ($sm) {
         $as = new \DDD\Dao\Apartment\General($sm);
         return $as;
     }, 'DDD\\Dao\\Apartment\\Statistics' => function ($sm) {
         $as = new \DDD\Dao\Apartment\Statistics($sm);
         return $as;
     }, 'DDD\\Dao\\Apartment\\DocumentCategory' => function ($sm) {
         $as = new \DDD\Dao\Apartment\DocumentCategory($sm);
         return $as;
     }, 'DDD\\Dao\\Apartment\\Location' => function ($sm) {
         $as = new \DDD\Dao\Apartment\Location($sm);
         return $as;
     }, 'DDD\\Dao\\Apartment\\Rate' => function ($sm) {
         $as = new \DDD\Dao\Apartment\Rate($sm);
         return $as;
     }, 'DDD\\Dao\\Apartment\\Inventory' => function ($sm) {
         $as = new \DDD\Dao\Apartment\Inventory($sm);
         return $as;
     }, 'DDD\\Dao\\Apartment\\Room' => function ($sm) {
         $as = new \DDD\Dao\Apartment\Room($sm);
         return $as;
     }, 'DDD\\Dao\\Accommodation\\Review' => function ($sm) {
         $as = new \DDD\Dao\Accommodation\Review($sm);
         return $as;
     }, 'DDD\\Dao\\Accommodation\\Images' => function ($sm) {
         $as = new \DDD\Dao\Accommodation\Images($sm);
         return $as;
     }, 'DDD\\Dao\\Booking\\Addons' => function ($sm) {
         $instance = new \DDD\Dao\Booking\Addons($sm);
         return $instance;
     }, 'DDD\\Dao\\Booking\\Charge' => function ($sm) {
         $instance = new \DDD\Dao\Booking\Charge($sm);
         return $instance;
     }, 'DDD\\Dao\\Booking\\ChargeTransaction' => function ($sm) {
         $instance = new \DDD\Dao\Booking\ChargeTransaction($sm);
         return $instance;
     }, 'DDD\\Dao\\Booking\\BlackList' => function ($sm) {
         $instance = new \DDD\Dao\Booking\BlackList($sm);
         return $instance;
     }, 'DDD\\Dao\\Booking\\ReservationIssues' => function ($sm) {
         $instance = new \DDD\Dao\Booking\ReservationIssues($sm);
         return $instance;
     }, 'DDD\\Dao\\Psp\\Psp' => function ($sm) {
         $instance = new \DDD\Dao\Psp\Psp($sm);
         return $instance;
     }, 'DDD\\Dao\\Notifications\\Notifications' => function ($sm) {
         $instance = new \DDD\Dao\Notifications\Notifications($sm);
         return $instance;
     }, 'DDD\\Dao\\Apartment\\ReviewCategory' => function ($sm) {
         return new \DDD\Dao\Apartment\ReviewCategory($sm);
     }, 'DDD\\Dao\\Apartment\\ReviewCategoryRel' => function ($sm) {
         return new \DDD\Dao\Apartment\ReviewCategoryRel($sm);
     }, 'DDD\\Dao\\Apartment\\Review' => function ($sm) {
         return new \DDD\Dao\Apartment\Review($sm);
     }, 'DDD\\Dao\\Team\\Team' => function ($sm) {
         return new \DDD\Dao\Team\Team($sm);
     }, 'DDD\\Dao\\Team\\TeamStaff' => function ($sm) {
         return new \DDD\Dao\Team\TeamStaff($sm);
     }, 'DDD\\Dao\\Team\\TeamFrontierApartments' => function ($sm) {
         return new \DDD\Dao\Team\TeamFrontierApartments($sm);
     }, 'DDD\\Dao\\Team\\TeamFrontierBuildings' => function ($sm) {
         return new \DDD\Dao\Team\TeamFrontierBuildings($sm);
     }, 'DDD\\Dao\\Office\\OfficeManager' => function ($sm) {
         return new \DDD\Dao\Office\OfficeManager($sm);
     }, 'DDD\\Dao\\Office\\OfficeSection' => function ($sm) {
         return new \DDD\Dao\Office\OfficeSection($sm);
     }, 'DDD\\Dao\\Location\\Country' => function ($sm) {
         return new \DDD\Dao\Location\Country($sm);
     }, 'DDD\\Dao\\Booking\\PinnedReservation' => function ($sm) {
         $instance = new \DDD\Dao\Booking\PinnedReservation($sm);
         return $instance;
     }, 'DDD\\Dao\\Booking\\FraudDetection' => function ($sm) {
         $as = new \DDD\Dao\Booking\FraudDetection($sm);
         return $as;
     }, 'DDD\\Dao\\Booking\\Attachment' => function ($sm) {
         $instance = new \DDD\Dao\Booking\Attachment($sm);
         return $instance;
     }, 'DDD\\Dao\\Booking\\AttachmentItem' => function ($sm) {
         $instance = new \DDD\Dao\Booking\AttachmentItem($sm);
         return $instance;
     }, 'DDD\\Dao\\Task\\Task' => function ($sm) {
         $instance = new \DDD\Dao\Task\Task($sm);
         return $instance;
     }, 'DDD\\Dao\\Task\\Subtask' => function ($sm) {
         $instance = new \DDD\Dao\Task\Subtask($sm);
         return $instance;
     }, 'DDD\\Dao\\Task\\Staff' => function ($sm) {
         $instance = new \DDD\Dao\Task\Staff($sm);
         return $instance;
     }, 'DDD\\Dao\\Task\\Type' => function ($sm) {
         $instance = new \DDD\Dao\Task\Type($sm);
         return $instance;
     }, 'DDD\\Dao\\Task\\Attachments' => function ($sm) {
         $instance = new \DDD\Dao\Task\Attachments($sm);
         return $instance;
     }, 'DDD\\Dao\\Booking\\ReservationNightly' => function ($sm) {
         return new \DDD\Dao\Booking\ReservationNightly($sm);
     }, 'DDD\\Dao\\Booking\\ChargeDeleted' => function ($sm) {
         $as = new \DDD\Dao\Booking\ChargeDeleted($sm);
         return $as;
     }, 'DDD\\Dao\\Queue\\InventorySyncQueue' => function ($sm) {
         $as = new \DDD\Dao\Queue\InventorySyncQueue($sm);
         return $as;
     }, 'DDD\\Dao\\Queue\\InventorySynchronizationQueue' => function ($sm) {
         $as = new \DDD\Dao\Queue\InventorySynchronizationQueue($sm);
         return $as;
     }, 'DDD\\Dao\\Queue\\EmailQueue' => function ($sm) {
         $as = new \DDD\Dao\Queue\EmailQueue($sm);
         return $as;
     }, 'DDD\\Dao\\Lock\\Types' => function ($sm) {
         $as = new \DDD\Dao\Lock\Types($sm);
         return $as;
     }, 'DDD\\Dao\\Lock\\SettingItems' => function ($sm) {
         $as = new \DDD\Dao\Lock\SettingItems($sm);
         return $as;
     }, 'DDD\\Dao\\Lock\\Locks' => function ($sm) {
         $as = new \DDD\Dao\Lock\Locks($sm);
         return $as;
     }, 'DDD\\Dao\\Lock\\LockSettings' => function ($sm) {
         $as = new \DDD\Dao\Lock\LockSettings($sm);
         return $as;
     }, 'DDD\\Dao\\Parking\\General' => function ($sm) {
         $as = new \DDD\Dao\Parking\General($sm);
         return $as;
     }, 'DDD\\Dao\\Parking\\Spot' => function ($sm) {
         $as = new \DDD\Dao\Parking\Spot($sm);
         return $as;
     }, 'DDD\\Dao\\Parking\\Spot\\Inventory' => function ($sm) {
         $as = new \DDD\Dao\Parking\Spot\Inventory($sm);
         return $as;
     }, 'DDD\\Dao\\Apartment\\Details' => function ($sm) {
         $as = new \DDD\Dao\Apartment\Details($sm);
         return $as;
     }, 'DDD\\Dao\\Apartment\\Spots' => function ($sm) {
         $as = new \DDD\Dao\Apartment\Spots($sm);
         return $as;
     }, 'DDD\\Dao\\Finance\\Ccca' => function ($sm) {
         $as = new \DDD\Dao\Finance\Ccca($sm);
         return $as;
     }, 'DDD\\Dao\\Tag\\Tag' => function ($sm) {
         $as = new \DDD\Dao\Tag\Tag($sm);
         return $as;
     }, 'DDD\\Dao\\Task\\Tag' => function ($sm) {
         $as = new \DDD\Dao\Task\Tag($sm);
         return $as;
     }, 'DDD\\Dao\\Document\\Document' => function ($sm) {
         $as = new \DDD\Dao\Document\Document($sm);
         return $as;
     }, 'DDD\\Dao\\Document\\Category' => function ($sm) {
         $as = new \DDD\Dao\Document\Category($sm);
         return $as;
     }, 'Zend\\Log' => function ($sm) {
         $filename = '/ginosi/log/exceptions/' . date('Y') . '/' . date('m') . '/' . date('Y-m-d') . '.log';
         if (!file_exists($filename)) {
             if (!file_exists('/ginosi/log/exceptions/' . date('Y') . '/' . date('m'))) {
                 mkdir('/ginosi/log/exceptions/' . date('Y') . '/' . date('m'), 0755, true);
             }
             $file = fopen($filename, 'w');
             chmod($filename, 0755);
             fclose($file);
         }
         $formater = new LogFormater('%timestamp% %priorityName% (%priority%) - %message%' . PHP_EOL);
         $log = new Logger();
         $writer = new LogWriterStream($filename);
         $writer->setFormatter($formater);
         $log->addWriter($writer);
         return $log;
     }, 'Mailer\\Email' => function ($serviceLocator) {
         $as = new \Mailer\Factory\EmailFactory();
         $as = $as->createService($serviceLocator);
         return $as;
     }, 'Mailer\\Email-Alerts' => function ($serviceLocator) {
         $as = new \Mailer\Factory\EmailFactory('alerts');
         $as = $as->createService($serviceLocator);
         return $as;
     }, 'Mailer\\Transport' => function ($serviceLocator) {
         $as = new \Mailer\Factory\TransportFactory();
         $as = $as->createService($serviceLocator);
         return $as;
     }, 'Mailer\\Transport-Alerts' => function ($serviceLocator) {
         $as = new \Mailer\Factory\TransportFactory('transport-alerts');
         $as = $as->createService($serviceLocator);
         return $as;
     }, 'Mailer\\Renderer' => function ($serviceLocator) {
         $as = new \Mailer\Factory\RendererFactory();
         $as = $as->createService($serviceLocator);
         return $as;
     }, 'DDD\\Dao\\Customer\\CustomerIdentity' => function ($sm) {
         $as = new \DDD\Dao\Customer\CustomerIdentity($sm);
         return $as;
     }, 'DDD\\Dao\\ChannelManager\\ReservationIdentificator' => function ($sm) {
         $as = new \DDD\Dao\ChannelManager\ReservationIdentificator($sm);
         return $as;
     }, 'DDD\\Dao\\Finance\\Customer' => function ($sm) {
         $as = new Customer($sm);
         return $as;
     }, 'DDD\\Dao\\Finance\\Transaction\\TransactionAccounts' => function ($sm) {
         $as = new \DDD\Dao\Finance\Transaction\TransactionAccounts($sm);
         return $as;
     }, 'DDD\\Dao\\Finance\\Budget\\Budget' => function ($sm) {
         $as = new \DDD\Dao\Finance\Budget\Budget($sm);
         return $as;
     }, 'DDD\\Dao\\Warehouse\\Category' => function ($sm) {
         $as = new \DDD\Dao\Warehouse\Category($sm);
         return $as;
     }, 'DDD\\Dao\\Warehouse\\Storage' => function ($sm) {
         $as = new \DDD\Dao\Warehouse\Storage($sm);
         return $as;
     }, 'DDD\\Dao\\Warehouse\\Threshold' => function ($sm) {
         $as = new \DDD\Dao\Warehouse\Threshold($sm);
         return $as;
     }, 'DDD\\Dao\\Warehouse\\SKU' => function ($sm) {
         $as = new \DDD\Dao\Warehouse\SKU($sm);
         return $as;
     }, 'DDD\\Dao\\Warehouse\\Alias' => function ($sm) {
         $as = new \DDD\Dao\Warehouse\Alias($sm);
         return $as;
     }, 'DDD\\Dao\\Warehouse\\Asset\\Changes' => function ($sm) {
         $as = new \DDD\Dao\Warehouse\Asset\Changes($sm);
         return $as;
     }, 'DDD\\Dao\\Warehouse\\Asset\\Consumable' => function ($sm) {
         $as = new \DDD\Dao\Warehouse\Asset\Consumable($sm);
         return $as;
     }, 'DDD\\Dao\\Warehouse\\Asset\\Valuable' => function ($sm) {
         $as = new \DDD\Dao\Warehouse\Asset\Valuable($sm);
         return $as;
     }, 'DDD\\Dao\\Warehouse\\Asset\\ConsumableSkusRelation' => function ($sm) {
         $as = new \DDD\Dao\Warehouse\Asset\ConsumableSkusRelation($sm);
         return $as;
     }, 'DDD\\Dao\\Warehouse\\Asset\\ValuableStatuses' => function ($sm) {
         $as = new \DDD\Dao\Warehouse\Asset\ValuableStatuses($sm);
         return $as;
     }, 'DDD\\Dao\\Translation\\Universal' => function ($sm) {
         $as = new \DDD\Dao\Translation\Universal($sm);
         return $as;
     }, 'DDD\\Dao\\Oauth\\OauthUsers' => function ($sm) {
         return new \DDD\Dao\Oauth\OauthUsers($sm);
     }, 'DDD\\Service\\Cache\\Memcache' => function ($sm) {
         $service = new \DDD\Service\Cache\Memcache();
         $service->setServiceLocator($sm);
         return $service;
     }, 'DDD\\Dao\\Booking\\ReviewDao' => function ($sm) {
         $as = new \DDD\Dao\Booking\ReviewDao($sm);
         return $as;
     }, 'DDD\\Dao\\Accommodation\\Review' => function ($sm) {
         $as = new \DDD\Dao\Accommodation\Review($sm);
         return $as;
     }), 'aliases' => array('dao_accommodation_accommodations' => 'DDD\\Dao\\Accommodation\\Accommodations', 'dao_accommodation_images' => 'DDD\\Dao\\Accommodation\\Images', 'dao_accommodation_review' => 'DDD\\Dao\\Accommodation\\Review', 'dao_action_logs_action_logs' => 'DDD\\Dao\\ActionLogs\\ActionLogs', 'dao_action_logs_logs_team' => 'DDD\\Dao\\ActionLogs\\LogsTeam', 'dao_money_account_money_account' => 'DDD\\Dao\\MoneyAccount\\MoneyAccount', 'dao_money_account_money_account_users' => 'DDD\\Dao\\MoneyAccount\\MoneyAccountUsers', 'dao_money_account_document' => 'DDD\\Dao\\MoneyAccount\\Attachment', 'dao_money_account_attachment_item' => 'DDD\\Dao\\MoneyAccount\\AttachmentItem', 'dao_currency_currency' => 'DDD\\Dao\\Currency\\Currency', 'dao_currency_currency_vault' => 'DDD\\Dao\\Currency\\CurrencyVault', 'dao_apartment_amenities' => 'DDD\\Dao\\Apartment\\Amenities', 'dao_apartment_amenity_items' => 'DDD\\Dao\\Apartment\\AmenityItems', 'dao_apartment_main' => 'DDD\\Dao\\Apartment\\Main', 'dao_apartment_general' => 'DDD\\Dao\\Apartment\\General', 'dao_apartment_statistics' => 'DDD\\Dao\\Apartment\\Statistics', 'dao_apartment_group_building_details' => 'DDD\\Dao\\ApartmentGroup\\BuildingDetails', 'dao_apartment_group_building_sections' => 'DDD\\Dao\\ApartmentGroup\\BuildingSections', 'dao_apartment_group_building_lots' => 'DDD\\Dao\\ApartmentGroup\\BuildingLots', 'dao_apartment_group_apartment_group' => 'DDD\\Dao\\ApartmentGroup\\ApartmentGroup', 'dao_apartment_group_apartment_group_items' => 'DDD\\Dao\\ApartmentGroup\\ApartmentGroupItems', 'dao_apartment_group_concierge_view' => 'DDD\\Dao\\ApartmentGroup\\ConciergeView', 'dao_apartment_group_concierge_dashboard_access' => 'DDD\\Dao\\ApartmentGroup\\ConciergeDashboardAccess', 'dao_building_facilities' => 'DDD\\Dao\\ApartmentGroup\\Facilities', 'dao_building_facility_items' => 'DDD\\Dao\\ApartmentGroup\\FacilityItems', 'dao_expense_expense' => 'DDD\\Dao\\Expense\\Expense', 'dao_geolocation_countries' => 'DDD\\Dao\\Geolocation\\Countries', 'dao_geolocation_city' => 'DDD\\Dao\\Geolocation\\City', 'dao_geolocation_details' => 'DDD\\Dao\\Geolocation\\Details', 'dao_geolocation_poi_type' => 'DDD\\Dao\\Geolocation\\Poitype', 'dao_geolocation_poi' => 'DDD\\Dao\\Geolocation\\Poi', 'dao_geolocation_provinces' => 'DDD\\Dao\\Geolocation\\Provinces', 'dao_geolocation_cities' => 'DDD\\Dao\\Geolocation\\Cities', 'dao_geolocation_continents' => 'DDD\\Dao\\Geolocation\\Continents', 'dao_location_country' => 'DDD\\Dao\\Location\\Country', 'dao_user_dashboards' => 'DDD\\Dao\\User\\Dashboards', 'dao_user_user_group' => 'DDD\\Dao\\User\\UserGroup', 'dao_user_user_groups' => 'DDD\\Dao\\User\\UserGroups', 'dao_user_user_manager' => 'DDD\\Dao\\User\\UserManager', 'dao_user_users' => 'DDD\\Dao\\User\\Users', 'dao_user_user_dashboards' => 'DDD\\Dao\\User\\UserDashboards', 'dao_user_vacation_days' => 'DDD\\Dao\\User\\Vacationdays', 'dao_user_vacation_request' => 'DDD\\Dao\\User\\VacationRequest', 'dao_user_evaluation_evaluations' => 'DDD\\Dao\\User\\Evaluation\\Evaluations', 'dao_user_evaluation_evaluation_items' => 'DDD\\Dao\\User\\Evaluation\\EvaluationItems', 'dao_user_evaluation_evaluation_values' => 'DDD\\Dao\\User\\Evaluation\\EvaluationValues', 'dao_user_schedule_schedule' => 'DDD\\Dao\\User\\Schedule\\Schedule', 'dao_user_schedule_inventory' => 'DDD\\Dao\\User\\Schedule\\Inventory', 'dao_user_document_documents' => 'DDD\\Dao\\User\\Document\\Documents', 'dao_user_document_document_types' => 'DDD\\Dao\\User\\Document\\DocumentTypes', 'dao_user_external_account' => 'DDD\\Dao\\User\\ExternalAccount', 'dao_user_salary_scheme' => 'DDD\\Dao\\User\\SalaryScheme', 'dao_user_devices' => 'DDD\\Dao\\User\\Devices', 'dao_partners_partner_gcm_value' => 'DDD\\Dao\\Partners\\PartnerGcmValue', 'dao_partners_partners' => 'DDD\\Dao\\Partners\\Partners', 'dao_partners_partner_account' => 'DDD\\Dao\\Partners\\PartnerAccount', 'dao_partners_partner_city_commission' => 'DDD\\Dao\\Partners\\PartnerCityCommission', 'dao_blog_blog' => 'DDD\\Dao\\Blog\\Blog', 'dao_news_news' => 'DDD\\Dao\\News\\News', 'dao_website_language_language' => 'DDD\\Dao\\WebsiteLanguage\\Language', 'dao_geolite_country_geolite_country' => 'DDD\\Dao\\GeoliteCountry\\GeoliteCountry', 'dao_textline_universal' => 'DDD\\Dao\\Textline\\Universal', 'dao_textline_universal_page_rel' => 'DDD\\Dao\\Textline\\UniversalPageRel', 'dao_translation_universal_pages' => 'DDD\\Dao\\Translation\\UniversalPages', 'dao_textline_location' => 'DDD\\Dao\\Textline\\Location', 'dao_textline_apartment' => 'DDD\\Dao\\Textline\\Apartment', 'dao_textline_group' => 'DDD\\Dao\\Textline\\Group', 'dao_booking_booking' => 'DDD\\Dao\\Booking\\Booking', 'dao_booking_reservation_issues' => 'DDD\\Dao\\Booking\\ReservationIssues', 'dao_booking_charge' => 'DDD\\Dao\\Booking\\Charge', 'dao_booking_change_transaction' => 'DDD\\Dao\\Booking\\ChargeTransaction', 'dao_booking_addons' => 'DDD\\Dao\\Booking\\Addons', 'dao_booking_pinned_reservation' => 'DDD\\Dao\\Booking\\PinnedReservation', 'dao_booking_attachment' => 'DDD\\Dao\\Booking\\Attachment', 'dao_booking_attachment_item' => 'DDD\\Dao\\Booking\\AttachmentItem', 'dao_booking_reservation_nightly' => 'DDD\\Dao\\Booking\\ReservationNightly', 'dao_booking_black_list' => 'DDD\\Dao\\Booking\\BlackList', 'dao_booking_fraud_detection' => 'DDD\\Dao\\Booking\\FraudDetection', 'dao_booking_charge_deleted' => 'DDD\\Dao\\Booking\\ChargeDeleted', 'dao_booking_review' => 'DDD\\Dao\\Booking\\ReviewDao', 'dao_psp_psp' => 'DDD\\Dao\\Psp\\Psp', 'dao_notifications_notifications' => 'DDD\\Dao\\Notifications\\Notifications', 'dao_team_team' => 'DDD\\Dao\\Team\\Team', 'dao_team_team_staff' => 'DDD\\Dao\\Team\\TeamStaff', 'dao_team_team_frontier_apartments' => 'DDD\\Dao\\Team\\TeamFrontierApartments', 'dao_team_team_frontier_buildings' => 'DDD\\Dao\\Team\\TeamFrontierBuildings', 'dao_office_office_manager' => 'DDD\\Dao\\Office\\OfficeManager', 'dao_office_office_section' => 'DDD\\Dao\\Office\\OfficeSection', 'dao_task_task' => 'DDD\\Dao\\Task\\Task', 'dao_task_subtask' => 'DDD\\Dao\\Task\\Subtask', 'dao_task_staff' => 'DDD\\Dao\\Task\\Staff', 'dao_task_type' => 'DDD\\Dao\\Task\\Type', 'dao_task_attachments' => 'DDD\\Dao\\Task\\Attachments', 'dao_task_tag' => 'DDD\\Dao\\Task\\Tag', 'dao_customer_customer_identity' => 'DDD\\Dao\\Customer\\CustomerIdentity', 'dao_queue_inventory_sync_queue' => 'DDD\\Dao\\Queue\\InventorySyncQueue', 'dao_queue_inventory_synchronization_queue' => 'DDD\\Dao\\Queue\\InventorySynchronizationQueue', 'dao_queue_email_queue' => 'DDD\\Dao\\Queue\\EmailQueue', 'dao_lock_types' => 'DDD\\Dao\\Lock\\Types', 'dao_lock_type_setting_items' => 'DDD\\Dao\\Lock\\SettingItems', 'dao_lock_locks' => 'DDD\\Dao\\Lock\\Locks', 'dao_lock_settings' => 'DDD\\Dao\\Lock\\LockSettings', 'dao_apartment_room' => 'DDD\\Dao\\Apartment\\Room', 'dao_apartment_review_category' => 'DDD\\Dao\\Apartment\\ReviewCategory', 'dao_apartment_review_category_rel' => 'DDD\\Dao\\Apartment\\ReviewCategoryRel', 'dao_apartment_review' => 'DDD\\Dao\\Apartment\\Review', 'dao_apartment_inventory' => 'DDD\\Dao\\Apartment\\Inventory', 'dao_apartment_rate' => 'DDD\\Dao\\Apartment\\Rate', 'dao_apartment_details' => 'DDD\\Dao\\Apartment\\Details', 'dao_apartment_spots' => 'DDD\\Dao\\Apartment\\Spots', 'dao_parking_general' => 'DDD\\Dao\\Parking\\General', 'dao_parking_spot' => 'DDD\\Dao\\Parking\\Spot', 'dao_parking_spot_inventory' => 'DDD\\Dao\\Parking\\Spot\\Inventory', 'dao_channel_manager_reservation_identificator' => 'DDD\\Dao\\ChannelManager\\ReservationIdentificator', 'dao_finance_supplier' => 'DDD\\Dao\\Finance\\Supplier', 'dao_finance_legal_entities' => 'DDD\\Dao\\Finance\\LegalEntities', 'dao_finance_ccca' => 'DDD\\Dao\\Finance\\Ccca', 'dao_finance_customer' => 'DDD\\Dao\\Finance\\Customer', 'dao_finance_transaction_transaction_accounts' => 'DDD\\Dao\\Finance\\Transaction\\TransactionAccounts', 'dao_finance_budget_budget' => 'DDD\\Dao\\Finance\\Budget\\Budget', 'dao_tag_tag' => 'DDD\\Dao\\Tag\\Tag', 'dao_document_document' => 'DDD\\Dao\\Document\\Document', 'dao_document_category' => 'DDD\\Dao\\Document\\Category', 'dao_warehouse_category' => 'DDD\\Dao\\Warehouse\\Category', 'dao_warehouse_storage' => 'DDD\\Dao\\Warehouse\\Storage', 'dao_warehouse_threshold' => 'DDD\\Dao\\Warehouse\\Threshold', 'dao_warehouse_sku' => 'DDD\\Dao\\Warehouse\\SKU', 'dao_warehouse_alias' => 'DDD\\Dao\\Warehouse\\Alias', 'dao_warehouse_asset_changes' => 'DDD\\Dao\\Warehouse\\Asset\\Changes', 'dao_warehouse_asset_consumable' => 'DDD\\Dao\\Warehouse\\Asset\\Consumable', 'dao_warehouse_asset_valuable' => 'DDD\\Dao\\Warehouse\\Asset\\Valuable', 'dao_warehouse_asset_valuable_status' => 'DDD\\Dao\\Warehouse\\Asset\\ValuableStatuses', 'dao_warehouse_asset_consumable_skus_relation' => 'DDD\\Dao\\Warehouse\\Asset\\ConsumableSkusRelation', 'dao_oauth_oauth_users' => 'DDD\\Dao\\Oauth\\OauthUsers', 'dao_universal_textline' => 'DDD\\Dao\\Translation\\Universal', 'library_backoffice_auth' => 'Library\\Authentication\\BackofficeAuthenticationService'));
 }
Пример #13
0
 public function _init(Dispatcher $dispatcher)
 {
     // 引入Composer,Yaf扩展的配置项yaf.use_spl_autoload务必设置为1
     if (file_exists(ROOT_PATH . '/vendor/autoload.php')) {
         $loader = (include ROOT_PATH . '/vendor/autoload.php');
         //$loader->add("",ROOT_PATH.'/library');
         //$loader->addPsr4("Zend\\",ROOT_PATH.'/library/Zend');
         Registry::set('loader', $loader);
     }
     // 禁止自动渲染
     $dispatcher->autoRender(FALSE);
     // 保存配置
     $this->_config = Application::app()->getConfig();
     Registry::set('config', $this->_config);
     // 报错设置
     if ($this->_config->global->showError) {
         error_reporting(-1);
         ini_set('display_errors', 'On');
     }
     // 加解密
     if (!empty($this->_config->global->key)) {
         Registry::set('enc', function () {
             $blockCipher = BlockCipher::factory('mcrypt', array('algo' => 'aes'));
             $blockCipher->setKey($this->_config->global->key);
             return $blockCipher;
         });
     }
     // 命令行方式,跳过SESSION
     if (!defined("RUN_IN_CLI")) {
         // 保存路径
         $sessionConfig = $this->_config->session->toArray();
         if (isset($sessionConfig['save_path'])) {
             @mkdir($sessionConfig['save_path'], 0777, true);
         }
         // 配置
         $config = new SessionConfig();
         $config->setOptions($sessionConfig);
         // 会话管理器
         $manager = new SessionManager($config);
         // 开启会话
         $manager->start();
         // 验证会话
         $manager->getValidatorChain()->attach('session.validate', array(new HttpUserAgent(), 'isValid'));
         if (!$manager->isValid()) {
             $manager->destroy();
             throw new \Exception("会话验证失败");
         }
         // 会话Token
         $default = new Zend\Session\Container();
         if (empty($default->offsetGet('securityToken'))) {
             $default->offsetSet('securityToken', md5(uniqid(rand(), true)));
         }
         // 保存实例
         Registry::set('session', $default);
         Registry::set('sm', $manager);
     }
     // 数据库
     Registry::set('db', function () {
         $mysqlMasterConfig = $this->_config->mysql->master->toArray();
         $adapter = new Adapter($mysqlMasterConfig);
         $connect = $adapter->getDriver()->getConnection();
         for ($i = 0; $i < 5; $i++) {
             if ($connect->isConnected()) {
                 break;
             }
             $connect->connect();
         }
         return $adapter;
     });
     // 邮件
     Registry::set('mail', function () {
         $options = new SmtpOptions($this->_config->smtp->toArray());
         $mail = new SmtpTransport();
         $mail->setOptions($options);
         return $mail;
     });
     // 日志
     Registry::set('logger', function () {
         $logger = new Zend\Log\Logger();
         $writer = new Zend\Log\Writer\Stream($this->_config->log->path . '/' . date("Ymd") . ".log");
         $logger->addWriter($writer);
         return $logger;
     });
 }
Пример #14
0
 /**
  * Expected to return \Zend\ServiceManager\Config object or array to
  * seed such an object.
  *
  * @return array|\Zend\ServiceManager\Config
  */
 public function getServiceConfig()
 {
     return ['initializers' => ['EntityManager' => function ($instance, ServiceManager $sm) {
         if ($instance instanceof EntityManagerAwareInterface) {
             /** @var EntityManager $entityManager */
             $entityManager = $sm->get('Doctrine\\ORM\\EntityManager');
             $instance->setEntityManager($entityManager);
         }
     }], 'factories' => ['Zend\\Authentication\\AuthenticationService' => function ($serviceManager) {
         return $serviceManager->get('doctrine.authenticationservice.orm_default');
     }, 'Zend\\Session\\SessionManager' => function ($sm) {
         $config = $sm->get('config');
         if (isset($config['session'])) {
             $session = $config['session'];
             $sessionConfig = null;
             if (isset($session['config'])) {
                 $class = isset($session['config']['class']) ? $session['config']['class'] : 'Zend\\Session\\Config\\SessionConfig';
                 $options = isset($session['config']['options']) ? $session['config']['options'] : array();
                 $sessionConfig = new $class();
                 $sessionConfig->setOptions($options);
             }
             $sessionStorage = null;
             if (isset($session['storage'])) {
                 $class = $session['storage'];
                 $sessionStorage = new $class();
             }
             $sessionSaveHandler = null;
             if (isset($session['save_handler'])) {
                 // class should be fetched from service manager since it will require constructor arguments
                 $sessionSaveHandler = $sm->get($session['save_handler']);
             }
             $sessionManager = new SessionManager($sessionConfig, $sessionStorage, $sessionSaveHandler);
             if (isset($session['validator'])) {
                 $chain = $sessionManager->getValidatorChain();
                 foreach ($session['validator'] as $validator) {
                     $validator = new $validator();
                     $chain->attach('session.validate', array($validator, 'isValid'));
                 }
             }
         } else {
             $sessionManager = new SessionManager();
         }
         Container::setDefaultManager($sessionManager);
         return $sessionManager;
     }, 'UserService' => function (ServiceManager $sm) {
         return new UserService($sm->get('Zend\\Authentication\\AuthenticationService'), $sm->get('Zend\\Session\\SessionManager'));
     }]];
 }
Пример #15
0
 public function getServiceConfig()
 {
     return array('factories' => array('Application\\Model\\Common' => function ($sm) {
         $model = new \Application\Model\Common();
         $model->setServiceLocator($sm);
         return $model;
     }, 'Application\\Model\\MyAuthStorage' => function ($sm) {
         return new \Application\Model\MyAuthStorage('zf_tutorial');
     }, 'AuthService' => function ($sm) {
         $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
         $dbTableAuthAdapter = new DbTableAuthAdapter($dbAdapter, 'users', 'user_name', 'pass', 'MD5(?)');
         $authService = new AuthenticationService();
         $authService->setAdapter($dbTableAuthAdapter);
         $authService->setStorage($sm->get('Application\\Model\\MyAuthStorage'));
         return $authService;
     }, 'Zend\\Session\\SessionManager' => function ($sm) {
         $config = $sm->get('config');
         if (isset($config['session'])) {
             $session = $config['session'];
             $sessionConfig = null;
             if (isset($session['config'])) {
                 $class = isset($session['config']['class']) ? $session['config']['class'] : 'Zend\\Session\\Config\\SessionConfig';
                 $options = isset($session['config']['options']) ? $session['config']['options'] : array();
                 $sessionConfig = new $class();
                 $sessionConfig->setOptions($options);
             }
             $sessionStorage = null;
             if (isset($session['storage'])) {
                 $class = $session['storage'];
                 $sessionStorage = new $class();
             }
             $sessionSaveHandler = null;
             if (isset($session['save_handler'])) {
                 // class should be fetched from service manager since it will require constructor arguments
                 $sessionSaveHandler = $sm->get($session['save_handler']);
             }
             $sessionManager = new SessionManager($sessionConfig, $sessionStorage, $sessionSaveHandler);
             if (isset($session['validator'])) {
                 $chain = $sessionManager->getValidatorChain();
                 foreach ($session['validator'] as $validator) {
                     $validator = new $validator();
                     $chain->attach('session.validate', array($validator, 'isValid'));
                 }
             }
         } else {
             $sessionManager = new SessionManager();
         }
         Container::setDefaultManager($sessionManager);
         return $sessionManager;
     }));
 }
Пример #16
0
 public function getServiceConfig()
 {
     return array('factories' => array('Tee\\Options\\Configuration' => function ($sm) {
         $config = $sm->get('Config');
         return new \Tee\Options\Configuration($config['cfg']);
     }, 'Tee\\Entity\\PoxnTable' => function ($sm) {
         return new \Tee\Entity\PoxnTable($sm->get('Zend\\Db\\Adapter\\Adapter'));
     }, 'Tee\\Entity\\PersonRespTable' => function ($sm) {
         return new \Tee\Entity\PersonRespTable($sm->get('Zend\\Db\\Adapter\\Adapter'));
     }, 'Tee\\Entity\\PersonPoxnTable' => function ($sm) {
         return new \Tee\Entity\PersonPoxnTable($sm->get('Zend\\Db\\Adapter\\Adapter'));
     }, 'TeeCache' => function ($sm) {
         $config = $sm->get('Config');
         return \Zend\Cache\StorageFactory::factory($config['cache']);
     }, 'TeeMail' => function ($sm) {
         $config = $sm->get('Config');
         $smptOptions = new SmtpOptions($config['transport']['smtp_options']);
         return new SmtpTransport($smptOptions);
     }, 'TeeSessionManager' => function ($sm) {
         $config = $sm->get('config');
         if (isset($config['session'])) {
             $session = $config['session'];
             $sessionConfig = null;
             if (isset($session['config'])) {
                 $class = isset($session['config']['class']) ? $session['config']['class'] : 'Zend\\Session\\Config\\SessionConfig';
                 $options = isset($session['config']['options']) ? $session['config']['options'] : array();
                 $sessionConfig = new $class();
                 $sessionConfig->setOptions($options);
             }
             $sessionStorage = null;
             if (isset($session['storage'])) {
                 $class = $session['storage'];
                 $sessionStorage = new $class();
             }
             $sessionSaveHandler = null;
             if (isset($session['save_handler'])) {
                 // class should be fetched from service manager since it will require constructor arguments
                 $sessionSaveHandler = $sm->get($session['save_handler']);
             }
             $sessionManager = new SessionManager($sessionConfig, $sessionStorage, $sessionSaveHandler);
             if (isset($session['validators'])) {
                 $chain = $sessionManager->getValidatorChain();
                 foreach ($session['validators'] as $validator) {
                     $validator = new $validator();
                     $chain->attach('session.validate', array($validator, 'isValid'));
                 }
             }
         } else {
             $sessionManager = new SessionManager();
         }
         Container::setDefaultManager($sessionManager);
         return $sessionManager;
     }, 'LovService' => function ($sm) {
         return new \Tee\Entity\LovTable($sm->get('Zend\\Db\\Adapter\\Adapter'), $sm->get('TeeCache'));
     }, 'LocaleService' => function ($sm) {
         return new \Tee\Entity\LocaleTable($sm->get('Zend\\Db\\Adapter\\Adapter'), $sm->get('TeeCache'));
     }, 'LanguageService' => function ($sm) {
         return new \Tee\Entity\LanguageTable($sm->get('Zend\\Db\\Adapter\\Adapter'), $sm->get('TeeCache'));
     }, 'TimezoneService' => function ($sm) {
         return new \Tee\Entity\TimezoneTable($sm->get('Zend\\Db\\Adapter\\Adapter'), $sm->get('TeeCache'));
     }, 'CountryService' => function ($sm) {
         return new \Tee\Entity\CountryTable($sm->get('Zend\\Db\\Adapter\\Adapter'), $sm->get('TeeCache'));
     }, 'StateService' => function ($sm) {
         return new \Tee\Entity\StateTable($sm->get('Zend\\Db\\Adapter\\Adapter'), $sm->get('TeeCache'));
     }, 'CommtypeService' => function ($sm) {
         return new \Tee\Entity\CommtypeTable($sm->get('Zend\\Db\\Adapter\\Adapter'), $sm->get('TeeCache'));
     }));
 }
Пример #17
0
 public function getServiceConfig()
 {
     return array('factories' => array('Zend\\Session\\SessionManager' => function ($sm) {
         $config = $sm->get('config');
         if (isset($config['session'])) {
             $session = $config['session'];
             $sessionConfig = null;
             if (isset($session['config'])) {
                 $class = isset($session['config']['class']) ? $session['config']['class'] : 'Zend\\Session\\Config\\SessionConfig';
                 $options = isset($session['config']['options']) ? $session['config']['options'] : array();
                 $sessionConfig = new $class();
                 $sessionConfig->setOptions($options);
             }
             $sessionStorage = null;
             if (isset($session['storage'])) {
                 $class = $session['storage'];
                 $sessionStorage = new $class();
             }
             $sessionSaveHandler = null;
             if (isset($session['save_handler'])) {
                 // class should be fetched from service manager since it will require constructor arguments
                 $sessionSaveHandler = $sm->get($session['save_handler']);
             }
             $sessionManager = new SessionManager($sessionConfig, $sessionStorage, $sessionSaveHandler);
             if (isset($session['validators'])) {
                 $chain = $sessionManager->getValidatorChain();
                 foreach ($session['validators'] as $validator) {
                     $validator = new $validator();
                     $chain->attach('session.validate', array($validator, 'isValid'));
                 }
             }
         } else {
             $sessionManager = new SessionManager();
         }
         Container::setDefaultManager($sessionManager);
         return $sessionManager;
     }, 'PreReg\\Form\\ProductView' => function ($sm) {
         $productView = new Form\ProductView();
         $productView->setServiceLocator($sm);
         return $productView;
     }, 'PreReg\\Form\\CreditCard' => function ($sm) {
         $form = new Form\CreditCard();
         $years = array();
         for ($i = date('Y'); $i <= date('Y') + 15; $i++) {
             $years[] = array('value' => $i, 'label' => $i);
         }
         $form->get('cc_expdate_year')->setAttribute('options', $years);
         $months = array();
         for ($i = 1; $i <= 12; $i++) {
             $months[] = array('value' => $i, 'label' => sprintf('%02d', $i));
         }
         $form->get('cc_expdate_month')->setAttribute('options', $months);
         return $form;
     }, 'PreReg\\Service\\LoginService' => function ($sm) {
         $loginService = new Service\LoginService();
         $loginService->setServiceLocator($sm);
         return $loginService;
     }, 'PreReg\\InputFilter\\Register' => function ($sm) {
         $inputFilter = new InputFilter\Register();
         $inputFilter->setServiceLocator($sm);
         return $inputFilter;
     }, 'PreReg\\InputFilter\\Participant' => function ($sm) {
         $inputFilter = new InputFilter\Participant();
         $inputFilter->setServiceLocator($sm);
         return $inputFilter;
     }, 'PreReg\\Form\\Participant' => function ($sm) {
         $form = new Form\Participant();
         $form->setServiceLocator($sm);
         return $form;
     }, 'PreReg\\InputFilter\\PaymentType' => function ($sm) {
         $inputFilter = new InputFilter\PaymentType();
         $inputFilter->setServiceLocator($sm);
         return $inputFilter;
     }));
 }
Пример #18
0
 /**
  * Attach the Service Validators to the Session
  *
  * @param SessionManager          $sessionManager Zend Session Manager
  * @param ServiceLocatorInterface $serviceLocator Zend Service Locator
  * @param array                   $sessionConfig  Session Config Array
  *
  * @return void
  * @throws InvalidArgumentException
  */
 protected function setValidatorChain(SessionManager $sessionManager, ServiceLocatorInterface $serviceLocator, $sessionConfig)
 {
     if (!isset($sessionConfig['validators']) || !is_array($sessionConfig['validators'])) {
         return;
     }
     $chain = $sessionManager->getValidatorChain();
     foreach ($sessionConfig['validators'] as &$validator) {
         if ($serviceLocator->has($validator)) {
             $validator = $serviceLocator->get($validator);
         } else {
             $validator = new $validator();
         }
         if (!$validator instanceof ValidatorInterface) {
             throw new InvalidArgumentException('Session Save Handler class must implement ' . 'Zend\\Session\\Validator\\ValidatorInterface');
         }
         $chain->attach('session.validate', [$validator, 'isValid']);
     }
 }
Пример #19
0
 public function getServiceConfig()
 {
     return array('factories' => array('Zend\\Session\\SessionManager' => function ($sm) {
         $config = $sm->get('config');
         if (isset($config['session'])) {
             $session = $config['session'];
             $sessionConfig = null;
             if (isset($session['config'])) {
                 $class = isset($session['config']['class']) ? $session['config']['class'] : 'Zend\\Session\\Config\\SessionConfig';
                 $options = isset($session['config']['options']) ? $session['config']['options'] : array();
                 $sessionConfig = new $class();
                 $sessionConfig->setOptions($options);
             }
             $sessionStorage = null;
             if (isset($session['storage'])) {
                 $class = $session['storage'];
                 $sessionStorage = new $class();
             }
             $sessionSaveHandler = null;
             if (isset($session['save_handler'])) {
                 // class should be fetched from service manager since it will require constructor arguments
                 $sessionSaveHandler = $sm->get($session['save_handler']);
             }
             $sessionManager = new SessionManager($sessionConfig, $sessionStorage, $sessionSaveHandler);
             if (isset($session['validators'])) {
                 $chain = $sessionManager->getValidatorChain();
                 foreach ($session['validators'] as $validator) {
                     $validator = new $validator();
                     $chain->attach('session.validate', array($validator, 'isValid'));
                 }
             }
         } else {
             $sessionManager = new SessionManager();
         }
         Container::setDefaultManager($sessionManager);
         return $sessionManager;
     }, 'OnsiteReg\\Form\\ProductView' => function ($sm) {
         $productView = new Form\ProductView();
         $productView->setServiceLocator($sm);
         return $productView;
     }, 'OnsiteReg\\Form\\CreditCard' => function ($sm) {
         $form = new Form\CreditCard();
         $years = array();
         for ($i = date('Y'); $i <= date('Y') + 15; $i++) {
             $years[] = array('value' => $i, 'label' => $i);
         }
         $form->get('cc_expdate_year')->setAttribute('options', $years);
         $months = array();
         for ($i = 1; $i <= 12; $i++) {
             $months[] = array('value' => $i, 'label' => sprintf('%02d', $i));
         }
         $form->get('cc_expdate_month')->setAttribute('options', $months);
         return $form;
     }, 'OnsiteReg\\Service\\AgegroupService:price' => function ($sm) {
         $agegroupService = new Service\AgegroupService();
         $em = $sm->get('Doctrine\\ORM\\EntityManager');
         $agegroups = $em->getRepository("ErsBase\\Entity\\Agegroup")->findBy(array('price_change' => '1'));
         $agegroupService->setAgegroups($agegroups);
         return $agegroupService;
     }, 'OnsiteReg\\Service\\AgegroupService:ticket' => function ($sm) {
         $agegroupService = new Service\AgegroupService();
         $em = $sm->get('Doctrine\\ORM\\EntityManager');
         $agegroups = $em->getRepository("ErsBase\\Entity\\Agegroup")->findBy(array('ticket_change' => '1'));
         $agegroupService->setAgegroups($agegroups);
         return $agegroupService;
     }, 'OnsiteReg\\Service\\ETicketService' => function ($sm) {
         $eticketService = new Service\ETicketService();
         $eticketService->setServiceLocator($sm);
         return $eticketService;
     }));
 }
Пример #20
0
 /**
  * Create session manager object
  *
  * Will consume any combination (or zero) of the following services, when
  * present, to construct the SessionManager instance:
  *
  * - Zend\Session\Config\ConfigInterface
  * - Zend\Session\Storage\StorageInterface
  * - Zend\Session\SaveHandler\SaveHandlerInterface
  *
  * The first two have corresponding factories inside this namespace. The
  * last, however, does not, due to the differences in implementations, and
  * the fact that save handlers will often be written in userland. As such
  * if you wish to attach a save handler to the manager, you will need to
  * write your own factory, and assign it to the service name
  * "Zend\Session\SaveHandler\SaveHandlerInterface", (or alias that name
  * to your own service).
  *
  * You can configure limited behaviors via the "session_manager" key of the
  * Config service. Currently, these include:
  *
  * - enable_default_container_manager: whether to inject the created instance
  *   as the default manager for Container instances. The default value for
  *   this is true; set it to false to disable.
  * - validators: ...
  *
  * @param  ServiceLocatorInterface    $services
  * @return SessionManager
  * @throws ServiceNotCreatedException if any collaborators are not of the
  *         correct type
  */
 public function createService(ServiceLocatorInterface $services)
 {
     $config = null;
     $storage = null;
     $saveHandler = null;
     $managerConfig = $this->defaultManagerConfig;
     if ($services->has('Zend\\Session\\Config\\ConfigInterface')) {
         $config = $services->get('Zend\\Session\\Config\\ConfigInterface');
         if (!$config instanceof ConfigInterface) {
             throw new ServiceNotCreatedException(sprintf('SessionManager requires that the %s service implement %s; received "%s"', 'Zend\\Session\\Config\\ConfigInterface', 'Zend\\Session\\Config\\ConfigInterface', is_object($config) ? get_class($config) : gettype($config)));
         }
     }
     if ($services->has('Zend\\Session\\Storage\\StorageInterface')) {
         $storage = $services->get('Zend\\Session\\Storage\\StorageInterface');
         if (!$storage instanceof StorageInterface) {
             throw new ServiceNotCreatedException(sprintf('SessionManager requires that the %s service implement %s; received "%s"', 'Zend\\Session\\Storage\\StorageInterface', 'Zend\\Session\\Storage\\StorageInterface', is_object($storage) ? get_class($storage) : gettype($storage)));
         }
     }
     if ($services->has('Zend\\Session\\SaveHandler\\SaveHandlerInterface')) {
         $saveHandler = $services->get('Zend\\Session\\SaveHandler\\SaveHandlerInterface');
         if (!$saveHandler instanceof SaveHandlerInterface) {
             throw new ServiceNotCreatedException(sprintf('SessionManager requires that the %s service implement %s; received "%s"', 'Zend\\Session\\SaveHandler\\SaveHandlerInterface', 'Zend\\Session\\SaveHandler\\SaveHandlerInterface', is_object($saveHandler) ? get_class($saveHandler) : gettype($saveHandler)));
         }
     }
     $manager = new SessionManager($config, $storage, $saveHandler);
     // Get session manager configuration, if any, and merge with default configuration
     if ($services->has('Config')) {
         $configService = $services->get('Config');
         if (isset($configService['session_manager']) && is_array($configService['session_manager'])) {
             $managerConfig = array_merge($managerConfig, $configService['session_manager']);
         }
         // Attach validators to session manager, if any
         if (isset($managerConfig['validators'])) {
             $chain = $manager->getValidatorChain();
             foreach ($managerConfig['validators'] as $validator) {
                 $validator = new $validator();
                 $chain->attach('session.validate', array($validator, 'isValid'));
             }
         }
     }
     // If configuration enables the session manager as the default manager for container
     // instances, do so.
     if (isset($managerConfig['enable_default_container_manager']) && $managerConfig['enable_default_container_manager']) {
         Container::setDefaultManager($manager);
     }
     return $manager;
 }
Пример #21
0
 public function getServiceConfig()
 {
     return array('factories' => array('Application\\Utility\\Utilities' => function ($sm) {
         return new Utilities();
     }, 'UserTableGateway' => function ($sm) {
         // Change the gateway's name.
         $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
         $resultSetPrototype = new ResultSet();
         $resultSetPrototype->setArrayObjectPrototype(new User());
         // Change the instance's class name.
         return new TableGateway('users', $dbAdapter, null, $resultSetPrototype);
         // Change the table's name (this IS the table's name in the database).
     }, 'Application\\Model\\UserTable' => function ($sm) {
         // Change the class' name.
         $tableGateway = $sm->get('UserTableGateway');
         // Change the gateway's name.
         $table = new UserTable($tableGateway);
         // Change the instance's class name.
         return $table;
     }, 'TaskTableGateway' => function ($sm) {
         $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
         $resultSetPrototype = new ResultSet();
         $resultSetPrototype->setArrayObjectPrototype(new Task());
         // Change the instance's class name.
         return new TableGateway('tasks', $dbAdapter, null, $resultSetPrototype);
         // Change the table's name (this IS the table's name in the database).
     }, 'Application\\Model\\TaskTable' => function ($sm) {
         // Change the class' name.
         $tableGateway = $sm->get('TaskTableGateway');
         // Change the gateway's name.
         $table = new TaskTable($tableGateway);
         // Change the instance's class name.
         return $table;
     }, 'ProjectTableGateway' => function ($sm) {
         $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
         $resultSetPrototype = new ResultSet();
         $resultSetPrototype->setArrayObjectPrototype(new Project());
         return new TableGateway('projects', $dbAdapter, null, $resultSetPrototype);
     }, 'Application\\Model\\ProjectTable' => function ($sm) {
         $tableGateway = $sm->get('ProjectTableGateway');
         $table = new ProjectTable($tableGateway);
         return $table;
     }, 'ViewProjectMinTableGateway' => function ($sm) {
         $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
         $resultSetPrototype = new ResultSet();
         $resultSetPrototype->setArrayObjectPrototype(new ViewProjectMin());
         return new TableGateway('view_projects_min', $dbAdapter, null, $resultSetPrototype);
     }, 'Application\\Model\\ViewProjectMinTable' => function ($sm) {
         $tableGateway = $sm->get('ViewProjectMinTableGateway');
         $table = new ViewProjectMinTable($tableGateway);
         return $table;
     }, 'ViewProjectDetailsTableGateway' => function ($sm) {
         $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
         $resultSetPrototype = new ResultSet();
         $resultSetPrototype->setArrayObjectPrototype(new ViewProjectDetails());
         return new TableGateway('view_projects_details', $dbAdapter, null, $resultSetPrototype);
     }, 'Application\\Model\\ViewProjectDetailsTable' => function ($sm) {
         $tableGateway = $sm->get('ViewProjectDetailsTableGateway');
         $table = new ViewProjectDetailsTable($tableGateway);
         return $table;
     }, 'ProjectsUsersMembersTableGateway' => function ($sm) {
         $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
         $resultSetPrototype = new ResultSet();
         $resultSetPrototype->setArrayObjectPrototype(new ProjectsUsersMembers());
         return new TableGateway('projectsUsersMembers', $dbAdapter, null, $resultSetPrototype);
     }, 'Application\\Model\\ProjectsUsersMembersTable' => function ($sm) {
         $tableGateway = $sm->get('ProjectsUsersMembersTableGateway');
         $table = new ProjectsUsersMembersTable($tableGateway);
         return $table;
     }, 'ViewUsersProjectsTableGateway' => function ($sm) {
         $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
         $resultSetPrototype = new ResultSet();
         $resultSetPrototype->setArrayObjectPrototype(new ViewUsersProjects());
         return new TableGateway('view_users_projects', $dbAdapter, null, $resultSetPrototype);
     }, 'Application\\Model\\ViewUsersProjectsTable' => function ($sm) {
         $tableGateway = $sm->get('ViewUsersProjectsTableGateway');
         $table = new ViewUsersProjectsTable($tableGateway);
         return $table;
     }, 'ViewUsersTasksTableGateway' => function ($sm) {
         $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
         $resultSetPrototype = new ResultSet();
         $resultSetPrototype->setArrayObjectPrototype(new ViewUsersTasks());
         return new TableGateway('view_users_tasks', $dbAdapter, null, $resultSetPrototype);
     }, 'Application\\Model\\ViewUsersTasksTable' => function ($sm) {
         $tableGateway = $sm->get('ViewUsersTasksTableGateway');
         $table = new ViewUsersTasksTable($tableGateway);
         return $table;
     }, 'UsersTasksAffectationsTableGateway' => function ($sm) {
         $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
         $resultSetPrototype = new ResultSet();
         $resultSetPrototype->setArrayObjectPrototype(new UsersTasksAffectations());
         return new TableGateway('usersTasksAffectations', $dbAdapter, null, $resultSetPrototype);
     }, 'Application\\Model\\UsersTasksAffectationsTable' => function ($sm) {
         $tableGateway = $sm->get('UsersTasksAffectationsTableGateway');
         $table = new UsersTasksAffectationsTable($tableGateway);
         return $table;
     }, 'ViewProjectsMembersSpecializationsTableGateway' => function ($sm) {
         $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
         $resultSetPrototype = new ResultSet();
         $resultSetPrototype->setArrayObjectPrototype(new ViewProjectsMembersSpecializations());
         return new TableGateway('view_projects_members_specializations', $dbAdapter, null, $resultSetPrototype);
     }, 'Application\\Model\\ViewProjectsMembersSpecializationsTable' => function ($sm) {
         $tableGateway = $sm->get('ViewProjectsMembersSpecializationsTableGateway');
         $table = new ViewProjectsMembersSpecializationsTable($tableGateway);
         return $table;
     }, 'ViewTasksUsersTableGateway' => function ($sm) {
         $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
         $resultSetPrototype = new ResultSet();
         $resultSetPrototype->setArrayObjectPrototype(new ViewTasksUsers());
         return new TableGateway('view_tasks_users', $dbAdapter, null, $resultSetPrototype);
     }, 'Application\\Model\\ViewTasksUsersTable' => function ($sm) {
         $tableGateway = $sm->get('ViewTasksUsersTableGateway');
         $table = new ViewTasksUsersTable($tableGateway);
         return $table;
     }, 'EventTableGateway' => function ($sm) {
         $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
         $resultSetPrototype = new ResultSet();
         $resultSetPrototype->setArrayObjectPrototype(new Event());
         return new TableGateway('events', $dbAdapter, null, $resultSetPrototype);
     }, 'Application\\Model\\EventTable' => function ($sm) {
         $tableGateway = $sm->get('EventTableGateway');
         $table = new EventTable($tableGateway);
         return $table;
     }, 'EventOnProjectsTableGateway' => function ($sm) {
         $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
         $resultSetPrototype = new ResultSet();
         $resultSetPrototype->setArrayObjectPrototype(new EventOnProjects());
         return new TableGateway('eventsOnProjects', $dbAdapter, null, $resultSetPrototype);
     }, 'Application\\Model\\EventOnProjectsTable' => function ($sm) {
         $tableGateway = $sm->get('EventOnProjectsTableGateway');
         $table = new EventOnProjectsTable($tableGateway);
         return $table;
     }, 'EventUserTableGateway' => function ($sm) {
         $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
         $resultSetPrototype = new ResultSet();
         $resultSetPrototype->setArrayObjectPrototype(new EventUser());
         return new TableGateway('eventsUsers', $dbAdapter, null, $resultSetPrototype);
     }, 'Application\\Model\\EventUserTable' => function ($sm) {
         $tableGateway = $sm->get('EventUserTableGateway');
         $table = new EventUserTable($tableGateway);
         return $table;
     }, 'ViewEventTableGateway' => function ($sm) {
         $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
         $resultSetPrototype = new ResultSet();
         $resultSetPrototype->setArrayObjectPrototype(new ViewEvent());
         return new TableGateway('view_events', $dbAdapter, null, $resultSetPrototype);
     }, 'Application\\Model\\ViewEventTable' => function ($sm) {
         $tableGateway = $sm->get('ViewEventTableGateway');
         $table = new ViewEventTable($tableGateway);
         return $table;
     }, 'EventTypeTableGateway' => function ($sm) {
         $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
         $resultSetPrototype = new ResultSet();
         $resultSetPrototype->setArrayObjectPrototype(new EventType());
         return new TableGateway('eventTypes', $dbAdapter, null, $resultSetPrototype);
     }, 'Application\\Model\\EventTypeTable' => function ($sm) {
         $tableGateway = $sm->get('EventTypeTableGateway');
         $table = new EventTypeTable($tableGateway);
         return $table;
     }, 'EventOnTaskTableGateway' => function ($sm) {
         $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
         $resultSetPrototype = new ResultSet();
         $resultSetPrototype->setArrayObjectPrototype(new EventOnTask());
         return new TableGateway('eventsOnTasks', $dbAdapter, null, $resultSetPrototype);
     }, 'Application\\Model\\EventOnTaskTable' => function ($sm) {
         $tableGateway = $sm->get('EventOnTaskTableGateway');
         $table = new EventOnTaskTable($tableGateway);
         return $table;
     }, 'ProjectsUsersSpecializationsTableGateway' => function ($sm) {
         $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
         $resultSetPrototype = new ResultSet();
         $resultSetPrototype->setArrayObjectPrototype(new ProjectsUsersSpecializations());
         return new TableGateway('projectsUsersSpecializations', $dbAdapter, null, $resultSetPrototype);
     }, 'Application\\Model\\ProjectsUsersSpecializationsTable' => function ($sm) {
         $tableGateway = $sm->get('ProjectsUsersSpecializationsTableGateway');
         $table = new ProjectsUsersSpecializationsTable($tableGateway);
         return $table;
     }, 'Zend\\Session\\SessionManager' => function ($sm) {
         $config = $sm->get('config');
         if (isset($config['session'])) {
             $session = $config['session'];
             $sessionConfig = null;
             if (isset($session['config'])) {
                 $class = isset($session['config']['class']) ? $session['config']['class'] : 'Zend\\Session\\Config\\SessionConfig';
                 $options = isset($session['config']['options']) ? $session['config']['options'] : array();
                 $sessionConfig = new $class();
                 $sessionConfig->setOptions($options);
             }
             $sessionStorage = null;
             if (isset($session['storage'])) {
                 $class = $session['storage'];
                 $sessionStorage = new $class();
             }
             $sessionSaveHandler = null;
             if (isset($session['save_handler'])) {
                 // class should be fetched from service manager since it will require constructor arguments
                 $sessionSaveHandler = $sm->get($session['save_handler']);
             }
             $sessionManager = new SessionManager($sessionConfig, $sessionStorage, $sessionSaveHandler);
             if (isset($session['validator'])) {
                 $chain = $sessionManager->getValidatorChain();
                 foreach ($session['validator'] as $validator) {
                     $validator = new $validator();
                     $chain->attach('session.validate', array($validator, 'isValid'));
                 }
             }
         } else {
             $sessionManager = new SessionManager();
         }
         Container::setDefaultManager($sessionManager);
         return $sessionManager;
     }));
 }