Coverage for Doctrine_Template_Timestampable

Back to coverage report

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 LGPL. For more information, see
19  * <http://www.phpdoctrine.com>.
20  */
21
22 /**
23  * Doctrine_Template_Timestampable
24  *
25  * Easily add created and updated at timestamps to your doctrine records
26  *
27  * @package     Doctrine
28  * @subpackage  Template
29  * @license     http://www.opensource.org/licenses/lgpl-license.php LGPL
30  * @link        www.phpdoctrine.com
31  * @since       1.0
32  * @version     $Revision$
33  * @author      Konsta Vesterinen <kvesteri@cc.hut.fi>
34  */
35 class Doctrine_Template_Timestampable extends Doctrine_Template
36 {
37     /**
38      * Array of timestampable options
39      *
40      * @var string
41      */
42     protected $_options = array('created' =>  array('name'    =>  'created_at',
43                                                     'type'    =>  'timestamp',
44                                                     'format'  =>  'Y-m-d H:i:s',
45                                                     'options' =>  array()),
46                                 'updated' =>  array('name'    =>  'updated_at',
47                                                     'type'    =>  'timestamp',
48                                                     'format'  =>  'Y-m-d H:i:s',
49                                                     'options' =>  array()));
50     
51     /**
52      * __construct
53      *
54      * @param string $array 
55      * @return void
56      */
57     public function __construct(array $options)
58     {
59         $this->_options = array_merge($options, $this->_options);
60     }
61     
62     /**
63      * setTableDefinition
64      *
65      * @return void
66      */
67     public function setTableDefinition()
68     {
69         $this->hasColumn($this->_options['created']['name'], $this->_options['created']['type'], null, $this->_options['created']['name']);
70         $this->hasColumn($this->_options['updated']['name'], $this->_options['updated']['type'], null, $this->_options['updated']['name']);
71         
72         $this->addListener(new Doctrine_Template_Listener_Timestampable($this->_options));
73     }
74 }