Использование $PHP_Use_Trought_Shell

Все вопросы касающиеся использования
программы можно задать здесь
Ответить
LazyCot
Сообщения: 51
Зарегистрирован: 03 окт 2010, 16:37

Использование $PHP_Use_Trought_Shell

Сообщение LazyCot » 11 авг 2016, 21:41

Прикручиваю PHPStorm для отладки. Да, я знаю, что его уже прикрутили до меня... Но у меня версия 4.6.50, а к ней настройки не прикладывались.
Процесс пошел. При выполнении метода $browser->recreate() скрипт останавливается и ждет...

Код: Выделить всё

	function recreate()
	{
	   	$params = array(  );
	    	$res=$this->call_boolean(__FUNCTION__,$params);
		sleep(1);

		global $PHP_Use_Trought_Shell;
		if ($PHP_Use_Trought_Shell)
			fgets(STDIN);

		return $res;

   	}	
Оно и понятно: $PHP_Use_Trought_Shell виновата.

Changelog гласит:
- введение параметра в шаблон, указывающего что php работает не через оболочку ($PHP_Use_Trought_Shell), решающего некоторые проблемы зависания при работе через другой сервер
Вопрос: как сделать так, чтобы скрипт сам определял, под отладчиком он или под оболочкой? Там вроде можно в PHPStorm дополнительные параметры передавать, но что-то у меня не получается. А править переменную каждый раз тоже не комильфо...

LazyCot
Сообщения: 51
Зарегистрирован: 03 окт 2010, 16:37

Re: Использование $PHP_Use_Trought_Shell

Сообщение LazyCot » 14 авг 2016, 22:38

Сам спросил - сам отвечу:

Добавляем в php.ini строку наподобие:
shell_exec="Xweb"

В IDE в настройках профиля отладки добавляем переопределение этого параметра (в опциях интерпертатора):
Изображение

В скрипт добавляем вот это:

Код: Выделить всё

if (get_cfg_var('shell_exec')=="PhpStorm"){
$PHP_Use_Trought_Shell = false;
}
else $PHP_Use_Trought_Shell = true;
И вуаля!
При работе из под IDE Use_Trought_Shell = false;
При запуске из под оболочки Use_Trought_Shell = true;
Что и требовалось.

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 3048
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Использование $PHP_Use_Trought_Shell

Сообщение bigfozzy » 16 ноя 2016, 01:40

Также самое можно использовать $PHP_Use_Trought_Shell для работы с Zend Studio и другими оболочками

Ответить