PhpUnit работа с файлами

vladimircape

Новичок
Запуская тест в NetBeans и там есть такой вызов статической функции в Yii
PHP:
$result=  Merchant::password($data);
сама статическая функция ищет текущего авторизованного пользователя меняет его пароль на новый и сохраняет ,но перед сохранением вызывается beforeSave()
которая использует
PHP:
if(!is_dir('pictures/merchants/'.$this->id.'/')) mkdir('pictures/merchants/'.$this->id.'/');
Работаю в Винде, и ругается на mkdir мол не находит такой путь, я уже и вначале / ставил ,и this-id менял на существующее
Как можно решить данную проблему, чтобы текст проходил.
 

DiMA

php.spb.ru
Команда форума
в чем вопрос? ты не в состоянии вывести на экран пути, что передаются в is_dir + mkdir, а далее руками из консоли их повторить и исправить ошибку? gеtсwd() так же будет полезна
 

keltanas

marty cats
vladimircape
А какие "обычные" режимы ты используешь? И в чем разница между ними и PhpUnit?

ЗЫЖ если проделаешь, что Дима написал, то прольешь больше света на свою проблему (getcwd я имею ввиду).
 

vladimircape

Новичок
в чем вопрос? ты не в состоянии вывести на экран пути, что передаются в is_dir + mkdir, а далее руками из консоли их повторить и исправить ошибку? gеtсwd() так же будет полезна
Ну я запускаю через NetBeans, чтобы корректно загружал файлы фреймворка из консоли слишком много настраивать нужно. Вот запустил, только как вот вывести данные на консоль мне нужные. Т.е. вывелось та же ошибка ,а что за путь не выводится на экран
 

keltanas

marty cats
hell0w0rd
Проблема не в винде. Человек элементарно не понимает, как строятся относительные пути и чем они от абсолютных отличаются?

vladimircape
А ты как выводишь? Попробуй в файл записать.
PHP:
file_put_contents('C:\mylog.txt', getcwd(), FILE_APPEND)
 

vladimircape

Новичок
Пока сделал вывод в файл, но всё еще интересно можно ли как-то вывести инфо на консоль
 

vladimircape

Новичок
hell0w0rd
Проблема не в винде. Человек элементарно не понимает, как строятся относительные пути и чем они от абсолютных отличаются?

vladimircape
А ты как выводишь? Попробуй в файл записать.
PHP:
file_put_contents('C:\mylog.txt', getcwd(), FILE_APPEND)
Дело не в абсолютных или относительных путях, а в том что путь надо было настроить в bootstrap
 

keltanas

marty cats
Пока сделал вывод в файл, но всё еще интересно можно ли как-то вывести инфо на консоль
Надо запускать тесты через консоль. На счет запуска из NetBeans ничего не скажу.

Так и в чем же разница между обычным порошком и необычным?

Дело не в абсолютных или относительных путях, а в том что путь надо было настроить в bootstrap
Да, а небоскреб строить из дуба.
 

vladimircape

Новичок
Надо запускать тесты через консоль. На счет запуска из NetBeans ничего не скажу.

Так и в чем же разница между обычным порошком и необычным?


Да, а небоскреб строить из дуба.
немного флейма
В той истории пытаются выставить новичка неумным человеком, а как оказалось неумные оказались сторожилы со своими понтами и нежеланием вникнуть, вот продолжение истории твоей http://innovaworld.ru/technologii/kanadtsyi-postroyat-30-etazhnyiy-neboskreb-iz-dereva )))
http://www.sibdom.ru/article.php?id=879
http://www.skyscrapercity.com/showthread.php?t=349752

так сказать Дубами были сторожилы, которые считают что всё знают
 

AmdY

Пью пиво
Команда форума
vladimircape
:) вот видишь у тебя отсутствует обычная внимательность, что в вопросе с путями, что в определении старожил, keltanas 3 дек 2012 - vladimircape 14 июн 2012

Yii::app()->params['pictures.merchants'] .$this->id.'/' , а в бутстрапе тестов это настраиваешь.

да и вообще, от кода несёт за версту, там нужен серьёзный рефакторинг
 

vladimircape

Новичок
vladimircape
:) вот видишь у тебя отсутствует обычная внимательность, что в вопросе с путями, что в определении старожил, keltanas 3 дек 2012 - vladimircape 14 июн 2012

Yii::app()->params['pictures.merchants'] .$this->id.'/' , а в бутстрапе тестов это настраиваешь.

да и вообще, от кода несёт за версту, там нужен серьёзный рефакторинг
И какой же серьезный рефакторинг кроме params можно сделать, для 1 строчки кода )
 

AmdY

Пью пиво
Команда форума
vladimircape
ну, например, сделать действительно одну строчку кода. $this->savePicturesForMerchants(), выполнять её только для новых записей. избавиться от нетестируемой и плохо расширяемой статики (new Merchant)->password($data), расхардкодить зависимость Merchant......
Ну и назвать метод правильно, не Merchant:: password($data), а Merchant::findActiveUserAndChangePassword($password); . Если ещё немного говнокода и допустимо в проектах, но вот именование точно смертный грех, как такое поддерживать?
 

vladimircape

Новичок
vladimircape
ну, например, сделать действительно одну строчку кода. $this->savePicturesForMerchants(), выполнять её только для новых записей. избавиться от нетестируемой и плохо расширяемой статики (new Merchant)->password($data), расхардкодить зависимость Merchant......
Ну и назвать метод правильно, не Merchant:: password($data), а Merchant::findActiveUserAndChangePassword($password); . Если ещё немного говнокода и допустимо в проектах, но вот именование точно смертный грех, как такое поддерживать?
То что выполняется только для новых записей, это есть.
Насчёт статики, это метод вызывается интерфейсом и идет лишь замена пароля, надобности грузить целый обьект нет.
По поводу findActiveUserAndChangePassword это уже перебор, так можно целыми предложениями писать.
 

Adelf

Administrator
Команда форума
По поводу findActiveUserAndChangePassword это уже перебор, так можно целыми предложениями писать.
И тем не менее называть функцию password для такого действия - это говнокод. Лучше предложения. там зато сразу понятно что этот метод делает.
 
Сверху