Abu

Abu

Был в сети 01 января 2023, 18:55
Заказы не принимаю
Привет, интересно конечно!
Еще хотелось бы почитать workflow работы с гитом при разработке сайта. Пару раз примеривался, но большой минус modx, который, как я понял, никто не поборол, это хранение шаблонов и чанков в базе данных и соответственно невозможность их версионности через гит.
Не уверен, что оптимальный вариант. Использую ТВ-шки привязанные к Ресурсам + плагин. Ищет картинку если не задана в ТВ-шке вручную, если в тексте нет картинки выводится дефолтная. Из минусов, не разобрался как грамотно прикрутить media_source.

<?php
//OnBeforeDocFormSave

$tv = $modx->getOption('TV',$scriptProperties,'firstImage');
$img = $resource->GetTVValue($tv);

if(empty($img)) {
    $def_img ='template/default.png';
    $media_source = '/assets/uploads/';
    $text = $resource->content;
    
    if (preg_match_all( '|<img.*?src=[\'"](.*?)[\'"].*?>|i',$text , $matches )!=0)	{$img = $matches[1][0];}
    else {$img = $def_img;}
    
    $img = str_replace($media_source, '', $img);
    $resource->setTVValue($tv,$img);
}
Как-то оптимизировал свой локальный сервер, методом тыка — добавил такие параметры все личное ИМХО —
в /etc/mysql/my.cnf

skip-innodb
skip-bdb
skip-networking
default-storage-engine=myisam
query-cache-type=0
performance_schema = 0

Вроде еще процессы php-fpm нехило память отжирают — в конфигах

/etc/php5/fpm/pool.d/sitename.conf

вместо

pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 4

заменил на

pm = ondemand
pm.max_children=10
pm.process_idle_timeout=30
pm.max_requests = 50

Если я все правильно понял, менять для редко-используемых сайтов, процесс php-fpm не будет висеть в памяти, а будет запускаться только после запроса, наверняка уменьшает отклик php при первом запуске.
Глянул специально в ок, просят электронную почту или придумать логин, потом еще номер телефона вымогают. Но почта не обязательна в итоге. Да и вопрос не в том есть или нет почта, у многих есть, но ее не помнят. Особых требований от модекс, в этом плане не увидел, старая добрая логинза вроде нормально работала.
На ugvps по акции на lowendbox — 19$ за пол-года, 4cpu 3ram. Хостинг не стабильный, аптайм нормализовался только последние полгода. Но все равно неплохо.

PHP version : 5.4.23-1+sury.org~precise+1
Platform : Linux
--------------------------------------
test_math                 : 2.647 sec.
test_stringmanipulation   : 2.394 sec.
test_loops                : 1.153 sec.
test_ifelse               : 1.004 sec.
--------------------------------------
Total time:               : 7.198 sec.
Оставлю памятку разграничения тикетов между пользователями и менеджерами.

1) Создается 2 группы пользователей: Users и Managers

*все действия в контексте web, роль Member

2) Создается группа ресурсов Restricted -при создании можно сразу автоматически дать доступ Administrator, анонимный доступ, дать доступ нашим группам Users,Managers (в результате в группах появляется доступ к группе ресурсов — Restricted и все пользователи могут их load,list,view (Resource))

3) Создается группа ресурсов Editable — автоматически дать доступ Administrator, дать анонимный доступ, дать доступ группам Users,Managers (в результате в группах появляется доступ к группе ресурсов — Editable)

4) Далее, чтобы можно было добавлять секции, добавляем в группах Administrator, Managers, Users —
еще один доступ к ресусам Editable, уже с политикой — TicketSectionPolicy.

5) Группам Administrator, Managers — дадим доступ и к ресурсам Restricted с политикой TicketSectionPolicy

6) Добавляем разрешенные к редактированию пользователями и менеджерами ресурсы в группу Editable, а разрешенные только к редактированию менеджерами ресурсы в Restricted — например Новости сайта в Restricted, а Вопросы пользователей в Editable.