gnu-social/classes/Message.php
Evan Prodromou e2e6bbb298 caching layer for DB/DataObject
I added a new class, Memcached_DataObject, that will (optionally)
fetch data out of a memcached server if it's available. This only
works on 'staticGet'.

Methods that write to the database (insert, update, delete) will clear
and set the cache correctly, too.

darcs-hash:20080926160941-5ed1f-922de078b4c1941853ad014edf9a17fae486f8cf.gz
2008-09-26 12:09:41 -04:00

69 lines
2.0 KiB
PHP

<?php
/**
* Table Definition for message
*/
require_once 'classes/Memcached_DataObject.php';
class Message extends Memcached_DataObject
{
###START_AUTOCODE
/* the code below is auto generated do not remove the above tag */
public $__table = 'message'; // table name
public $id; // int(4) primary_key not_null
public $uri; // varchar(255) unique_key
public $from_profile; // int(4) not_null
public $to_profile; // int(4) not_null
public $content; // varchar(140)
public $rendered; // text()
public $url; // varchar(255)
public $created; // datetime() not_null
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
public $source; // varchar(32)
/* Static get */
function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('Message',$k,$v); }
/* the code above is auto generated do not remove the tag below */
###END_AUTOCODE
function getFrom() {
return Profile::staticGet('id', $this->from_profile);
}
function getTo() {
return Profile::staticGet('id', $this->to_profile);
}
static function saveNew($from, $to, $content, $source) {
$msg = new Message();
$msg->from_profile = $from;
$msg->to_profile = $to;
$msg->content = $content;
$msg->rendered = common_render_text($content);
$msg->created = common_sql_now();
$msg->source = $source;
$result = $msg->insert();
if (!$result) {
common_log_db_error($msg, 'INSERT', __FILE__);
return _('Could not insert message.');
}
$orig = clone($msg);
$msg->uri = common_local_url('showmessage', array('message' => $msg->id));
$result = $msg->update($orig);
if (!$result) {
common_log_db_error($msg, 'UPDATE', __FILE__);
return _('Could not update message with new URI.');
}
return $msg;
}
}