Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yii2
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PSDI Army
yii2
Commits
95135f11
Commit
95135f11
authored
Dec 30, 2011
by
Qiang Xue
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
a00afed1
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
112 additions
and
33 deletions
+112
-33
Dictionary.php
framework/base/Dictionary.php
+2
-2
Object.php
framework/base/Object.php
+23
-0
Vector.php
framework/base/Vector.php
+1
-1
Query.php
framework/db/dao/Query.php
+80
-24
DictionaryTest.php
tests/unit/framework/base/DictionaryTest.php
+3
-3
VectorTest.php
tests/unit/framework/base/VectorTest.php
+3
-3
No files found.
framework/base/Dictionary.php
View file @
95135f11
...
...
@@ -179,7 +179,7 @@ class Dictionary extends Object implements \IteratorAggregate, \ArrayAccess, \Co
* @param mixed $data the data to be copied from, must be an array or an object implementing `Traversable`
* @throws Exception if data is neither an array nor an iterator.
*/
public
function
copyFrom
(
$data
)
public
function
fromArray
(
$data
)
{
if
(
is_array
(
$data
)
||
$data
instanceof
\Traversable
)
{
if
(
$this
->
_d
!==
array
())
{
...
...
@@ -211,7 +211,7 @@ class Dictionary extends Object implements \IteratorAggregate, \ArrayAccess, \Co
* @param mixed $data the data to be merged with, must be an array or object implementing Traversable
* @param boolean $recursive whether the merging should be recursive.
*
* @throws
C
Exception If data is neither an array nor an iterator.
* @throws Exception If data is neither an array nor an iterator.
*/
public
function
mergeWith
(
$data
,
$recursive
=
true
)
{
...
...
framework/base/Object.php
View file @
95135f11
...
...
@@ -342,4 +342,27 @@ class Object
return
$object
;
}
/**
* Configures the object properties with the specified array.
* @param array $array name-value pairs to be used to initialize the properties of this object.
* @return Object the object itself
*/
public
function
fromArray
(
$array
)
{
foreach
(
$array
as
$name
=>
$value
)
{
$this
->
$name
=
$value
;
}
return
$this
;
}
/**
* Returns the object in terms of an array.
* The default implementation will return the result of PHP function `get_object_vars()`.
* @return array the array representation of this object.
*/
public
function
toArray
()
{
return
get_object_vars
(
$this
);
}
}
framework/base/Vector.php
View file @
95135f11
...
...
@@ -240,7 +240,7 @@ class Vector extends Object implements \IteratorAggregate, \ArrayAccess, \Counta
* @param mixed $data the data to be copied from, must be an array or an object implementing `Traversable`
* @throws Exception if data is neither an array nor an object implementing `Traversable`.
*/
public
function
copyFrom
(
$data
)
public
function
fromArray
(
$data
)
{
if
(
is_array
(
$data
)
||
$data
instanceof
\Traversable
)
{
if
(
$this
->
_c
>
0
)
{
...
...
framework/db/dao/Query.php
View file @
95135f11
...
...
@@ -220,7 +220,9 @@ class Query extends \yii\base\Object
* the `NOT LIKE` predicates.
*
* @param string|array $condition the conditions that should be put in the WHERE part.
* @param array $params the parameters (name=>value) to be bound to the query
* @param array $params the parameters (name=>value) to be bound to the query.
* For anonymous parameters, they can alternatively be specified as separate parameters to this method.
* For example, `where('type=? AND status=?', 100, 1)`.
* @return Query the query object itself
* @see andWhere()
* @see orWhere()
...
...
@@ -228,6 +230,10 @@ class Query extends \yii\base\Object
public
function
where
(
$condition
,
$params
=
array
())
{
$this
->
where
=
$condition
;
if
(
!
is_array
(
$params
))
{
$params
=
func_get_args
();
array_shift
(
$params
);
}
$this
->
addParams
(
$params
);
return
$this
;
}
...
...
@@ -237,7 +243,8 @@ class Query extends \yii\base\Object
* The new condition and the existing one will be joined using the 'AND' operator.
* @param string|array $condition the new WHERE condition. Please refer to [[where()]]
* on how to specify this parameter.
* @param array $params the parameters (name=>value) to be bound to the query
* @param array $params the parameters (name=>value) to be bound to the query.
* Please refer to [[where()]] on alternative syntax of specifying anonymous parameters.
* @return Query the query object itself
* @see where()
* @see orWhere()
...
...
@@ -249,6 +256,10 @@ class Query extends \yii\base\Object
}
else
{
$this
->
where
=
array
(
'and'
,
$this
->
where
,
$condition
);
}
if
(
!
is_array
(
$params
))
{
$params
=
func_get_args
();
array_shift
(
$params
);
}
$this
->
addParams
(
$params
);
return
$this
;
}
...
...
@@ -258,7 +269,8 @@ class Query extends \yii\base\Object
* The new condition and the existing one will be joined using the 'OR' operator.
* @param string|array $condition the new WHERE condition. Please refer to [[where()]]
* on how to specify this parameter.
* @param array $params the parameters (name=>value) to be bound to the query
* @param array $params the parameters (name=>value) to be bound to the query.
* Please refer to [[where()]] on alternative syntax of specifying anonymous parameters.
* @return Query the query object itself
* @see where()
* @see andWhere()
...
...
@@ -270,6 +282,10 @@ class Query extends \yii\base\Object
}
else
{
$this
->
where
=
array
(
'or'
,
$this
->
where
,
$condition
);
}
if
(
!
is_array
(
$params
))
{
$params
=
func_get_args
();
array_shift
(
$params
);
}
$this
->
addParams
(
$params
);
return
$this
;
}
...
...
@@ -282,12 +298,18 @@ class Query extends \yii\base\Object
* (which means the table is given as a sub-query or DB expression).
* @param string|array $condition the join condition that should appear in the ON part.
* Please refer to [[where()]] on how to specify this parameter.
* @param array $params the parameters (name=>value) to be bound to the query
* @param array $params the parameters (name=>value) to be bound to the query.
* Please refer to [[where()]] on alternative syntax of specifying anonymous parameters.
* @return Query the query object itself
*/
public
function
join
(
$table
,
$condition
,
$params
=
array
())
{
$this
->
join
[]
=
array
(
'JOIN'
,
$table
,
$condition
);
if
(
!
is_array
(
$params
))
{
$params
=
func_get_args
();
array_shift
(
$params
);
array_shift
(
$params
);
}
return
$this
->
addParams
(
$params
);
}
...
...
@@ -305,6 +327,11 @@ class Query extends \yii\base\Object
public
function
leftJoin
(
$table
,
$condition
,
$params
=
array
())
{
$this
->
join
[]
=
array
(
'LEFT JOIN'
,
$table
,
$condition
);
if
(
!
is_array
(
$params
))
{
$params
=
func_get_args
();
array_shift
(
$params
);
array_shift
(
$params
);
}
return
$this
->
addParams
(
$params
);
}
...
...
@@ -322,6 +349,11 @@ class Query extends \yii\base\Object
public
function
rightJoin
(
$table
,
$condition
,
$params
=
array
())
{
$this
->
join
[]
=
array
(
'RIGHT JOIN'
,
$table
,
$condition
);
if
(
!
is_array
(
$params
))
{
$params
=
func_get_args
();
array_shift
(
$params
);
array_shift
(
$params
);
}
return
$this
->
addParams
(
$params
);
}
...
...
@@ -399,7 +431,8 @@ class Query extends \yii\base\Object
* Sets the HAVING part of the query.
* @param string|array $condition the conditions to be put after HAVING.
* Please refer to [[where()]] on how to specify this parameter.
* @param array $params the parameters (name=>value) to be bound to the query
* @param array $params the parameters (name=>value) to be bound to the query.
* Please refer to [[where()]] on alternative syntax of specifying anonymous parameters.
* @return Query the query object itself
* @see andHaving()
* @see orHaving()
...
...
@@ -407,6 +440,10 @@ class Query extends \yii\base\Object
public
function
having
(
$condition
,
$params
=
array
())
{
$this
->
having
=
$condition
;
if
(
!
is_array
(
$params
))
{
$params
=
func_get_args
();
array_shift
(
$params
);
}
$this
->
addParams
(
$params
);
return
$this
;
}
...
...
@@ -416,7 +453,8 @@ class Query extends \yii\base\Object
* The new condition and the existing one will be joined using the 'AND' operator.
* @param string|array $condition the new HAVING condition. Please refer to [[where()]]
* on how to specify this parameter.
* @param array $params the parameters (name=>value) to be bound to the query
* @param array $params the parameters (name=>value) to be bound to the query.
* Please refer to [[where()]] on alternative syntax of specifying anonymous parameters.
* @return Query the query object itself
* @see having()
* @see orHaving()
...
...
@@ -428,6 +466,10 @@ class Query extends \yii\base\Object
}
else
{
$this
->
having
=
array
(
'and'
,
$this
->
having
,
$condition
);
}
if
(
!
is_array
(
$params
))
{
$params
=
func_get_args
();
array_shift
(
$params
);
}
$this
->
addParams
(
$params
);
return
$this
;
}
...
...
@@ -437,7 +479,8 @@ class Query extends \yii\base\Object
* The new condition and the existing one will be joined using the 'OR' operator.
* @param string|array $condition the new HAVING condition. Please refer to [[where()]]
* on how to specify this parameter.
* @param array $params the parameters (name=>value) to be bound to the query
* @param array $params the parameters (name=>value) to be bound to the query.
* Please refer to [[where()]] on alternative syntax of specifying anonymous parameters.
* @return Query the query object itself
* @see having()
* @see andHaving()
...
...
@@ -449,6 +492,10 @@ class Query extends \yii\base\Object
}
else
{
$this
->
having
=
array
(
'or'
,
$this
->
having
,
$condition
);
}
if
(
!
is_array
(
$params
))
{
$params
=
func_get_args
();
array_shift
(
$params
);
}
$this
->
addParams
(
$params
);
return
$this
;
}
...
...
@@ -530,11 +577,15 @@ class Query extends \yii\base\Object
* Sets the parameters to be bound to the query.
* @param array list of query parameter values indexed by parameter placeholders.
* For example, `array(':name'=>'Dan', ':age'=>31)`.
* Please refer to [[where()]] on alternative syntax of specifying anonymous parameters.
* @return Query the query object itself
* @see addParams()
*/
public
function
params
(
$params
)
{
if
(
!
is_array
(
$params
))
{
$params
=
func_get_args
();
}
$this
->
params
=
$params
;
return
$this
;
}
...
...
@@ -543,11 +594,15 @@ class Query extends \yii\base\Object
* Adds additional parameters to be bound to the query.
* @param array list of query parameter values indexed by parameter placeholders.
* For example, `array(':name'=>'Dan', ':age'=>31)`.
* Please refer to [[where()]] on alternative syntax of specifying anonymous parameters.
* @return Query the query object itself
* @see params()
*/
public
function
addParams
(
$params
)
{
if
(
!
is_array
(
$params
))
{
$params
=
func_get_args
();
}
foreach
(
$params
as
$name
=>
$value
)
{
if
(
is_integer
(
$name
))
{
$this
->
params
[]
=
$value
;
...
...
@@ -578,11 +633,18 @@ class Query extends \yii\base\Object
* @param array $columns the column data (name=>value) to be updated.
* @param string|array $condition the conditions that will be put in the WHERE part.
* Please refer to [[where()]] on how to specify this parameter.
* @param array $params the parameters to be bound to the query.
* @param array $params the parameters (name=>value) to be bound to the query.
* Please refer to [[where()]] on alternative syntax of specifying anonymous parameters.
* @return Query the query object itself
*/
public
function
update
(
$table
,
$columns
,
$condition
=
''
,
$params
=
array
())
{
if
(
!
is_array
(
$params
))
{
$params
=
func_get_args
();
array_shift
(
$params
);
array_shift
(
$params
);
array_shift
(
$params
);
}
$this
->
addParams
(
$params
);
$this
->
operation
=
array
(
__FUNCTION__
,
$table
,
$columns
,
$condition
,
array
());
return
$this
;
...
...
@@ -593,11 +655,17 @@ class Query extends \yii\base\Object
* @param string $table the table where the data will be deleted from.
* @param string|array $condition the conditions that will be put in the WHERE part.
* Please refer to [[where()]] on how to specify this parameter.
* @param array $params the parameters to be bound to the query.
* @param array $params the parameters (name=>value) to be bound to the query.
* Please refer to [[where()]] on alternative syntax of specifying anonymous parameters.
* @return Query the query object itself
*/
public
function
delete
(
$table
,
$condition
=
''
,
$params
=
array
())
{
if
(
!
is_array
(
$params
))
{
$params
=
func_get_args
();
array_shift
(
$params
);
array_shift
(
$params
);
}
$this
->
operation
=
array
(
__FUNCTION__
,
$table
,
$condition
);
return
$this
->
addParams
(
$params
);
}
...
...
@@ -690,13 +758,13 @@ class Query extends \yii\base\Object
/**
* Builds and executes a SQL statement for renaming a column.
* @param string $table the table whose column is to be renamed. The name will be properly quoted by the method.
* @param string $
n
ame the old name of the column. The name will be properly quoted by the method.
* @param string $
oldN
ame the old name of the column. The name will be properly quoted by the method.
* @param string $newName the new name of the column. The name will be properly quoted by the method.
* @return Query the query object itself
*/
public
function
renameColumn
(
$table
,
$
n
ame
,
$newName
)
public
function
renameColumn
(
$table
,
$
oldN
ame
,
$newName
)
{
$this
->
operation
=
array
(
__FUNCTION__
,
$table
,
$
n
ame
,
$newName
);
$this
->
operation
=
array
(
__FUNCTION__
,
$table
,
$
oldN
ame
,
$newName
);
return
$this
;
}
...
...
@@ -813,18 +881,6 @@ class Query extends \yii\base\Object
}
/**
* Returns the query in terms of an array.
* The array keys are the query property names, and the array values
* the corresponding property values.
* @param boolean $includeEmptyValues whether to include empty property values in the result.
* @return array the array representation of the criteria
*/
public
function
toArray
(
$includeEmptyValues
=
false
)
{
return
$includeEmptyValues
?
get_object_vars
(
$this
)
:
array_filter
(
get_object_vars
(
$this
));
}
/**
* Merges this query with another one.
*
* The merging is done according to the following rules:
...
...
tests/unit/framework/base/DictionaryTest.php
View file @
95135f11
...
...
@@ -83,17 +83,17 @@ class DictionaryTest extends \yiiunit\TestCase
$this
->
assertFalse
(
$this
->
dictionary
->
contains
(
'key3'
));
}
public
function
test
CopyFrom
()
public
function
test
FromArray
()
{
$array
=
array
(
'key3'
=>
$this
->
item3
,
'key4'
=>
$this
->
item1
);
$this
->
dictionary
->
copyFrom
(
$array
);
$this
->
dictionary
->
fromArray
(
$array
);
$this
->
assertEquals
(
2
,
$this
->
dictionary
->
getCount
());
$this
->
assertEquals
(
$this
->
item3
,
$this
->
dictionary
[
'key3'
]);
$this
->
assertEquals
(
$this
->
item1
,
$this
->
dictionary
[
'key4'
]);
$this
->
setExpectedException
(
'yii\base\Exception'
);
$this
->
dictionary
->
copyFrom
(
$this
);
$this
->
dictionary
->
fromArray
(
$this
);
}
public
function
testMergeWith
()
...
...
tests/unit/framework/base/VectorTest.php
View file @
95135f11
...
...
@@ -110,13 +110,13 @@ class VectorTest extends \yiiunit\TestCase
$this
->
assertEquals
(
-
1
,
$this
->
vector
->
indexOf
(
$this
->
item3
));
}
public
function
test
CopyFrom
()
public
function
test
FromArray
()
{
$array
=
array
(
$this
->
item3
,
$this
->
item1
);
$this
->
vector
->
copyFrom
(
$array
);
$this
->
vector
->
fromArray
(
$array
);
$this
->
assertTrue
(
count
(
$array
)
==
2
&&
$this
->
vector
[
0
]
===
$this
->
item3
&&
$this
->
vector
[
1
]
===
$this
->
item1
);
$this
->
setExpectedException
(
'yii\base\Exception'
);
$this
->
vector
->
copyFrom
(
$this
);
$this
->
vector
->
fromArray
(
$this
);
}
public
function
testMergeWith
()
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment