Jimmy Madon
fcd41e45a7
Clarified ACL node lookup failed error.
...
Original error was ambiguous in stating whether the ARO node lookup failed or the ACO node lookup failed.
2014-02-05 18:25:14 +00:00
mark_story
be8ebfc005
Merge branch 'master' into 2.5
2014-02-05 09:22:46 -05:00
José Lorenzo Rodríguez
e36c954da7
Merge pull request #2693 from ADmad/2.5-session-start
...
Don't start a session if it's known to be empty.
2014-02-01 04:08:48 -08:00
Rachman Chavik
59549b7ebe
Fix: Changing boolean to integer for Postgres
...
Closes #2751 , CakeDC/migrations#149
2014-01-31 15:14:20 +07:00
mark_story
c1ab6fa9d1
Merge branch 'master' into 2.5
2014-01-30 10:13:37 -05:00
joostdekeijzer
987187ef8c
Fix #2721 in TranslateBehavior::beforeFind() supporting both Model::field('fieldname') and Model::read('fieldname')
2014-01-29 13:37:47 +01:00
Rachman Chavik
b83b59a9d7
Log errors instead of calling trigger_error()
2014-01-29 17:51:07 +07:00
ADmad
c093804b35
Merge branch 'master' into 2.5
2014-01-26 17:39:50 +05:30
mark_story
d7d8fc00d1
Check data with isset() before accessing it.
...
Don't blindly access data that may not exist.
Fixes #2712
2014-01-25 22:15:47 -05:00
ADmad
4407cdb010
Avoid code duplication.
2014-01-22 11:36:45 +05:30
ADmad
84932fcc4a
Don't start a session if it's known to be empty.
...
If an app only reads/checks the session there's no need to start a
session to know that the read/checked session value is empty.
Fixes #1981
2014-01-22 01:17:16 +05:30
mark_story
55e1619c59
Fix issue with find(count) and TranslateBehavior.
...
Fixes #2667
2014-01-18 21:54:09 -05:00
mark_story
75dd2ff1fb
Merge branch 'master' into 2.5
2014-01-16 15:20:40 -05:00
mark_story
3763350667
Add test for issue #2595
...
Fold conditions that did the same thing and add a test case.
Closes #2595
2014-01-06 21:21:13 -05:00
Raffaele
a4f138813b
Return value if value are 0
...
Save correctly if the value is 0, but after the find is returned as an empty string.
2014-01-03 15:46:09 +01:00
mark_story
3cee3b0e99
Merge branch 'master' into 2.5
...
Conflicts:
lib/Cake/VERSION.txt
2013-12-30 21:28:22 -05:00
Stephen Cuppett
ed749fdc97
Must double quote the schema name in query
...
Schema names with reserved words such as "create" will fail this query without double quotes.
Attempted prepared statement with ? placeholder. This failed with the following CakePHP error:
Error: A Database connection using "Postgres" was missing or unable to connect.
The database server returned this error: SQLSTATE[42601]: Syntax error: 7 ERROR: syntax error at or near "$1" LINE 1: SET search_path TO $1 ^
2013-12-29 21:43:56 -05:00
Rachman Chavik
c4f8289b53
Fix test by checking against an empty array instead of false
2013-12-27 12:37:39 +07:00
Ber Clausen
f30b43b4c9
Update documentation and typehint.
2013-12-21 22:02:45 -03:00
Ber Clausen
c15f7de164
Re-expose DboSource::fetchAssociated() for BC.
...
Internally use protected methods to fetch hasMany and hasAndBelongsToMany
associations.
2013-12-21 11:34:40 -03:00
Ber Clausen
5ccb77e25d
Be consistent with the result set variable name.
2013-12-21 10:57:40 -03:00
Ber Clausen
0adc062cfa
Process query only when needed.
2013-12-21 10:57:40 -03:00
Ber Clausen
422be67a03
Avoid recalculating whether the relationship is a self join.
2013-12-21 10:57:40 -03:00
Ber Clausen
86b69964ef
Be more semantic with variable names.
...
Isue less loockups for deep arrays.
A bit of documentation added.
2013-12-21 10:57:40 -03:00
Ber Clausen
7a378c3b22
Conveniently fetch hasAndBelongsToMany associations from within a function (like hasMany).
...
Variable names should represent their values.
Remove unnecessary references.
2013-12-21 10:57:38 -03:00
Ber Clausen
60a8f0900b
Get Model associations only when needed.
2013-12-21 10:49:22 -03:00
Ber Clausen
8355d32bb1
Be more semantic indicating that association fields must be empty.
2013-12-21 10:49:22 -03:00
Mark Story
99c8503578
Merge pull request #2518 from bar/2.5-dbosource-getconstraint
...
Document DboSource::getConstraint().
2013-12-21 05:43:52 -08:00
Ber Clausen
5860cd4b8e
Still more documentation.
2013-12-21 07:04:45 -03:00
Ber Clausen
c5c8cb80ba
Document DboSource::getConstraint().
...
Also, update the function signature (to be compliant with other
functions) and type hint $LinkModel.
2013-12-21 06:24:23 -03:00
Ber Clausen
09188cc3d0
More documentation.
2013-12-21 06:11:31 -03:00
Ber Clausen
c1cdf190e3
Add documentation. Strict check.
2013-12-21 05:41:23 -03:00
Ber Clausen
1bdb783f91
Update documentation.
2013-12-21 05:39:42 -03:00
mark_story
7e5c0f7185
Merge branch 'master' into 2.5
2013-12-20 14:15:35 -05:00
mark_story
df4b978ce4
Clarify the docs for DboSource::fetchAll()
...
Refs #2508
2013-12-19 17:39:44 -05:00
OKINAKA Kenshin
3433e10fbd
Fix Postgres for bigint primary key.
2013-12-18 14:58:18 +09:00
mark_story
01be15d654
Don't always wipe a Model's _schema property when calling setSource()
...
Only wipe the internal schema cache if listSources() returned a useful
list of sources. Otherwise retain the old schema. This lets datasources
that don't implement listSources to be combined with models that define
static schema properties.
Fixes #2467
2013-12-16 14:42:21 -05:00
mark_story
c2b8778ce8
Merge branch 'master' into 2.5
2013-12-14 17:45:49 -05:00
Ber Clausen
2d67604182
Add more Model type hints, and ease the model testing replacing is_object() for '!== null'.
2013-12-10 00:20:12 -03:00
Ber Clausen
63a192ea39
Update DboSource::group():
...
* Update documentation.
* Add Model type hint.
* Bail early when fields are empty.
2013-12-10 00:18:19 -03:00
Ber Clausen
5c595b90d2
Remove is_object() calls when the test subject is already type hinted as a Model.
2013-12-10 00:18:18 -03:00
Ber Clausen
2f24de81cb
Model objects should be in CamelCase.
...
Add a Model type hint.
2013-12-10 00:18:18 -03:00
Mark Story
19122414fc
Merge pull request #2459 from bar/2.5-patch
...
Test for self join only when needed.
2013-12-09 18:55:31 -08:00
Ber Clausen
b7527c6c3b
Test for a self join only when needed.
2013-12-09 23:11:42 -03:00
Ber Clausen
2366e7c7b5
Make getConstraint() a tiny bit more readable.
2013-12-09 22:25:03 -03:00
José Lorenzo Rodríguez
6358741944
Merge pull request #2449 from cakephp/fix-session-cyclic-error
...
Fixed error in CakeSession that would call start() in an infinite loop
2013-12-09 02:18:21 -08:00
mark_story
48d2618c62
Merge branch 'master' into 2.5
...
Conflicts:
lib/Cake/Routing/Router.php
2013-12-08 21:25:59 -05:00
Jose Lorenzo Rodriguez
70d5c37834
Ensuring session is configured before trying to destory it
2013-12-08 13:44:16 +01:00
Rachman Chavik
2d5a153c0d
Set 'order' to false to prevent issues with postgres
...
See: https://github.com/cakephp/cakephp/pull/2421#issuecomment-30074971
2013-12-08 16:40:22 +07:00
Jose Lorenzo Rodriguez
848a0ce217
Fiexed error in CakeSession that would call start() in an infinite loop
...
when the session is marked as invalid
2013-12-07 22:25:33 +01:00
ADmad
f3900e89fd
Fixed bug where deleteAll tried to delete same id multiple times.
...
Ensure find done in deleteAll only returns distinct ids. A wacky
combination of association and conditions can sometimes generate
multiple rows per id.
2013-12-03 22:18:17 +05:30
mark_story
97ab2c0e9b
Merge branch 'imsamurai-2.5' into 2.5
...
Add unsigned integer support to MySQL. Unsigned integers have not been
added to other databases as they either do not support them (postgres,
sqlserver) or they are 'faked' and don't do anything (sqlite).
Fixes #2321
2013-11-27 20:12:28 -05:00
José Lorenzo Rodríguez
edc6fc6701
Merge pull request #2379 from rspenc29/2.5
...
Added support for passing additional flags to mysql connection
2013-11-24 01:07:58 -08:00
Rob Spencer
b8e32dd2b3
Adding flags override to additional pdo drivers
2013-11-24 01:04:17 -05:00
Rob Spencer
cda9320e96
Added support for passing additional flags to mysql connection
2013-11-24 00:47:06 -05:00
mark_story
71312932e8
Merge branch 'master' into 2.5
2013-11-21 21:46:21 -05:00
José Lorenzo Rodríguez
df5fc2304a
Merge pull request #2289 from bar/2.5-optimize-dbosource
...
First part of the DboSource cleanup.
2013-11-21 01:02:36 -08:00
mark_story
1be40d5d64
Fix coding standards error.
...
Refs #2364
2013-11-19 18:36:52 -05:00
mark_story
ec38ee1c48
Only enable cacheSources if both the datasource + model agree on it.
...
This prevents models from flipping cacheSources on when the datasource
has it disabled already.
Refs #2364
2013-11-19 17:36:20 -05:00
mark_story
99fd6e40fe
Leave db->cacheSources unaltered.
...
When a model uses cacheSources = false, it should not have side effects
on the datasource.
Fixes #2364
2013-11-19 15:06:55 -05:00
imsamurai
f817beb8b6
change method public unsigned
to protected _unsigned
2013-11-19 10:55:44 +02:00
ADmad
dda6080579
Merge branch 'master' into 2.5
2013-11-19 00:27:12 +05:30
imsamurai
8bcfe452da
not add unsigned
to not numeric fields, fix broken test, add new test
2013-11-17 23:10:53 +02:00
imsamurai
2f6122cb01
add unsigned
property in Model::describe
2013-11-17 22:37:01 +02:00
imsamurai
00fb663f90
remove numeric
from unsigned
config
2013-11-17 21:23:13 +02:00
imsamurai
1d9ecc6c94
Merge upstream/2.5 into 2.5
2013-11-17 21:13:25 +02:00
mark_story
b6b8d83980
Remove non-portable data type from MySQL.
...
'numeric' is a non-portable type that is not supported by any other
database driver. Removing it now will prevent future problems.
2013-11-14 10:28:09 -05:00
imsamurai
f1a2c1a75c
add decimal type for unsigned
2013-11-14 10:56:51 +02:00
imsamurai
7bc8dac453
fix phpcs errors
2013-11-14 02:19:41 +02:00
imsamurai
fd64d952b5
change position from afterDefault to beforeDefault during to wrong order, add test
2013-11-14 01:36:27 +02:00
imsamurai
e35823e72a
fix tests, add numeric type for unsigned
2013-11-14 01:33:11 +02:00
imsamurai
2fcb4c3c6c
- change check to strict for options
of $fieldParameters
...
- add `types` parameter and strict check if it present in `$fieldParameters` (if it present and not contain column type field parameter will be skipped)
- add `noVal` parameter to `$fieldParameters` if it present and not empty value of this parameter from column will be ignored
- add `unsigned` column type for integer, float and biginteger. If it set to `true` an 'UNSIGNED' will be add in sql column part, if not set or set not to `true` this parameter will be skipped
2013-11-14 01:11:30 +02:00
Marc Würth
7cfa0116f4
Removed "PHP 5" from file header DocBlocks
...
This statement does not serve a purpose anymore.
In a long forgotten world it indicated the main version number of PHP which the code in the file was compatible to.
http://pear.php.net/manual/en/standards.sample.php
But since PHP 5.1 and later this is only marginally true.
Thus I propose to remove it from CakePHP.
2013-11-13 22:58:39 +01:00
Andy Dawson
d94c187adc
Merge pull request #2305 from kimegede/docblock-construct-destruct-return-void
...
Docblock construct destruct remove @return
2013-11-13 01:44:35 -08:00
Ber Clausen
ed142d8c89
Add missing type hints.
2013-11-13 00:09:45 -03:00
Ber Clausen
0e74a0757a
Keep insertQueryData() DRY, issue less lookups. Remove unused $assocData
...
and $LinkModel from the signature.
Model objects should be CamelCase.
2013-11-13 00:09:39 -03:00
Ber Clausen
52d425737a
Call getDataSource() instead of the directly calling
...
ConnectionManager::getDataSource().
2013-11-12 03:38:47 -03:00
Ber Clausen
c1f3d9c274
Model objects should be in CamelCase.
2013-11-12 01:37:38 -03:00
Ber Clausen
014d2dd2d9
Remove 'self' key from getConstraint() calculations because it is not necessary anymore.
2013-11-12 01:30:57 -03:00
Ber Clausen
e658e071d1
Remove unused variable from the signature.
2013-11-12 01:17:11 -03:00
Ber Clausen
67a65663a7
Assign before actually using it.
2013-11-12 01:13:55 -03:00
Ber Clausen
026565033b
Model objects variables should be CamelCase.
2013-11-12 00:49:06 -03:00
Ber Clausen
6b8a79be6d
Remove reference from the signature.
2013-11-12 00:29:36 -03:00
Ber Clausen
cb42b056ac
Remove the 'Line indented incorrectly' PHPCS error.
2013-11-12 00:08:39 -03:00
Ber Clausen
7f570f33e4
Unindent, and remove unnecessary getDataSource() call.
...
Also, objects should be CamelCase.
2013-11-12 00:01:18 -03:00
Ber Clausen
b35c9671ad
Explicitly build SQL statements, calling buildAssociationQuery().
2013-11-11 23:27:50 -03:00
Ber Clausen
f0fcaa1305
Improve generateAssociationQuery():
...
* bail early when $linkModel is Null (BC for now).
* move SQL fields warmup and SQL statement building to its own functions
(it will payoff later improving self documentation and readability).
* make assignments and function calls only when needed (depending on the
association type).
2013-11-11 23:27:50 -03:00
Ber Clausen
dcadfcbcab
Remove inline assignment.
2013-11-11 23:27:50 -03:00
Ber Clausen
53c6df554c
Remove unused $resultSet argument from generateAssociationQuery().
2013-11-11 23:27:50 -03:00
Ber Clausen
5da05d9216
Remove unneeded test inside conditional.
2013-11-11 23:27:50 -03:00
Ber Clausen
f16695db5f
Move variables to logical blocks.
...
Unindent to ease readability, and avoid assigning variables when
unneeded.
Free a little memory before entering to recursive intensive loops.
2013-11-11 23:27:50 -03:00
Ber Clausen
fdb4b11d0b
Remove unnecessary call to getDataSource().
2013-11-11 23:27:50 -03:00
Ber Clausen
c9e0131d6a
Only generate query data for hasOne and belongsTo associations.
...
Avoid calling generateAssociationQuery():
* when the return value will never be usefull (True in this case)
* to avoid polluting $queryData with uneeded fields
Later, the SQL statement for the primary, and 'hasOne' plus 'belongsTo'
relationships, is built.
2013-11-11 23:27:50 -03:00
Ber Clausen
2532228844
Improve readability and optimize minimizing variable lookups.
2013-11-11 23:27:49 -03:00
mark_story
1f5d1eee98
Remove duplicated reference for behaviors in ClassRegistry
...
The 2nd key in the registry was to support persistModel which has long
since been removed. With this registry key not being used it can be
removed with reasonable safety.
Fixes #2306
2013-11-11 12:30:00 -05:00
Kim Egede Jakobsen
18e0dc95dd
Remove @return from docblock (for __construct && __destruct methods)
2013-11-11 14:54:48 +01:00
mark_story
3561929be7
Merge branch 'master' into 2.5
2013-11-10 21:53:09 -05:00
José Moreira
b1e366c500
Model.php PHPDoc Description: Chang afterFilter with afterFind
2013-11-10 16:59:28 +00:00
mark_story
afd182898f
Merge branch 'master' into 2.5
2013-11-01 16:54:57 -04:00
mark_story
9e4ac31dc3
Correctly identifier quote column names before adding them to queries.
...
Closes #2248
2013-10-31 19:53:42 -04:00
mark_story
aaac360833
Merge branch 'master' into 2.5
2013-10-30 14:58:20 -04:00
Zach Gambino
927a4933d1
Fix for #2247 | Use correct column when calculating next sequence value
...
See #2247 for more details.
2013-10-30 11:25:06 -07:00
mark_story
16be5722ba
Fix COUNT(DISTINCT x) queries from getting corrupted in Sqlserver.
...
Add into the tower of hacks that is the SQL generation and stop breaking
COUNT(DISTINCT foo) style queries. Previously these would be converted
into DISTINCT COUNT(foo) which will give the non-distinct results.
2013-10-29 23:01:55 -04:00
mark_story
0f8dae55c9
Add missing trim() around Sqlserver queries.
...
This solves issues with queries failing.
Fixes #2222
2013-10-29 23:01:49 -04:00
ADmad
d9ca148499
Merge branch 'master' into 2.5
...
Conflicts:
CONTRIBUTING.md
lib/Cake/Model/Model.php
lib/Cake/VERSION.txt
2013-10-30 02:34:09 +05:30
mark_story
a098ff28b8
Update doc block and remove inline assignment.
2013-10-29 12:32:20 -04:00
Mark Story
3dc60af166
Merge pull request #2204 from thatcode/master
...
Models fetched by Containable find depend on number of fields in intermediate Model
2013-10-25 17:33:32 -07:00
mark_story
7624884240
Use + instead of array_merge.
...
If you have numeric columns in your database, array_merge() will re-key
the array dropping the original values.
Fixes #2198
2013-10-25 10:23:50 -04:00
Robert Sworder
940a51b5fa
Update definition of an empty model.
2013-10-25 15:12:03 +01:00
Mark Story
ea0c66e713
Merge pull request #2187 from bar/model-optimizations
...
Optimize conditionals and reduce lookups.
2013-10-24 14:09:47 -07:00
Marc Würth
3773311cc0
Normalized associated models in unbindModel.
...
Resolves #1764
Had to cast $models to an array since ``Hash::normalize()`` doesn't support strings which ``Set::normalize()`` does (but which is deprecated).
Reused existing tests.
2013-10-24 15:28:31 +02:00
Ber Clausen
1fbe9c0021
Optimize conditionals and reduce lookups.
...
Also, make the code easier to read removing unneded indentations.
2013-10-24 10:16:55 -03:00
Marc Würth
7c07d37fb3
Some DocBlock improvements for Model.php
2013-10-24 13:05:32 +02:00
Ber Clausen
6dcfd28600
Optimize _clearCache().
...
It is cheaper to make an assignment or call strtolower() than to pluralize.
2013-10-23 22:29:42 -03:00
Bryan Crowe
a943ea5c34
Add space between classname(s)
2013-10-22 22:59:50 -04:00
Frank de Graaf
ab89f6ec97
Makes DboSource less string dependent.
2013-10-22 16:43:32 +02:00
Bryan Crowe
bc2fcf421f
Remove extra space around the brace in CakeSchema::_arrayDiffAssoc()
2013-10-16 09:52:29 -04:00
Mark Story
ff0b963941
Merge pull request #2142 from bcrowe/hotfix-strictNull
...
Change is_null() calls to strict checks
2013-10-15 20:00:12 -07:00
Bryan Crowe
5addb2cc9f
Change is_null() calls to strict checks in CakeSchema::_arrayDiffAssoc()
2013-10-15 22:53:04 -04:00
Bryan Crowe
39b7023e75
Change is_null() calls to strict checks
2013-10-15 22:32:46 -04:00
Mark Story
ce74153389
Merge pull request #1691 from uzyn/2.5-decimal
...
Add support for decimal type in Schema.
Fixes #3171
2013-10-14 08:36:15 -07:00
euromark
1cb24ae537
CS fixes using phpcs-fixer auto-correction.
2013-10-12 01:27:00 +02:00
Jose Lorenzo Rodriguez
df549898ad
Merge remote-tracking branch 'origin/2.5' into k-halaburda-master
2013-10-12 01:05:02 +02:00
Jose Lorenzo Rodriguez
9673048c30
Merge branch 'master' of github.com:k-halaburda/cakephp into k-halaburda-master
2013-10-12 01:03:20 +02:00
José Lorenzo Rodríguez
8cdbafd312
Merge pull request #1631 from ovidiupruteanu/patch-2
...
flushMethodCache not working if called before cacheMethod
2013-10-11 15:56:19 -07:00
José Lorenzo Rodríguez
6c2eb6e7c6
Merge pull request #1546 from rchavik/2.3-sqlite-truncate
...
Sqlite::truncate(): Verify `sqlite_sequence` exists before _execute()
2013-10-11 15:52:49 -07:00
José Lorenzo Rodríguez
99620ab58e
Merge pull request #1593 from kimegede/more-readable-code
...
More readable code
2013-10-11 15:51:28 -07:00
Bryan Crowe
4242bd4f3d
Additional Cake references to CakePHP and docblock typo
2013-10-09 19:38:16 -04:00
Mark Story
25c4175736
Merge pull request #1713 from ADmad/2.5-modelvalidator-optimize
...
Optimized whitelist jugglery.
2013-10-08 13:31:53 -07:00
ADmad
f9c1c2aa7f
Optimized whitelist jugglery.
2013-10-09 00:17:34 +05:30
euromark
eb852a0247
Strict checks where applicable.
2013-10-08 20:16:55 +02:00
euromark
c621985f69
Fix whitelist to be modifiable from behaviors to work with validate.
2013-10-07 23:45:27 +02:00
Mark Story
49ddf6a5cf
Merge pull request #1687 from Schlaefer/model-cache-improvements
...
performance improvements in Model::_clearCache
2013-10-05 07:50:07 -07:00
U-Zyn Chua
e527506c39
MySQL: Numeric data type now supported under decimal column. #3171
2013-09-28 23:05:53 +08:00
U-Zyn Chua
73cae88a6f
SQL Server support of numeric type. #3171
...
Float & real map to float. Numeric & decimal map to numeric.
2013-09-28 22:48:37 +08:00
Schlaefer
be61a5023f
Refactors Model::_clearCache
...
- don't use mixed keys in $assoc array
- removes unnecessary strtolower on Inflector::underscore result
- return early
2013-09-28 10:16:23 +02:00
U-Zyn Chua
c74c8d49a1
Decimal support for SQLite. #3171
2013-09-28 14:36:55 +08:00
U-Zyn Chua
a1a3e70039
Decimal support for PostgreSQL. #3171
2013-09-28 14:07:00 +08:00
Bryan Crowe
bb65765d70
Updated additional references of Cake to CakePHP
2013-09-27 21:31:35 -04:00
U-Zyn Chua
7fb51ab50f
Decimal support for MySQL. #3171
2013-09-28 09:23:46 +08:00
Schlaefer
99ec97bd19
performance improvements in Model::_clearCache
...
- don't empty cache twice if pluralized name is identical to underscored
- refactors for fewer function calls
2013-09-27 16:39:23 +02:00
Andy Hobbs
0f7d6a90a1
Ticket 4108
...
- Added schemaName to DboSource::fields() method cache key to fix bug with changing schema name
2013-09-26 11:56:14 +01:00
ber clausen
39bc8dff97
Wrong signature.
2013-09-25 09:12:49 -03:00
Bryan Crowe
7d7954ce18
Replaced all is_a() calls with instanceof operator
2013-09-24 21:08:06 -04:00
euromark
653aed7701
is_a() to instance of - completes PR 1669
2013-09-24 22:57:51 +02:00
ADmad
1d89ee1c6d
Fixed TreeBehavior::recover() when using scope. Fixes #4062 .
2013-09-19 00:39:19 +05:30
euromark
382f75dbfc
cs corrections, bool to boolean and int to integer.
2013-09-17 14:44:34 +02:00
mark_story
4ea6c158d1
Fix wording and remove trailing spaces.
2013-09-16 12:04:29 -04:00
Jerome Roethlisberger
3a4a0e54eb
Improved wording of Model::invalidFields()
...
Inspired by
http://book.cakephp.org/2.0/en/models/data-validation/validating-data-from-the-controller.html#validating-data-from-the-controller
2013-09-16 16:13:58 +02:00
ovidiupruteanu
f416a321c7
flushMethodCache not working if called before cacheMethod
...
When calling flushMethodCache it correctly empties self::$methodCache but if cacheMethod is called afterwards self::$methodCache gets populated with data from the Cache.
2013-09-12 22:02:39 +03:00