Как сохранить состояние проекта в Eclipse

Тема в разделе "PHP", создана пользователем drawing4, 21 янв 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. drawing4

    drawing4

    Регистр.:
    21 ноя 2008
    Сообщения:
    323
    Симпатии:
    37
    Можно ли при отладке в Eclipse сохранять состояние проекта, чтобы потом к нему вернуться?
    Пример. Есть скрипт с формой, заполнили форму, нажали сабмит, данные попадают в отладчик, если на каком-то шаге отладки нашел ошибку, исправить ее, и вернуться к сохраненному состоянию, с теми же данными формы, но без ее повторного заполнения?
    Вроде как сделал снимок всех переменных на определенном шаге и потом вернулся к нему.
     
  2. Alternator

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    да, можно
    для этого нужно использовать SVN, либо любую другую систему управления версиями
    К сожалению я уже не вспомню какие модули я устанавливал для того чтобы синхронизировать eclipse с локальным хранилищем основанным на tortoiseSVN
    имя у файла было Subversive-incubation-0.7.8.I20090904-1300.zip
    но самого файла у меня не сохранилось. ядумаю его название поможет вам найти модуль
    Если вы поставите все что надо(возможно еще что-то придется), то у вас среди проектов будет числится "Project SVN"
    предварительно создайте хранилище. НАпример с помощью TOrtoise, создав пустую папку, и в ее контекстном меню(в обычном проводнике) выбрав Create Repository here
    затем создаете проект типа "Project SVN"
    в качестве URL вводите что-то по типу "file://N:/123"(слеши должны быть только прямые)
    жмакаете NExt
    перещелкиваете радио-кнопку на Revision и потом обратно на Head Revision
    после этого жмакаете Finish(без предыдущей манипуляции он не будет доступным)
    В новом окне также Finish
    откроется окно создания нового проекта, где уже выбираете нужный вам тип проекта
    Проекты c SVN будут помечены желтым цилиндром в правом углу пиктограммы
    у них будет доступно контекстное подменю Team, где вы сможет сделать Commit(сохранить состояние), и откатится к предыдущей версии.
    Также в проводнике вы сможете создать к примеру копию проекта, достав его из хранилища с помощью контекстного подменю TortoiseSVN
     
    drawing4 нравится это.
  3. drawing4

    drawing4

    Регистр.:
    21 ноя 2008
    Сообщения:
    323
    Симпатии:
    37
    Спасибо Alternator, пошел искать и смотреть!
     
  4. drawing4

    drawing4

    Регистр.:
    21 ноя 2008
    Сообщения:
    323
    Симпатии:
    37
    Хм, сидел копал копал и накопал что это не то что мне надо. Tortoise SVN делает копию файлов проекта, по которым можно откатиться потом.

    Меня же интересует совсем другое. Мне нужно при отладке проекта сделать снимок всех переменных которые учавствуют в отладке. Если в процессе отладки обнаружил ошибку и исправил ее, данные которые передаются в отладчик нужно вводить заново. Вместо этой процедуры хочется откатиться к предыдущим значениям переменных всего лишь, а не предыдущим файлам, и прогнать эти значения через уже исправленную функцию.

    По Tortoise SVN нашел неплохой линк по настройке. http://zliypes.com.ua/blog/2008/07/09/local-svn
     
  5. Alternator

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    аднака
    а я так старался, собирая из памяти и настроек/меню указанных программ краткое ридми(((
    извиняюсь, что не сразу прочитал что вам надо, а зацепился только за первое предложение, и как говорится "Остапа понесло"
    Если вам надо просто еще раз передать все переменные переданные в $_POST, и прочих, то делаем примерно так:
    PHP:
    <?
    if( (isset(
    $_GET) && count($_GET)) ||
        (isset(
    $_POST) && count($_POST)) )//если вы руками передали что-то
            
    file_put_contents('vars.ser',serialize(array(
                
    '_POST'=>$_POST,
                
    '_GET'=>$_GET,
                
    '_COOKIE'=>$_COOKIE,
                
    '_SESSION'=>$_SESSION,
                
    '_REQUEST'=>$_REQUEST
                
    )));
    else
        {
        
    $temp=unserialize('vars.ser');
        foreach(
    $temp as $key=>$value)
            $
    $key=$value;
        unset(
    $temp);
        }

    ?>
    код не проверял, но по идее должен нормально работать.
    я полагаю, вы сможете его подстроить под себя если что.
    вставлять его надо первым.
    Если вам нужно все переменные(глобальные) сохранить а не только запрос, то сохраняйте $_GLOBALS
     
    drawing4 нравится это.
  6. drawing4

    drawing4

    Регистр.:
    21 ноя 2008
    Сообщения:
    323
    Симпатии:
    37
    аднака
    а я так старался, собирая из памяти и настроек/меню указанных программ краткое ридми(((

    Ваши труды не пропали зря! Я думаю узнать о репозиториях и работа с ними мне тоже пригодится. Так что в любом случае спасибо за предыдущий труд.

    Разумная мысль, сейчас попробую :)
     
  7. Дикс

    Дикс Читатель

    Заблокирован
    Регистр.:
    24 май 2008
    Сообщения:
    11
    Симпатии:
    1
    да, похоже на правду
     
  8. drawing4

    drawing4

    Регистр.:
    21 ноя 2008
    Сообщения:
    323
    Симпатии:
    37
    $temp=file_get_contents('vars.ser');
    $temp=unserialize($temp);
    foreach($temp as $key=>$value) {
    $$key=$value;
    }
    В выделенной строке что-то не пляшет. Точнее переменная key получает значение _POST а знак $ который перед ней находится не учитывается почему-то. Кажется это где-то в настойках сервера нужно править. Спинным мозгом чувствую
     
  9. Alternator

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    вот так теперь должно работать.я проверил только что код
    PHP:
    <? 
    if( (isset(
    $_GET) && count($_GET)) || 
        (isset(
    $_POST) && count($_POST)) )//если вы руками передали что-то 
            
    file_put_contents('vars.ser',serialize(array( 
                
    '_POST'=>$_POST
                
    '_GET'=>$_GET
                
    '_COOKIE'=>$_COOKIE
                
    '_SESSION'=>$_SESSION
                
    '_REQUEST'=>$_REQUEST 
                
    ))); 
    else 
        { 
        
    $temp=file_get_contents('vars.ser');
        
    $temp=unserialize($temp);
        foreach(
    $temp as $key=>$value
            
    $GLOBALS[$key]=$value
        unset(
    $temp); 
        } 
    echo 
    '<pre>';
    var_dump($_GET);
    echo 
    '</pre>';
    ?>
    почему у вас не срабатывает переменная переменная $$key я не знаю.
    в документации ничего не упоминается по поводу каких-то настроек для этого
     
    drawing4 нравится это.
  10. drawing4

    drawing4

    Регистр.:
    21 ноя 2008
    Сообщения:
    323
    Симпатии:
    37
    Код:
    $a = "hello";
    $$a = "world";
    
    echo "$a ${$a}";

    Банальный пример идет на ура, а
    Код:
    $$key=$value;
    
    Где $key=_POST например не передает значение $value в массив $_POST
    Вот так то :nezn:

    С последним кодом сейчас посмотрю. Надеюсь будет работать :) Alternator спасибо!
     
Статус темы:
Закрыта.