Changeset 990

Show
Ignore:
Timestamp:
06/15/08 15:50:14 (3 months ago)
Author:
bastnic
Message:

fixed #602 : jClasses::createBinded does not work, p=doubleface

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/jelix/CREDITS

    r989 r990  
    7777 - bug fixes on PDO support in jDb 
    7878 - fixed minor bugs 
    79  - Added enhanced service handling (dependency injection) in jClasses (#523
     79 - Added enhanced service handling (dependency injection) in jClasses (#523, #602
    8080 - implementation of "live" exit in command line (#406) 
    8181 
  • trunk/lib/jelix/CREDITS

    r989 r990  
    7777 - bug fixes on PDO support in jDb 
    7878 - fixed minor bugs 
    79  - Added enhanced service handling (dependency injection) in jClasses (#523
     79 - Added enhanced service handling (dependency injection) in jClasses (#523, #602
    8080 - implementation of "live" exit in command line (#406) 
    8181 
  • trunk/lib/jelix/CREDITS

    r989 r990  
    7777 - bug fixes on PDO support in jDb 
    7878 - fixed minor bugs 
    79  - Added enhanced service handling (dependency injection) in jClasses (#523
     79 - Added enhanced service handling (dependency injection) in jClasses (#523, #602
    8080 - implementation of "live" exit in command line (#406) 
    8181 
  • trunk/lib/jelix/CREDITS

    r989 r990  
    7777 - bug fixes on PDO support in jDb 
    7878 - fixed minor bugs 
    79  - Added enhanced service handling (dependency injection) in jClasses (#523
     79 - Added enhanced service handling (dependency injection) in jClasses (#523, #602
    8080 - implementation of "live" exit in command line (#406) 
    8181 
  • trunk/lib/jelix/utils/jBinding.class.php

    r939 r990  
    7373     * @return mixed 
    7474     */ 
    75     public function getInstance() { 
    76         if ($this->instance === null) { 
    77             if ($this->toSelector === null) { 
    78                 $this->toSelector = $this->_getClassSelector(); 
    79             } 
    80             $this->instance = jClasses::create($this->toSelector->toString()); 
     75    public function getInstance($singleton=true) { 
     76        $instance = null; 
     77        if (true === $singleton && $this->instance !== null) { 
     78            $instance = $this->instance; 
     79        } elseif (true === $singleton && $this->instance === null) { 
     80            $instance = $this->instance = $this->_createInstance(); 
     81        } else { // all cases with $singleton === false 
     82            $instance = $this->_createInstance(); 
    8183        } 
    82         return $this->instance; 
     84        return $instance; 
     85    } 
     86 
     87    /** 
     88     * Create the binded selector if not initialzed yet 
     89     *  
     90     * @return mixed  
     91     */ 
     92    protected function _createInstance() { 
     93        if ($this->toSelector === null) { 
     94            $this->instance   = null; 
     95            $this->toSelector = $this->_getClassSelector();     
     96        } 
     97        return jClasses::create($this->toSelector->toString()); 
    8398    } 
    8499 
  • trunk/lib/jelix/utils/jBinding.class.php

    r939 r990  
    7373     * @return mixed 
    7474     */ 
    75     public function getInstance() { 
    76         if ($this->instance === null) { 
    77             if ($this->toSelector === null) { 
    78                 $this->toSelector = $this->_getClassSelector(); 
    79             } 
    80             $this->instance = jClasses::create($this->toSelector->toString()); 
     75    public function getInstance($singleton=true) { 
     76        $instance = null; 
     77        if (true === $singleton && $this->instance !== null) { 
     78            $instance = $this->instance; 
     79        } elseif (true === $singleton && $this->instance === null) { 
     80            $instance = $this->instance = $this->_createInstance(); 
     81        } else { // all cases with $singleton === false 
     82            $instance = $this->_createInstance(); 
    8183        } 
    82         return $this->instance; 
     84        return $instance; 
     85    } 
     86 
     87    /** 
     88     * Create the binded selector if not initialzed yet 
     89     *  
     90     * @return mixed  
     91     */ 
     92    protected function _createInstance() { 
     93        if ($this->toSelector === null) { 
     94            $this->instance   = null; 
     95            $this->toSelector = $this->_getClassSelector();     
     96        } 
     97        return jClasses::create($this->toSelector->toString()); 
    8398    } 
    8499 
  • trunk/lib/jelix/utils/jBinding.class.php

    r939 r990  
    7373     * @return mixed 
    7474     */ 
    75     public function getInstance() { 
    76         if ($this->instance === null) { 
    77             if ($this->toSelector === null) { 
    78                 $this->toSelector = $this->_getClassSelector(); 
    79             } 
    80             $this->instance = jClasses::create($this->toSelector->toString()); 
     75    public function getInstance($singleton=true) { 
     76        $instance = null; 
     77        if (true === $singleton && $this->instance !== null) { 
     78            $instance = $this->instance; 
     79        } elseif (true === $singleton && $this->instance === null) { 
     80            $instance = $this->instance = $this->_createInstance(); 
     81        } else { // all cases with $singleton === false 
     82            $instance = $this->_createInstance(); 
    8183        } 
    82         return $this->instance; 
     84        return $instance; 
     85    } 
     86 
     87    /** 
     88     * Create the binded selector if not initialzed yet 
     89     *  
     90     * @return mixed  
     91     */ 
     92    protected function _createInstance() { 
     93        if ($this->toSelector === null) { 
     94            $this->instance   = null; 
     95            $this->toSelector = $this->_getClassSelector();     
     96        } 
     97        return jClasses::create($this->toSelector->toString()); 
    8398    } 
    8499 
  • trunk/lib/jelix/utils/jBinding.class.php

    r939 r990  
    7373     * @return mixed 
    7474     */ 
    75     public function getInstance() { 
    76         if ($this->instance === null) { 
    77             if ($this->toSelector === null) { 
    78                 $this->toSelector = $this->_getClassSelector(); 
    79             } 
    80             $this->instance = jClasses::create($this->toSelector->toString()); 
     75    public function getInstance($singleton=true) { 
     76        $instance = null; 
     77        if (true === $singleton && $this->instance !== null) { 
     78            $instance = $this->instance; 
     79        } elseif (true === $singleton && $this->instance === null) { 
     80            $instance = $this->instance = $this->_createInstance(); 
     81        } else { // all cases with $singleton === false 
     82            $instance = $this->_createInstance(); 
    8183        } 
    82         return $this->instance; 
     84        return $instance; 
     85    } 
     86 
     87    /** 
     88     * Create the binded selector if not initialzed yet 
     89     *  
     90     * @return mixed  
     91     */ 
     92    protected function _createInstance() { 
     93        if ($this->toSelector === null) { 
     94            $this->instance   = null; 
     95            $this->toSelector = $this->_getClassSelector();     
     96        } 
     97        return jClasses::create($this->toSelector->toString()); 
    8398    } 
    8499 
  • trunk/lib/jelix/utils/jClasses.class.php

    r939 r990  
    4747     */ 
    4848    static public function createBinded($selector) { 
    49         return self::getBinding($selector, false); 
     49        return self::getBinding($selector)->getInstance(false); 
    5050    } 
    5151 
     
    109109     * @since 1.1 
    110110     */ 
    111     static public function getBinding($selector, $singleton=true) { 
     111    static public function getBinding($selector) { 
    112112        $osel = jSelectorFactory::create($selector, 'iface'); 
    113113        $s    = $osel->toString(true); 
    114114 
    115         $binding = null; 
    116         if ($singleton === false || !isset(self::$_bindings[$s])) { 
    117             $binding = new jBinding($osel); 
    118             if ($singleton === true) self::$_bindings[$s] = $binding; 
    119         } else { 
    120             $binding = self::$_bindings[$s]; 
     115        if (!isset(self::$_bindings[$s])) { 
     116            self::$_bindings[$s] = new jBinding($osel); 
    121117        } 
    122118 
    123  
    124         return $binding; 
     119        return self::$_bindings[$s]; 
    125120    } 
    126121 
  • trunk/lib/jelix/utils/jClasses.class.php

    r939 r990  
    4747     */ 
    4848    static public function createBinded($selector) { 
    49         return self::getBinding($selector, false); 
     49        return self::getBinding($selector)->getInstance(false); 
    5050    } 
    5151 
     
    109109     * @since 1.1 
    110110     */ 
    111     static public function getBinding($selector, $singleton=true) { 
     111    static public function getBinding($selector) { 
    112112        $osel = jSelectorFactory::create($selector, 'iface'); 
    113113        $s    = $osel->toString(true); 
    114114 
    115         $binding = null; 
    116         if ($singleton === false || !isset(self::$_bindings[$s])) { 
    117             $binding = new jBinding($osel); 
    118             if ($singleton === true) self::$_bindings[$s] = $binding; 
    119         } else { 
    120             $binding = self::$_bindings[$s]; 
     115        if (!isset(self::$_bindings[$s])) { 
     116            self::$_bindings[$s] = new jBinding($osel); 
    121117        } 
    122118 
    123  
    124         return $binding; 
     119        return self::$_bindings[$s]; 
    125120    } 
    126121 
  • trunk/lib/jelix/utils/jClasses.class.php

    r939 r990  
    4747     */ 
    4848    static public function createBinded($selector) { 
    49         return self::getBinding($selector, false); 
     49        return self::getBinding($selector)->getInstance(false); 
    5050    } 
    5151 
     
    109109     * @since 1.1 
    110110     */ 
    111     static public function getBinding($selector, $singleton=true) { 
     111    static public function getBinding($selector) { 
    112112        $osel = jSelectorFactory::create($selector, 'iface'); 
    113113        $s    = $osel->toString(true); 
    114114 
    115         $binding = null; 
    116         if ($singleton === false || !isset(self::$_bindings[$s])) { 
    117             $binding = new jBinding($osel); 
    118             if ($singleton === true) self::$_bindings[$s] = $binding; 
    119         } else { 
    120             $binding = self::$_bindings[$s]; 
     115        if (!isset(self::$_bindings[$s])) { 
     116            self::$_bindings[$s] = new jBinding($osel); 
    121117        } 
    122118 
    123  
    124         return $binding; 
     119        return self::$_bindings[$s]; 
    125120    } 
    126121 
  • trunk/lib/jelix/utils/jClasses.class.php

    r939 r990  
    4747     */ 
    4848    static public function createBinded($selector) { 
    49         return self::getBinding($selector, false); 
     49        return self::getBinding($selector)->getInstance(false); 
    5050    } 
    5151 
     
    109109     * @since 1.1 
    110110     */ 
    111     static public function getBinding($selector, $singleton=true) { 
     111    static public function getBinding($selector) { 
    112112        $osel = jSelectorFactory::create($selector, 'iface'); 
    113113        $s    = $osel->toString(true); 
    114114 
    115         $binding = null; 
    116         if ($singleton === false || !isset(self::$_bindings[$s])) { 
    117             $binding = new jBinding($osel); 
    118             if ($singleton === true) self::$_bindings[$s] = $binding; 
    119         } else { 
    120             $binding = self::$_bindings[$s]; 
     115        if (!isset(self::$_bindings[$s])) { 
     116            self::$_bindings[$s] = new jBinding($osel); 
    121117        } 
    122118 
    123  
    124         return $binding; 
     119        return self::$_bindings[$s]; 
    125120    } 
    126121 
  • trunk/testapp/modules/jelix_tests/tests/utils.jclasses.html_cli.php

    r939 r990  
    111111        $obj1 = jClasses::createBinded('class:jelix_tests~myclass'); 
    112112        $obj2 = jClasses::createBinded('class:jelix_tests~myclass'); 
     113        $this->assertTrue($obj1 instanceof myclass); 
     114        $this->assertTrue($obj2 instanceof myclass); 
    113115        $this->assertTrue($obj1 !== $obj2); 
    114116 
     
    123125    public function testCreateBindedWithToInstanceCalledTwice(){ 
    124126        $instance = new StdClass(); 
    125         jClasses::bind('jelix_tests~test')->toInstance($instance); 
    126         $obj1 = jClasses::createBinded('jelix_tests~test'); 
    127         $obj2 = jClasses::createBinded('jelix_tests~test'); 
     127        jClasses::bind('class:jelix_tests~myclass')->toInstance($instance); 
     128        $obj1 = jClasses::createBinded('class:jelix_tests~myclass'); 
     129        $obj2 = jClasses::createBinded('class:jelix_tests~myclass'); 
     130        $this->assertTrue($obj1 instanceof myclass); 
     131        $this->assertTrue($obj2 instanceof myclass); 
    128132        $this->assertTrue($obj1 !== $obj2); 
    129133    } 
  • trunk/testapp/modules/jelix_tests/tests/utils.jclasses.html_cli.php

    r939 r990  
    111111        $obj1 = jClasses::createBinded('class:jelix_tests~myclass'); 
    112112        $obj2 = jClasses::createBinded('class:jelix_tests~myclass'); 
     113        $this->assertTrue($obj1 instanceof myclass); 
     114        $this->assertTrue($obj2 instanceof myclass); 
    113115        $this->assertTrue($obj1 !== $obj2); 
    114116 
     
    123125    public function testCreateBindedWithToInstanceCalledTwice(){ 
    124126        $instance = new StdClass(); 
    125         jClasses::bind('jelix_tests~test')->toInstance($instance); 
    126         $obj1 = jClasses::createBinded('jelix_tests~test'); 
    127         $obj2 = jClasses::createBinded('jelix_tests~test'); 
     127        jClasses::bind('class:jelix_tests~myclass')->toInstance($instance); 
     128        $obj1 = jClasses::createBinded('class:jelix_tests~myclass'); 
     129        $obj2 = jClasses::createBinded('class:jelix_tests~myclass'); 
     130        $this->assertTrue($obj1 instanceof myclass); 
     131        $this->assertTrue($obj2 instanceof myclass); 
    128132        $this->assertTrue($obj1 !== $obj2); 
    129133    } 
  • trunk/testapp/modules/jelix_tests/tests/utils.jclasses.html_cli.php

    r939 r990  
    111111        $obj1 = jClasses::createBinded('class:jelix_tests~myclass'); 
    112112        $obj2 = jClasses::createBinded('class:jelix_tests~myclass'); 
     113        $this->assertTrue($obj1 instanceof myclass); 
     114        $this->assertTrue($obj2 instanceof myclass); 
    113115        $this->assertTrue($obj1 !== $obj2); 
    114116 
     
    123125    public function testCreateBindedWithToInstanceCalledTwice(){ 
    124126        $instance = new StdClass(); 
    125         jClasses::bind('jelix_tests~test')->toInstance($instance); 
    126         $obj1 = jClasses::createBinded('jelix_tests~test'); 
    127         $obj2 = jClasses::createBinded('jelix_tests~test'); 
     127        jClasses::bind('class:jelix_tests~myclass')->toInstance($instance); 
     128        $obj1 = jClasses::createBinded('class:jelix_tests~myclass'); 
     129        $obj2 = jClasses::createBinded('class:jelix_tests~myclass'); 
     130        $this->assertTrue($obj1 instanceof myclass); 
     131        $this->assertTrue($obj2 instanceof myclass); 
    128132        $this->assertTrue($obj1 !== $obj2); 
    129133    } 
  • trunk/testapp/modules/jelix_tests/tests/utils.jclasses.html_cli.php

    r939 r990  
    111111        $obj1 = jClasses::createBinded('class:jelix_tests~myclass'); 
    112112        $obj2 = jClasses::createBinded('class:jelix_tests~myclass'); 
     113        $this->assertTrue($obj1 instanceof myclass); 
     114        $this->assertTrue($obj2 instanceof myclass); 
    113115        $this->assertTrue($obj1 !== $obj2); 
    114116 
     
    123125    public function testCreateBindedWithToInstanceCalledTwice(){ 
    124126        $instance = new StdClass(); 
    125         jClasses::bind('jelix_tests~test')->toInstance($instance); 
    126         $obj1 = jClasses::createBinded('jelix_tests~test'); 
    127         $obj2 = jClasses::createBinded('jelix_tests~test'); 
     127        jClasses::bind('class:jelix_tests~myclass')->toInstance($instance); 
     128        $obj1 = jClasses::createBinded('class:jelix_tests~myclass'); 
     129        $obj2 = jClasses::createBinded('class:jelix_tests~myclass'); 
     130        $this->assertTrue($obj1 instanceof myclass); 
     131        $this->assertTrue($obj2 instanceof myclass); 
    128132        $this->assertTrue($obj1 !== $obj2); 
    129133    } 
Download in other formats: Unified Diff Zip Archive