логика в php файле

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
Аватара пользователя
nightwind
Сообщения: 333
Зарегистрирован: Вс июн 26, 2016 4:42 pm
Откуда: Барановичи
Благодарил (а): 28 раз
Поблагодарили: 52 раза
Контактная информация:

логика в php файле

Сообщение nightwind » Сб июл 23, 2016 3:51 pm

Всем доброго времени суток.
Хочу вынести логику в php файл. Чтобы переменные держать в переменных, а не в базе. да и чтобы все было в одном файле. задумка с объектами в одминке конечно хорошая, но мне проще держать и редактировать все в одном файле, чем раскиданным по базе и куче менюшек. ктому же оно все выполняется в eval()
В связи с этим пару вопросов
1. Как правильнее сделать - замутить отдельный свой цикл, или прикрутить к главному?
2. Как ловить события changed уже существующих в системе объектов?
Аватара пользователя
nightwind
Сообщения: 333
Зарегистрирован: Вс июн 26, 2016 4:42 pm
Откуда: Барановичи
Благодарил (а): 28 раз
Поблагодарили: 52 раза
Контактная информация:

Re: логика в php файле

Сообщение nightwind » Вс июл 31, 2016 5:20 pm

до логики ход не дошел, многое сделал по типу этого (астрономия)

в папке lib создать файл

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

<?php
if ( ! function_exists('time2Hm')) {
    function time2Hm($tm) {
        return date("H:i", $tm);
    }
}

class Astro {
    var   $latitude;
    var   $longitude;
    
    function Astro() {
        $this->latitude = 53.112268;
        $this->longitude = 26.014811;
    }
    function sunRiseTime() {
        $sun_info = date_sun_info(time(), $this->latitude, $this->longitude);
        return $sun_info['sunrise'];
    }
    
    function sunRiseTime_Hm() {
        return time2Hm($this->sunRiseTime());
    }
    
    function sunSetTime() {
        $sun_info = date_sun_info(time(), $this->latitude, $this->longitude);
        return $sun_info['sunset'];
    }
    
    function sunSetTime_Hm() {
        return time2Hm($this->sunSetTime());
    }
    
    function dayLength() {
        return  $this->sunSetTime() - $this->sunRiseTime();
    }
    function dayLength_Hm() {
        return time2Hm($this->dayLength());
    }
    
    function transit() {
        $sun_info = date_sun_info(time(), $this->latitude, $this->longitude);
        return $sun_info['transit'];
    }
    
    function civil_begin() {
        $sun_info = date_sun_info(time(), $this->latitude, $this->longitude);
        return $sun_info['civil_twilight_begin'];
        
    }
 
    function text() {
        $sun_info = date_sun_info(time(), $this->latitude, $this->longitude);
        $astroText = "";
        
        foreach ($sun_info as $key => $val) {
            if ($key == 'sunrise') {
                $sunRiseTime = $val;
                $astroText = $astroText . 'Восход: ' . date("H:i", $sunRiseTime) . PHP_EOL;
            }
            
            if ($key == 'sunset') {
                $sunset = $val;
                $day_length = $sunset - $sunRiseTime;
                
                $astroText = $astroText . 'Заход: ' . date("H:i", $sunset) . PHP_EOL;
                $astroText = $astroText . 'Долгота дня: ' . gmdate("H:i", $day_length) . PHP_EOL;
                $sunSetTime = date("H:i", $sunset);
                $dayLength = gmdate("H:i", $day_length);
            }
            
            if ($key == 'transit') {
                $astroText = $astroText . 'В зените: ' . date("H:i", $val) . PHP_EOL;
                $transit = date("H:i", $val);
            }
            
            if ($key == 'civil_twilight_begin') {
                $astroText = $astroText . 'Начало утренних сумерек: ' . date("H:i", $val) . PHP_EOL;
                $civil_begin = date("H:i:s", $val);
            }
            
            if ($key == 'civil_twilight_end') {
                $astroText = $astroText . 'Конец вечерних сумерек: ' . date("H:i", $val) . PHP_EOL;
            }
            
        }
        if ($this->isDark()) {
            $astroText = $astroText . ' Темно ';
        }
        else {
            $astroText = $astroText . ' Светло ';
        }
        return $astroText;
    }
}

//$a = new Astro;
//echo(time2Hm($a->sunSetTime()));
//echo($a->dayLength_Hm());
//echo ($a->sunRiseTime_Hm());
?> 
использовать просто, sql не нагружает, работает быстро.
Ответить