Changeset 990
- Timestamp:
- 06/15/08 15:50:14 (3 months ago)
- Files:
-
- trunk/lib/jelix/CREDITS (modified) (1 diff)
- trunk/lib/jelix/CREDITS (modified) (1 diff)
- trunk/lib/jelix/CREDITS (modified) (1 diff)
- trunk/lib/jelix/CREDITS (modified) (1 diff)
- trunk/lib/jelix/utils/jBinding.class.php (modified) (1 diff)
- trunk/lib/jelix/utils/jBinding.class.php (modified) (1 diff)
- trunk/lib/jelix/utils/jBinding.class.php (modified) (1 diff)
- trunk/lib/jelix/utils/jBinding.class.php (modified) (1 diff)
- trunk/lib/jelix/utils/jClasses.class.php (modified) (2 diffs)
- trunk/lib/jelix/utils/jClasses.class.php (modified) (2 diffs)
- trunk/lib/jelix/utils/jClasses.class.php (modified) (2 diffs)
- trunk/lib/jelix/utils/jClasses.class.php (modified) (2 diffs)
- trunk/testapp/modules/jelix_tests/tests/utils.jclasses.html_cli.php (modified) (2 diffs)
- trunk/testapp/modules/jelix_tests/tests/utils.jclasses.html_cli.php (modified) (2 diffs)
- trunk/testapp/modules/jelix_tests/tests/utils.jclasses.html_cli.php (modified) (2 diffs)
- trunk/testapp/modules/jelix_tests/tests/utils.jclasses.html_cli.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/jelix/CREDITS
r989 r990 77 77 - bug fixes on PDO support in jDb 78 78 - fixed minor bugs 79 - Added enhanced service handling (dependency injection) in jClasses (#523 )79 - Added enhanced service handling (dependency injection) in jClasses (#523, #602) 80 80 - implementation of "live" exit in command line (#406) 81 81 trunk/lib/jelix/CREDITS
r989 r990 77 77 - bug fixes on PDO support in jDb 78 78 - fixed minor bugs 79 - Added enhanced service handling (dependency injection) in jClasses (#523 )79 - Added enhanced service handling (dependency injection) in jClasses (#523, #602) 80 80 - implementation of "live" exit in command line (#406) 81 81 trunk/lib/jelix/CREDITS
r989 r990 77 77 - bug fixes on PDO support in jDb 78 78 - fixed minor bugs 79 - Added enhanced service handling (dependency injection) in jClasses (#523 )79 - Added enhanced service handling (dependency injection) in jClasses (#523, #602) 80 80 - implementation of "live" exit in command line (#406) 81 81 trunk/lib/jelix/CREDITS
r989 r990 77 77 - bug fixes on PDO support in jDb 78 78 - fixed minor bugs 79 - Added enhanced service handling (dependency injection) in jClasses (#523 )79 - Added enhanced service handling (dependency injection) in jClasses (#523, #602) 80 80 - implementation of "live" exit in command line (#406) 81 81 trunk/lib/jelix/utils/jBinding.class.php
r939 r990 73 73 * @return mixed 74 74 */ 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(); 81 83 } 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()); 83 98 } 84 99 trunk/lib/jelix/utils/jBinding.class.php
r939 r990 73 73 * @return mixed 74 74 */ 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(); 81 83 } 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()); 83 98 } 84 99 trunk/lib/jelix/utils/jBinding.class.php
r939 r990 73 73 * @return mixed 74 74 */ 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(); 81 83 } 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()); 83 98 } 84 99 trunk/lib/jelix/utils/jBinding.class.php
r939 r990 73 73 * @return mixed 74 74 */ 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(); 81 83 } 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()); 83 98 } 84 99 trunk/lib/jelix/utils/jClasses.class.php
r939 r990 47 47 */ 48 48 static public function createBinded($selector) { 49 return self::getBinding($selector ,false);49 return self::getBinding($selector)->getInstance(false); 50 50 } 51 51 … … 109 109 * @since 1.1 110 110 */ 111 static public function getBinding($selector , $singleton=true) {111 static public function getBinding($selector) { 112 112 $osel = jSelectorFactory::create($selector, 'iface'); 113 113 $s = $osel->toString(true); 114 114 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); 121 117 } 122 118 123 124 return $binding; 119 return self::$_bindings[$s]; 125 120 } 126 121 trunk/lib/jelix/utils/jClasses.class.php
r939 r990 47 47 */ 48 48 static public function createBinded($selector) { 49 return self::getBinding($selector ,false);49 return self::getBinding($selector)->getInstance(false); 50 50 } 51 51 … … 109 109 * @since 1.1 110 110 */ 111 static public function getBinding($selector , $singleton=true) {111 static public function getBinding($selector) { 112 112 $osel = jSelectorFactory::create($selector, 'iface'); 113 113 $s = $osel->toString(true); 114 114 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); 121 117 } 122 118 123 124 return $binding; 119 return self::$_bindings[$s]; 125 120 } 126 121 trunk/lib/jelix/utils/jClasses.class.php
r939 r990 47 47 */ 48 48 static public function createBinded($selector) { 49 return self::getBinding($selector ,false);49 return self::getBinding($selector)->getInstance(false); 50 50 } 51 51 … … 109 109 * @since 1.1 110 110 */ 111 static public function getBinding($selector , $singleton=true) {111 static public function getBinding($selector) { 112 112 $osel = jSelectorFactory::create($selector, 'iface'); 113 113 $s = $osel->toString(true); 114 114 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); 121 117 } 122 118 123 124 return $binding; 119 return self::$_bindings[$s]; 125 120 } 126 121 trunk/lib/jelix/utils/jClasses.class.php
r939 r990 47 47 */ 48 48 static public function createBinded($selector) { 49 return self::getBinding($selector ,false);49 return self::getBinding($selector)->getInstance(false); 50 50 } 51 51 … … 109 109 * @since 1.1 110 110 */ 111 static public function getBinding($selector , $singleton=true) {111 static public function getBinding($selector) { 112 112 $osel = jSelectorFactory::create($selector, 'iface'); 113 113 $s = $osel->toString(true); 114 114 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); 121 117 } 122 118 123 124 return $binding; 119 return self::$_bindings[$s]; 125 120 } 126 121 trunk/testapp/modules/jelix_tests/tests/utils.jclasses.html_cli.php
r939 r990 111 111 $obj1 = jClasses::createBinded('class:jelix_tests~myclass'); 112 112 $obj2 = jClasses::createBinded('class:jelix_tests~myclass'); 113 $this->assertTrue($obj1 instanceof myclass); 114 $this->assertTrue($obj2 instanceof myclass); 113 115 $this->assertTrue($obj1 !== $obj2); 114 116 … … 123 125 public function testCreateBindedWithToInstanceCalledTwice(){ 124 126 $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); 128 132 $this->assertTrue($obj1 !== $obj2); 129 133 } trunk/testapp/modules/jelix_tests/tests/utils.jclasses.html_cli.php
r939 r990 111 111 $obj1 = jClasses::createBinded('class:jelix_tests~myclass'); 112 112 $obj2 = jClasses::createBinded('class:jelix_tests~myclass'); 113 $this->assertTrue($obj1 instanceof myclass); 114 $this->assertTrue($obj2 instanceof myclass); 113 115 $this->assertTrue($obj1 !== $obj2); 114 116 … … 123 125 public function testCreateBindedWithToInstanceCalledTwice(){ 124 126 $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); 128 132 $this->assertTrue($obj1 !== $obj2); 129 133 } trunk/testapp/modules/jelix_tests/tests/utils.jclasses.html_cli.php
r939 r990 111 111 $obj1 = jClasses::createBinded('class:jelix_tests~myclass'); 112 112 $obj2 = jClasses::createBinded('class:jelix_tests~myclass'); 113 $this->assertTrue($obj1 instanceof myclass); 114 $this->assertTrue($obj2 instanceof myclass); 113 115 $this->assertTrue($obj1 !== $obj2); 114 116 … … 123 125 public function testCreateBindedWithToInstanceCalledTwice(){ 124 126 $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); 128 132 $this->assertTrue($obj1 !== $obj2); 129 133 } trunk/testapp/modules/jelix_tests/tests/utils.jclasses.html_cli.php
r939 r990 111 111 $obj1 = jClasses::createBinded('class:jelix_tests~myclass'); 112 112 $obj2 = jClasses::createBinded('class:jelix_tests~myclass'); 113 $this->assertTrue($obj1 instanceof myclass); 114 $this->assertTrue($obj2 instanceof myclass); 113 115 $this->assertTrue($obj1 !== $obj2); 114 116 … … 123 125 public function testCreateBindedWithToInstanceCalledTwice(){ 124 126 $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); 128 132 $this->assertTrue($obj1 !== $obj2); 129 133 }
