Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
doctrine-dbal
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
Tomáš Trávníček
doctrine-dbal
Commits
231b42eb
Commit
231b42eb
authored
Oct 25, 2007
by
Jonathan.Wage
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Initial entry of timestampable template.
parent
2ff1dcad
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
195 additions
and
0 deletions
+195
-0
Timestampable.php
lib/Doctrine/Template/Timestampable.php
+94
-0
Listener.php
lib/Doctrine/Timestampable/Listener.php
+101
-0
No files found.
lib/Doctrine/Template/Timestampable.php
0 → 100644
View file @
231b42eb
<?php
/*
* $Id$
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* This software consists of voluntary contributions made by many individuals
* and is licensed under the LGPL. For more information, see
* <http://www.phpdoctrine.com>.
*/
/**
* Doctrine_Template_Timestampable
*
* Easily add created and updated at timestamps to your doctrine records
*
* @package Doctrine
* @subpackage Template
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
* @link www.phpdoctrine.com
* @since 1.0
* @version $Revision$
* @author Konsta Vesterinen <kvesteri@cc.hut.fi>
*/
class
Doctrine_Template_Timestampable
extends
Doctrine_Template
{
/**
* Array of timestampable options
*
* @var string
*/
protected
$_options
=
array
();
/**
* __construct
*
* @param string $array
* @return void
*/
public
function
__construct
(
array
$options
)
{
$this
->
_options
=
$options
;
}
/**
* setTableDefinition
*
* @return void
*/
public
function
setTableDefinition
()
{
$createdOptions
=
array
();
$updatedOptions
=
array
();
if
(
isset
(
$this
->
_options
[
'created'
]))
{
$createdOptions
=
$this
->
_options
[
'created'
];
unset
(
$createdOptions
[
'name'
]);
unset
(
$createdOptions
[
'type'
]);
}
if
(
isset
(
$this
->
_options
[
'updated'
]))
{
$updatedOptions
=
$this
->
_options
[
'updated'
];
unset
(
$updatedOptions
[
'name'
]);
unset
(
$updatedOptions
[
'type'
]);
}
$createdName
=
isset
(
$this
->
_options
[
'created'
][
'name'
])
?
$this
->
_options
[
'created'
][
'name'
]
:
'created_at'
;
$createdType
=
isset
(
$this
->
_options
[
'created'
][
'type'
])
?
$this
->
_options
[
'created'
][
'type'
]
:
'timestamp'
;
$updatedName
=
isset
(
$this
->
_options
[
'updated'
][
'name'
])
?
$this
->
_options
[
'updated'
][
'name'
]
:
'updated_at'
;
$updatedType
=
isset
(
$this
->
_options
[
'updated'
][
'type'
])
?
$this
->
_options
[
'updated'
][
'type'
]
:
'timestamp'
;
$this
->
hasColumn
(
$createdName
,
$createdType
,
null
,
$createdOptions
);
$this
->
hasColumn
(
$updatedName
,
$updatedType
,
null
,
$updatedOptions
);
$this
->
_options
[
'created'
][
'name'
]
=
$createdName
;
$this
->
_options
[
'created'
][
'type'
]
=
$createdType
;
$this
->
_options
[
'updated'
][
'name'
]
=
$updatedName
;
$this
->
_options
[
'updated'
][
'type'
]
=
$updatedType
;
$this
->
addListener
(
new
Doctrine_Timestampable_Listener
(
$this
->
_options
));
}
}
\ No newline at end of file
lib/Doctrine/Timestampable/Listener.php
0 → 100644
View file @
231b42eb
<?php
/*
* $Id$
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* This software consists of voluntary contributions made by many individuals
* and is licensed under the LGPL. For more information, see
* <http://www.phpdoctrine.com>.
*/
/**
* Doctrine_Timestampable_Listener
*
* @package Doctrine
* @subpackage Template
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
* @link www.phpdoctrine.com
* @since 1.0
* @version $Revision$
* @author Konsta Vesterinen <kvesteri@cc.hut.fi>
*/
class
Doctrine_Timestampable_Listener
extends
Doctrine_Record_Listener
{
/**
* Array of timestampable options
*
* @var string
*/
protected
$_options
=
array
();
/**
* __construct
*
* @param string $options
* @return void
*/
public
function
__construct
(
array
$options
)
{
$this
->
_options
=
$options
;
}
/**
* preInsert
*
* @param object $Doctrine_Event
* @return void
*/
public
function
preInsert
(
Doctrine_Event
$event
)
{
$createdName
=
$this
->
_options
[
'created'
][
'name'
];
$updatedName
=
$this
->
_options
[
'updated'
][
'name'
];
$event
->
getInvoker
()
->
$createdName
=
$this
->
getTimestamp
(
'created'
);
$event
->
getInvoker
()
->
$updatedName
=
$this
->
getTimestamp
(
'updated'
);
}
/**
* preUpdate
*
* @param object $Doctrine_Event
* @return void
*/
public
function
preUpdate
(
Doctrine_Event
$event
)
{
$updatedName
=
$this
->
_options
[
'updated'
][
'name'
];
$event
->
getInvoker
()
->
$updatedName
=
$this
->
getTimestamp
(
'updated'
);
}
/**
* getTimestamp
*
* Gets the timestamp in the correct format
*
* @param string $type
* @return void
*/
public
function
getTimestamp
(
$type
)
{
$options
=
$this
->
_options
[
$type
];
if
(
$options
[
'type'
]
==
'date'
)
{
return
date
(
'Y-m-d'
,
time
());
}
else
if
(
$options
[
'type'
]
==
'timestamp'
)
{
return
date
(
'Y-m-d H:i:s'
,
time
());
}
else
{
return
time
();
}
}
}
\ No newline at end of file
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