|
@@ -14,23 +14,34 @@ problematic (e.g. APC allows arbitrary data caching, while
|
|
|
opcache).
|
|
|
|
|
|
Caching the output of parsing your configuration files is
|
|
|
-also expressly allowed (e.g. file caching). Some frameworks
|
|
|
-use APCu to achieve this.
|
|
|
+also expressly allowed (e.g. file caching, metadata caching).
|
|
|
+Some frameworks use APCu or memcached to achieve this.
|
|
|
|
|
|
Caching of the classloader (often referred to as optimizing
|
|
|
the classloader) is also allowed. Most frameworks have their
|
|
|
own methods of doing this.
|
|
|
|
|
|
-Caching of any database, ORM results, or rendered templates
|
|
|
-is not allowed.
|
|
|
-
|
|
|
-Caching any data using Redis is discouraged, as 1) our
|
|
|
-Redis installation runs on a separate computer across the
|
|
|
-network, so you won't see much benefit 2) your usage of
|
|
|
-Redis *may* impact other framework's tests, which we cannot
|
|
|
-allow. You may launch Redis on the application server as
|
|
|
-part of your setup.sh scripts and utilize it for caching
|
|
|
-if you so desire.
|
|
|
+*Caching of any data fetched from the database is not allowed*.
|
|
|
+Specifically, things such as [Doctrine's Result Cache](http://doctrine-orm.readthedocs.org/en/latest/reference/caching.html#result-cache) are inadmissible.
|
|
|
+
|
|
|
+However, if you are using an ORM that prepares SQL
|
|
|
+statements in some way, such as how
|
|
|
+[Doctrine](http://doctrine-orm.readthedocs.org/en/latest/reference/caching.html#query-cache)
|
|
|
+translates DQL into SQL, this translated form can be
|
|
|
+cached, as long as you are dynamically accepting
|
|
|
+query parameters.
|
|
|
+
|
|
|
+Caching any data using databases (Redis, MongoDB, etc)
|
|
|
+is discouraged, as 1) our databases run on a separate
|
|
|
+computer across the network, so you won't see much
|
|
|
+benefit 2) your usage of the DB *may* impact other
|
|
|
+framework's tests, which we cannot allow. You may launch
|
|
|
+a DB locally on the application server as part of your
|
|
|
+`setup.sh` scripts and utilize it for caching the allowable
|
|
|
+cache items, if you so desire, but it's normally much
|
|
|
+easier to use systems such as APCu.
|
|
|
+
|
|
|
+Ask if you are not certain.
|
|
|
|
|
|
# Adding New PHP-based Frameworks
|
|
|
|