ArrayCache.php 2.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. /*
  3. * $Id$
  4. *
  5. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  6. * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  7. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  8. * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  9. * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  10. * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  11. * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  12. * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  13. * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  14. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  15. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  16. *
  17. * This software consists of voluntary contributions made by many individuals
  18. * and is licensed under the MIT license. For more information, see
  19. * <http://www.doctrine-project.org>.
  20. */
  21. namespace Doctrine\Common\Cache;
  22. /**
  23. * Array cache driver.
  24. *
  25. * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
  26. * @link www.doctrine-project.org
  27. * @since 2.0
  28. * @author Benjamin Eberlei <kontakt@beberlei.de>
  29. * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
  30. * @author Jonathan Wage <jonwage@gmail.com>
  31. * @author Roman Borschel <roman@code-factory.org>
  32. * @author David Abdemoulaie <dave@hobodave.com>
  33. */
  34. class ArrayCache extends CacheProvider
  35. {
  36. /**
  37. * @var array $data
  38. */
  39. private $data = array();
  40. /**
  41. * {@inheritdoc}
  42. */
  43. protected function doFetch($id)
  44. {
  45. return (isset($this->data[$id])) ? $this->data[$id] : false;
  46. }
  47. /**
  48. * {@inheritdoc}
  49. */
  50. protected function doContains($id)
  51. {
  52. return isset($this->data[$id]);
  53. }
  54. /**
  55. * {@inheritdoc}
  56. */
  57. protected function doSave($id, $data, $lifeTime = 0)
  58. {
  59. $this->data[$id] = $data;
  60. return true;
  61. }
  62. /**
  63. * {@inheritdoc}
  64. */
  65. protected function doDelete($id)
  66. {
  67. unset($this->data[$id]);
  68. return true;
  69. }
  70. /**
  71. * {@inheritdoc}
  72. */
  73. protected function doFlush()
  74. {
  75. $this->data = array();
  76. return true;
  77. }
  78. /**
  79. * {@inheritdoc}
  80. */
  81. protected function doGetStats()
  82. {
  83. return null;
  84. }
  85. }