Pull to refresh
47
0
Kirill Yegorov @coh

Пользователь

Send message
Сейчас рассматриваем вариант:
При открытии на редактирование вторым пользователем предупреждать, что запись уже редактируется, возможно некую функцию перехвата лока. Да, при сохранении предупреждать, если запись была изменена кем-то другим, система позволяет определить исходную версию редактируемой записи и были ли изменения другим пользователем.

Остается вопрос на сколько это необходимо конечным пользователям, и не усложнит ли это работу с системой. В комментариях к статье промелькнуло, что нужно, правда в рамках обсуждения другого вопроса.
Мы работаем над этим, недавно выпустили первый скринкаст. Документации будет много, на ее написание и перевод необходимо время. Попутно дорабатываем систему с учетом пожеланий и предложений. Например снизили обилие singletone доставшихся по наследству, продумываем локи на одновременное редактирование записей.
Всего скорее проблема в отсутствии APC, в место него при тестировании был установлен eaccelerator
Откатиться можно следующим образом — откатить файлы конфигурации объектов ORM в своей VCS, в интерфейса запустить синхронизацию структуры. Так же можно воспользоваться бекапом, который можно сделать в интерфейсе управления ORM
К сожалению нет, не предусмотрено. Это связано с особенностями конструктора интерфейсов.
Да, пытаемся. При этом используем не связанные между собой функциональности.
Нет контроля версий разработки нет, он отдается на откуп разработчику. Единственное, что есть — дополнительный лог операций изменения структуры базы данных.
Ну вот вроде бы и разобрались, мы говорили о разных вещах.
Под версионyым контролем объектов подразумевались непосредственно данные объектов. Их структура лежит и контролируется отдельно, при помощи выбранyой вами VCS
Есть механизм синхронизации структуры базы данных, который сверяет конфигурацию и реальную структуру БД, способен обновить структуру базы данных, записать лог SQL запросов. Описание структуры хранится в файлах конфигурации, которые в свою очередь в VCS. Как это связано с одновременной записью данных 2 пользователями мне не совсем понятно.
Мне кажется мы с вами запутались. Мы говорим о миграции структуры или о версиях данных в БД.
Миграция структуры предусмотрена.
Вы предлагаете сохранять запись из бд в файловую систему?
Не доводилось иметь дело сторонними VCS на уровне данных MySQL. Приведите пример такой системы php + mysql, которая бы управляла версиями данных MySQL. Думаю, не мне одному будет полезно изучить это направление.
Будем исправляться.
Это версионный контроль данных, какие слияния конфликты вы имеете в виду? Смысл в том, что была некая запись пользователь А внес в нее изменения пользователь B посмотрел какие данные изменил пользователь A.
Если вы имеете в виду функционал блокировки одновременных изменений, на данном этапе он не предусмотрен. Кто последний сохранил тот и прав. Добавить функциональность блокировок вполне реально.
небольшая ошибочка, предположим что последняя версия 11
Хороший вопрос. На данный момент у нас нет реализованного функционала под это задачу, но в целом она решаема
               /*
                * предположим, что сравниваем объект "news" c известным нам id,  
                * знаем, что последняя версия 10
                * Вариант 1 Сравнение объекта и его версии
                */
		$vcModel = Model::factory('vc');
		
		$object = new Db_Object('news', $id);	
		$dataBefore = $vcModel->getData('news', $id , 10);
		/*
		 * Нельзя задавать id напрямую
		 */
		unset($dataBefore['id']);

		$object->setValues($dataBefore);		

		var_dump($object->getUpdates());
		
	       /*
                * Вариант 2 Сравнение 2ух версий объекта
                */
		$dataBefore = $vcModel->getData('news', $id , 9);
		$data = $vcModel->getData('news', $id , 10);
		$diff = array(); 
		foreach ($data as $k=>$v){
			if(!isset($dataBefore[$k]) || $dataBefore[$k]!==$v)
				$diff[] = $k;
		}
		var_dump($diff);

Функционал сравнения добавим в следующую версию, спасибо за отзыв
Взяты самые быстрые на наш взгляд фреймворки, Zend был бы незаметен на графике.
По сравнению с CMS так же тестировали, но это разная весовая категория
image
Для этого как ни кстати подошел Extjs, взявший на себя отрисовку интерфейса, что позволило отвлечься от шаблонов и заняться непосредственно бизнес логикой.
На основе подобного подхода приходилось выполнять очень сложную систему гос. документооборота, работа над ней как раз и подвела к созданию IDE

Information

Rating
Does not participate
Location
Россия
Registered
Activity