так нормально писать?

craz

Нестандартное звание
PHP:
if(
    (
        $_SESSION['SESS_IP']
        &&
        strlen($arPolicy["SESSION_IP_MASK"])>0
        &&
        (
            (ip2long($arPolicy["SESSION_IP_MASK"]) & ip2long($_SESSION['SESS_IP']))
            !=
            (ip2long($arPolicy["SESSION_IP_MASK"]) & ip2long($_SERVER['REMOTE_ADDR']))
        )
    )
    ||
    (
        $arPolicy["SESSION_TIMEOUT"]>0
        &&
        $_SESSION['SESS_TIME']>0
        &&
        mktime()-$arPolicy["SESSION_TIMEOUT"]*60 > $_SESSION['SESS_TIME']
    )
)

Всмысле кодестайл
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Феерично. Но вот что-то душа не лежит. Хочется чего-то банального
if($a && $b && $c){

} else {

}
 

AmdY

Пью пиво
Команда форума
Mr_Max
+1
если не влезает в строку, то нужно задуматься о рефакторинге и скрытие сложной логики в функциях.
if (check() || check2())
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
А, вспомнил, я встречал что-то типа такого
Код:
if($a   ||   ($b && $c))
визуально, как-по мне, легче воспринимается. Но сам - не пользуюсь. Лень пробелы ставить
 

craz

Нестандартное звание
Вот и я думаю что это форменный п...ц, зато это продается за 50к штука) битрикс называется)
 

Активист

Активист
Команда форума
> скрытие сложной логики в функциях.
Конечно, убрать срам подальше, чтоб глаза не мозолил))))

PHP:
if (isValidSession()) {
//
}

function isValidSession() {
return (
    (
        $_SESSION['SESS_IP']
        &&
        strlen($arPolicy["SESSION_IP_MASK"])>0
        &&
        (
            (ip2long($arPolicy["SESSION_IP_MASK"]) & ip2long($_SESSION['SESS_IP']))
            !=
            (ip2long($arPolicy["SESSION_IP_MASK"]) & ip2long($_SERVER['REMOTE_ADDR']))
        )
    )
    ||
    (
        $arPolicy["SESSION_TIMEOUT"]>0
        &&
        $_SESSION['SESS_TIME']>0
        &&
        mktime()-$arPolicy["SESSION_TIMEOUT"]*60 > $_SESSION['SESS_TIME']
    )
)
}
 

AmdY

Пью пиво
Команда форума
кстати, формат удобно проверять в ide netbeans shift+ctrl+f получается
PHP:
if (
		(
		$_SESSION['SESS_IP']
		&&
		strlen($arPolicy["SESSION_IP_MASK"]) > 0
		&&
		(
		(ip2long($arPolicy["SESSION_IP_MASK"]) & ip2long($_SESSION['SESS_IP']))
		!=
		(ip2long($arPolicy["SESSION_IP_MASK"]) & ip2long($_SERVER['REMOTE_ADDR']))
		)
		)
		||
		(
		$arPolicy["SESSION_TIMEOUT"] > 0
		&&
		$_SESSION['SESS_TIME'] > 0
		&&
		mktime() - $arPolicy["SESSION_TIMEOUT"] * 60 > $_SESSION['SESS_TIME']
		)
)
и макса пробелы съелись
if ($a || ($b && $c))
 

Активист

Активист
Команда форума
По мне первый лучше, чем форматет из нетбинс, там видно вложенность, тут нихрена не видно.
 

Активист

Активист
Команда форума
Короче, по мне код у ТС нормальный, лучше написать один раз (если действительно вызывает всего один раз), чем сувать в функцию, по сурсам прыгать не надо.
 

AmdY

Пью пиво
Команда форума
Активист
в том то и дело, что когда я работаю с чужим кодом, то первым делом форматирую его в нетбинсе, чтобы не разбираться в чужом коде стайл. если автоформатер превратил код в кашу, то лучше изменить стиль, чем менять ide
 

craz

Нестандартное звание
ЫЫ

В 1C нет IDE(((( интересно они в фаре разрабатывают или в vi?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Звездец) Я впечатлился
 

Активист

Активист
Команда форума
> В 1C нет IDE
Я сам применяю такой кодестайл на длинные выражения (бывает редко, но бывает), то что в начале топика, все же читаемой.

> AmdY
Уж я сомневаюсь, что вы сразу жмете Apply Source Formating

PHP:
if (
							isset($_POST['notify']) && (
								$oldOrder->summ() != $order->summ() ||
								$oldOrder->status != $order->status ||
								$oldOrder->sended != $order->sended || 
								$oldOrder->sizeof() != $order->sizeof() ||
								$oldOrder->postNum != $order->postNum
								)
							) {
								/** @todo send to client email message */
								
								$this->core->sendEmail(
														$order->name,
														$order->email,
					.....
														false);
								// echo "<pre>"; var_dump($order);							
							}
Убейте меня теперь за это.
 

craz

Нестандартное звание
я считаю что если условие не читается первым пробегавшим рядом с кодом программистом за 20-30 секунд, то это не условие, а там где оно находиться не код...


В вашем случае оно хотя бы читается... но уверен подрефакторить можно легко
 

Активист

Активист
Команда форума
Кстати, по коду ТС сразу видно - secure проверка сессии, читается сразу))))))))
 

Активист

Активист
Команда форума
Конечно, не спорю, феерично писать
> strlen($arPolicy["SESSION_IP_MASK"])>0
> mktime()-$arPolicy["SESSION_TIMEOUT"]*60 > $_SESSION['SESS_TIME']
Они там велосипед изобрели, я такое видел в чате php.spb.ru, там такого много было, но это уже к DiMA )))
 
Сверху