本文整理汇总了PHP中Versioned::diff方法的典型用法代码示例。如果您正苦于以下问题:PHP Versioned::diff方法的具体用法?PHP Versioned::diff怎么用?PHP Versioned::diff使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Versioned
的用法示例。
在下文中一共展示了Versioned::diff方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: update
/**
* Overload Sprig::update() to save revision change
* @param bump whether to bump the version number
*/
public function update($bump = TRUE)
{
Kohana::$log->add(Kohana::DEBUG, 'Executing Versioned_Sprig::update');
$updated = FALSE;
foreach ($this->_fields as $field => $object) {
if ($object instanceof Sprig_Field_Tracked and $this->changed($field)) {
$this->comment = UTF8::ucwords($object->label) . ' changed from "' . $this->_original[$field] . '" to "' . $this->_changed[$field] . '".';
}
if ($object instanceof Sprig_Field_Versioned and $this->changed($field) and $bump) {
$diff = '';
if ($this->version != 0) {
$diff = Versioned::diff($this->_original[$field], $this->_changed[$field]);
$diff = Versioned::clean_array($diff);
$diff = serialize($diff);
}
$this->version++;
$revision = Sprig::factory($this->_model . '_revision');
$revision->values(array('entry' => $this->id, 'version' => $this->version, 'editor' => $this->editor, 'diff' => $diff));
$revision->comments = $this->comments;
$revision->create();
$updated = TRUE;
$this->comments = array();
}
}
if (!$updated and count($this->comments) > 0) {
$revision = Sprig::factory($this->_model . '_revision');
$revision->entry = $this->id;
$revision->version = $this->version;
$revision->load();
$revision->comments = array_merge($revision->comments, $this->comments);
$revision->update();
}
return parent::update();
}
示例2: testDiffByWord
/**
* Test diff by word
*/
public function testDiffByWord()
{
$diff = Versioned::diff($this->text1, $this->text2);
$this->assertEquals('An', $diff[1]);
$this->assertEquals('original', $diff[2]['d'][0]);
$this->assertEquals('unoriginal', $diff[2]['i'][0]);
$this->assertEquals('an', $diff[4]['d'][0]);
$this->assertEquals('extra', $diff[4]['d'][1]);
}
示例3: populate
/**
* Populate table with versions
*/
private function populate($id)
{
$text1 = "This is my string";
$text2 = "This is my first string";
// inserted "first"
$text3 = "This is our first string";
// changed "my" to "our"
$text4 = "This is our first";
// dropped "string"
$diff2 = serialize(Versioned::clean_array(Versioned::diff($text1, $text2)));
$diff3 = serialize(Versioned::clean_array(Versioned::diff($text2, $text3)));
$diff4 = serialize(Versioned::clean_array(Versioned::diff($text3, $text4)));
try {
DB::insert('entry_revisions', array('entry_id', 'version', 'diff'))->values(array($id, 1, ''))->execute();
DB::insert('entry_revisions', array('entry_id', 'version', 'diff'))->values(array($id, 2, $diff2))->execute();
DB::insert('entry_revisions', array('entry_id', 'version', 'diff'))->values(array($id, 3, $diff3))->execute();
DB::insert('entry_revisions', array('entry_id', 'version', 'diff'))->values(array($id, 4, $diff4))->execute();
DB::insert('entries', array('id', 'version', 'text'))->values(array($id, 4, $text4))->execute();
} catch (Database_Exception $e) {
echo $e->getMessage();
}
}