예제 #1
0
파일: DiTest.php 프로젝트: jaeger-app/di
 public function testSetServiceCallable()
 {
     $bootstrap = new Di();
     $callable = function () {
         return 'foo to the who';
     };
     $bootstrap->setService('test_service', $callable);
     $services = $bootstrap->getServices();
     $this->assertArrayHasKey('test_service', $services);
     $this->assertEquals('foo to the who', $services['test_service']);
     $this->assertEquals('foo to the who', $bootstrap->getService('test_service'));
 }
예제 #2
0
 /**
  * Sets up and returns all the objects we'll use
  * 
  * @return \Pimple\Container
  */
 public function getServices()
 {
     $this->container = parent::getServices();
     $this->container['db'] = function ($c) {
         $db = new Db();
         $db->setCredentials($this->getDbConfig());
         $type = 'mysqli';
         if (class_exists('Pdo')) {
             $type = 'pdo';
         }
         $db->setAccessType($type);
         return $db;
     };
     $this->container['encrypt'] = function ($c) {
         $encrypt = new Encrypt();
         $new_key = $c['platform']->getEncryptionKey();
         $encrypt->setKey($new_key);
         return $encrypt;
     };
     $this->container['lang'] = function ($c) {
         $lang = new Language();
         if (is_array($this->getLangPath())) {
             foreach ($this->getLangPath() as $path) {
                 $lang->init($path);
             }
         } elseif ($this->getLangPath() != '') {
             $lang->init($this->getLangPath());
         }
         return $lang;
     };
     $this->container['validate'] = function ($c) {
         $validate = new Validate();
         $validate->setRegex($this->container['regex']);
         return $validate;
     };
     $this->container['files'] = function ($c) {
         $file = new Files();
         return $file;
     };
     $this->container['errors'] = function ($c) {
         $errors = new Errors();
         $errors->setValidation($c['validate']);
         return $errors;
     };
     $this->container['license'] = function ($c) {
         $license = new License();
         return $license;
     };
     $this->container['email'] = function ($c) {
         $email = new Email();
         $email->setView($c['view']);
         $email->setLang($c['lang']);
         return $email;
     };
     $this->container['view'] = function ($c) {
         $view = new View();
         $helpers = array('file_size' => function ($text) {
             return $this->container['view_helpers']->m62FileSize($text, false);
         }, 'lang' => function ($text) {
             return $this->container['view_helpers']->m62Lang($text);
         }, 'date_time' => function ($text, $html = true) {
             return $this->container['view_helpers']->m62DateTime($text, false);
         }, 'relative_time' => function ($date) {
             return $this->container['view_helpers']->m62RelativeDateTime($date);
         }, 'encode' => function ($text) {
             return $this->container['view_helpers']->m62Encode($text);
         }, 'decode' => function ($text) {
             return $this->container['view_helpers']->m62Decode($text);
         });
         $view->addHelper('m62', $helpers);
         return $view;
     };
     $this->container['regex'] = function ($c) {
         $regex = new Regex();
         return $regex;
     };
     $this->container['shell'] = function ($c) {
         $shell = new Shell();
         return $shell;
     };
     $this->container['console'] = function ($c) {
         $console = new Console();
         $console->setLang($c['lang']);
         return $console;
     };
     return $this->container;
 }