Андрей Степаненко

Андрей Степаненко

С нами с 28 октября 2014; Место в рейтинге пользователей: #7
Отправить деньги
Андрей Степаненко
13 января 2020, 21:57
0
С житьем там сложно, если без работы официальной. Каждые 3 месяца поездки в камбодже, что то такое
Андрей Степаненко
13 января 2020, 20:50
0
Не поверишь))) ИП очень много открывается. Я вот лично не люблю такие сайта делать. Но 100% такие сайты нужны так как учится на чем то надо и не только девелоперам но и ИП!!! По другому не бывает
Андрей Степаненко
06 января 2020, 09:51
0
Пытаюсь найти информацию о xpdo3, где то давно находил информацию что в нем есть поддержка phpunit mock объектов. Может конечно ошибаюсь.
Сейчас есть уже где то описание новых возможностей xpdo3?
Не могу что то найти ничего
Андрей Степаненко
20 декабря 2019, 12:35
+1
В общем это не только крон задания, а так же система уведомлений и готовый API с modx внутри.
Пример кода для создания нового задания
<?php
/**
 * Демонстрация контроллера
 */
class CrontabControllerDemo extends modCrontabController
{
    public function run()
    {
        $this->modx->log(modX::LOG_LEVEL_ERROR, "Задание завершено", '', __METHOD__, __FILE__, __LINE__);
    }
}
все что нужно чтобы в run выполнить свой код.
В modCrontabController еще куча всяких фич. Надо все описывать конечно)))
Андрей Степаненко
20 декабря 2019, 12:27
0
Для нескольких крон заданий компонент наверное смысла ставить нету. Хотя опять же если не умеешь пользоваться crontab через ssh то этот компонент поможет составить список заданий. А потом просто скопировать их в crontab.
Вообще очень спасают уведомления на емайл. Когда отваливается какой то скрипт или сервис, тебя не заваливает сообщениями об ошибке. Так как есть лимит не удачных попыток. К примеру если 10 раз задание завершилось с ошибкой то только после 10 раза уйдёт уведомление и цикл будет повторятся пока администратор не предпримет какое то действие, или работа скрипа не восстановится.
Андрей Степаненко
20 декабря 2019, 11:59
+3
Ну тут все просто, в отличии от Scheduler, в компоненте каждое задание это отдельно задание прописанное в кроне. а в Scheduler все вешается на одно задание.

А так же есть вот эти штуки: Есть уведомления о том что задание завершилось с ошибкой, ведутся логи запуска и завершения задания, и пишет в crontab на прямую.

В общем не стоит сравнивать компонент с какими то существующими. Аналогов для modx явно не найти.

В компоненте можно любое количество контроллеров создать и запускаться будут по отдельности.

В общем надо ставить пользоваться, я вот так простыми словами не опишу даже.
Могу сказать только:
у меня есть проекты где по 50 крон заданий, каждое задание может выполнять хоть час хоть одну минуту, вот и представь сколько будут выполнять задания через Scheduler
Андрей Степаненко
20 декабря 2019, 11:15
+1
Я и не подозревал что php умеет писать в crontab
В это вся и загвоздка.
Очень много серверов настроены именно так что у веб-пользователя нету прав писать задания в crontab.
К пример сервера на ispmanager вообще не дают прав чтобы редактировать crontab даже под ssh
Андрей Степаненко
06 декабря 2019, 00:42
+1
там довольно таки просто, все сео обрабатывается на стороне сервера.

Надо уже привыкнуть что js работает как обычный php за счет nodejs. А потом тот же js работает как js в привычном понимании уже после загрузки страницы.
Андрей Степаненко
28 августа 2019, 16:14
+1
Да я вот тоже удивился, включаю перегенерацию ссылок и ничего не происходит, методом тыка проверял, в функцию gettingUrls захожу вижу что возвращаются значения, но в if() какая та лажа происходит.
Может какой то гон именно в php версии, такое бывает.
Андрей Степаненко
28 августа 2019, 15:10
0
Не Знаю толи баг это толи у меня что то неправильно сработало:
prntscr.com/oympu7
В общем почемуто считает что ничего не вернулось, доработала, тогда заработало.
Может кому пригодится
Андрей Степаненко
15 августа 2019, 15:31
+1
Еще бы в низ меню съезжало вместе со скролом))
prntscr.com/ot12pi
Андрей Степаненко
15 августа 2019, 11:05
0
Еще пара функций в арсенале класса:
public function put($url, $parameters=array(), $headers=array())
public function delete($url, $parameters=array(), $headers=array()){
не стал про них писать, так как:
хотя они не так часто нужны.
Андрей Степаненко
14 августа 2019, 07:58
+1
И пофигу, что там есть серьезные проблемы с установкой многих заголовков (этого просто нельзя сделать без расширения класса).
Здесь есть проблема::
$client = $modx->getService('rest.modRestCurlClient');
Здесь нет:
/* @var modRest $client */
$client = $modx->getService('rest', 'rest.modRest');
это два разных класса.
Тока прошу, не начинай опять про отставания modx....
Андрей Степаненко
07 августа 2019, 12:16
0
Авторы на modstore конечно не будут индексироваться.
Речь о том что происходить пререндинг на стороне сервера, и уже отдается готовая страничка браузеру. Этим и занимается ru.nuxtjs.org
Андрей Степаненко
07 августа 2019, 11:41
0
В личку кинул
Андрей Степаненко
07 августа 2019, 07:47
+1
А еще момент чтобы весь контент генерировался на бекенде, и чтобы поисковик видел уже сгенерированный контент нужно во vue.js получать контент вот так:
export default {
    .....
    async asyncData ({app, req, params, error}) {
      return app.$axios.get(`/products/1`)
        .then((res) => {
          return {
            object: res.data.object
          }
        }).catch((e) => {
          error({ statusCode: 404, message: 'Страница не найдена' })
        })
    },
    ....
}
Андрей Степаненко
07 августа 2019, 07:31
1
+8
RESTful заготовка для modx и интернет магазина minishop2:
https://github.com/webnitros/RESTfulAPIs

На счет nuxt.js и индексации, сайт полноценно индексируется, проблем с индексацией вообще нету.

На счет запуска: так как nuxt можно вешать на порт с тем же доменом сайта, и чтобы фронт у нас отдавал не наш сайт а именно запущенный сайт на nuxt то в nginx можно прописать

# nginx
location / {
        proxy_pass http://site.ru:24200;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_read_timeout 5m;
        proxy_connect_timeout 10400s;

        proxy_buffers 8 32k;
        proxy_buffer_size 64k;
    }
Порт 24200 запущен nuxt.js

На счет статики можно делать вот так
location = /sitemap.xml {
            proxy_pass http://rest.site.ru/sitemap.xml;
            proxy_read_timeout 10400s;
            proxy_connect_timeout 10400s;
    }
    location = /robots.txt {
            proxy_pass http://rest.site.ru/robots.txt;
            proxy_read_timeout 10400s;
            proxy_connect_timeout 10400s;
    }