Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
| Порівняння попередніх версій Попередня ревізія | Попередня ревізія | ||
|
yalf [2020/06/05 03:28] |
yalf [2025/01/04 13:07] (поточний) nightfly [Початкова конфігурація config/yalf.ini] |
||
|---|---|---|---|
| Рядок 1: | Рядок 1: | ||
| + | ====== YALF - Yet Another Lightweight Framework ====== | ||
| + | {{: | ||
| + | |||
| + | |||
| + | ===== Навіщо? | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ===== Що включає? | ||
| + | |||
| + | * [[nyanorm|NyanORM - для надзручної роботи з БД]] | ||
| + | * [[ubrouting|ubRouting - для забезпечення роботи із зовнішніми даними, | ||
| + | * [[apiastral|Astral - для швидкого прототипування вьюшок]] | ||
| + | * [[ubillingcache|Ubilling Cache - для влаштовування кешування всілякого]] | ||
| + | * [[snmphelper|SNMP helper - для штурхання залізяк і не залізяк в SNMP]] | ||
| + | * [[omaeurl|OmaeURL - для зручної роботи із зовнішніми API та іншими віддаленими URL-ами]] | ||
| + | * [[ubillingtelegram|Telegram API - для базової роботи з ботами Telegram]] | ||
| + | * [[wolfdispatcher|WolfDispatcher - і зручного написання хуків для них]] | ||
| + | * [[stardust|StarDust - для того, щоб зручно менеджити ваші процеси]] | ||
| + | * І ще багато-багато шматочків, | ||
| + | |||
| + | |||
| + | |||
| + | ===== Системні вимоги ===== | ||
| + | |||
| + | **Apache:** >= 2.4\\ | ||
| + | **PHP:** >=5.3, 7.0, 7.2, 7.4, 8.2\\ | ||
| + | **PHP extensions: | ||
| + | **PHP Options:** short_open_tag=on, | ||
| + | |||
| + | |||
| + | ===== Встановлення ===== | ||
| + | |||
| + | <code bash> | ||
| + | $ mkdir myapp | ||
| + | $ cd myapp | ||
| + | $ fetch http:// | ||
| + | $ tar zxvf yalf_current.tgz && rm -fr yalf_current.tgz | ||
| + | $ chmod -R 777 exports content config | ||
| + | </ | ||
| + | |||
| + | ===== Початкова конфігурація config/ | ||
| + | |||
| + | <file ini yalf.ini> | ||
| + | ; Main module name from modules/ | ||
| + | INDEX_MODULE=" | ||
| + | ; Template name to preload from skins/ like " | ||
| + | YALF_SKIN=" | ||
| + | ; Default application language. Loaded from languages directory. | ||
| + | YALF_LANG=" | ||
| + | ; Allow online language switching by remote clients? | ||
| + | ; Now supported locale switching by GET callback like ? | ||
| + | YALF_LANG_SWITCHABLE=0 | ||
| + | ;Is application global menu rendering enabled? | ||
| + | YALF_MENU_ENABLED=1 | ||
| + | |||
| + | ; XHProf libs path. Recomended to be masked in production. | ||
| + | XHPROF_PATH=" | ||
| + | |||
| + | ; Your application logo, name and site URL | ||
| + | YALF_LOGO=" | ||
| + | YALF_URL=" | ||
| + | YALF_APP=" | ||
| + | YALF_TITLE=" | ||
| + | |||
| + | ; Disabled modules list. Separator - comma. | ||
| + | YALF_DISABLED_MODULES="" | ||
| + | |||
| + | ; Emulate RCMS users auth and rights system? | ||
| + | YALF_AUTH_ENABLED=0 | ||
| + | |||
| + | ; Modules which not require any authorization (public modules) | ||
| + | YALF_NO_AUTH_MODULES="" | ||
| + | |||
| + | ; Logging emulation. Possible values: fake(output to nowhere), file(output to content/ | ||
| + | YALF_LOGGING_TYPE=" | ||
| + | YALF_LOG_TABLE=" | ||
| + | |||
| + | ;Configs editable from web with sysconf module. Comma separated. | ||
| + | YALF_EDITABLE_CONFIGS=" | ||
| + | |||
| + | ; List of layers which must be loaded, with their dependencies. | ||
| + | ; Format: LAYER_*=" | ||
| + | LAYER_LOCALE=" | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | ; | ||
| + | |||
| + | ; Renderer layers | ||
| + | LAYER_WEBRENDER=" | ||
| + | ; | ||
| + | </ | ||
| + | |||
| + | ===== Трішечки детальніше ===== | ||
| + | |||
| + | Основним файлом конфігурації для вашого застосунку є вищевказаний **config/ | ||
| + | |||
| + | Якщо коротко, | ||
| + | |||
| + | <code php> | ||
| + | |||
| + | що повертає boolean. | ||
| + | |||
| + | ===== Шари Страху ===== | ||
| + | |||
| + | Ви завжди можете оптимізувати завантаження бібліотек з **api/ | ||
| + | |||
| + | <code ini> | ||
| + | LAYER_NYANORM=" | ||
| + | LAYER_CACHE=" | ||
| + | LAYER_MAPS=" | ||
| + | </ | ||
| + | |||
| + | Або окремо перерахувати це у вашому особистому шарі бібліотек, | ||
| + | <code ini> | ||
| + | LAYER_MYAWESOMEAPP=" | ||
| + | </ | ||
| + | |||
| + | Слід зауважити, | ||
| + | |||
| + | ===== Web і CLI застосунки ===== | ||
| + | |||
| + | Використовуючи різні шари відображення, | ||
| + | |||
| + | |||
| + | Давайте для прикладу подивимося, | ||
| + | |||
| + | <code ini> | ||
| + | LAYER_CLIRENDER=" | ||
| + | LAYER_ADVICEAPP=" | ||
| + | </ | ||
| + | |||
| + | І власне код, що малює нам у CLI " | ||
| + | |||
| + | <code php> | ||
| + | |||
| + | if (ubRouting:: | ||
| + | if (ubRouting:: | ||
| + | $getOption = ubRouting:: | ||
| + | if ($getOption == ' | ||
| + | $cache = new UbillingCache(); | ||
| + | $cacheTimeout = 3600; | ||
| + | $cacheKey = ' | ||
| + | |||
| + | $currentAdvice = $cache-> | ||
| + | if (empty($currentAdvice)) { | ||
| + | //need to update cache | ||
| + | $adviceUrl = ' | ||
| + | $fga = new OmaeUrl($adviceUrl); | ||
| + | $rawAdvice = $fga-> | ||
| + | if (!empty($rawAdvice)) { | ||
| + | $rawAdvice = @json_decode($rawAdvice, | ||
| + | if (!empty($rawAdvice)) { | ||
| + | if (isset($rawAdvice[' | ||
| + | $currentAdvice = $rawAdvice[' | ||
| + | //updating cache | ||
| + | $cache-> | ||
| + | } | ||
| + | } | ||
| + | } else { | ||
| + | show_error(__(' | ||
| + | } | ||
| + | } | ||
| + | |||
| + | show_window(__(' | ||
| + | } else { | ||
| + | show_error(__(' | ||
| + | } | ||
| + | } else { | ||
| + | show_error(__(' | ||
| + | } | ||
| + | } else { | ||
| + | show_error(__(' | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Усе, тепер ми можемо використовувати наш застосунок із CLI просто ось так: | ||
| + | |||
| + | <code bash> | ||
| + | $ php index.php --get=advice | ||
| + | Advice of the hour: | ||
| + | Raduysia bliat dribnyciam! | ||
| + | $ | ||
| + | </ | ||