• Как отказаться от jquery и jquery библиотек?

    hahenty
    @hahenty
    ('•')
    Можно отказаться от jQuery, но не переходить на чистый js, а на какой-нибудь другой набор библиотек или фреймворк. Те же Vue и react очень богаты на всяческие дополнения типа галерей, аккордеонов, форм, календарей, есть готовые админки с аналитикой из графиков и таблиц. А чистый js пусть остаётся эстетствующим маргиналам и новичкам, нечего время терять.
    Ответ написан
    7 комментариев
  • Предотвращение работы useEffect и вложенной в него функции?

    Alexandroppolus
    @Alexandroppolus
    кодир
    1) if (sortedAuthors !== []) - это всегда true, потому что сравнивается по ссылке с вновь созданным объектом
    2) если sortingAuthorsByFirstSymbol меняет sortedAuthors, то скорее всего схема работы здесь неправильная, лучше делать через useMemo

    В остальном пока непонятно, что и как.
    Ответ написан
    1 комментарий
  • Как правильно перебрать массив и добавить результат в переменную состояния?

    Alexandroppolus
    @Alexandroppolus
    кодир
    function handleStartSearch(data) {
        setCards(!data ? dataJson.result : dataJson.result.filter(item =>
                (item.title.includes(data) || item.author_lastName.includes(data)
               || item.author_firstName.includes(data)))
    }
    Ответ написан
    1 комментарий
  • Асинхронность Promise. Как работает?

    Alexandroppolus
    @Alexandroppolus
    кодир
    колбэк в конструкторе промиса синхронный.
    ошибка ловится конструктором промиса, промис получается отмененный.
    Ответ написан
    5 комментариев
  • Как правильно реализовывать фронтэнд в 2021?

    myks92
    @myks92
    Нашёл решение — пометь вопрос ответом!
    В современном мире действительно стоит разделять backend и frontend. Везде есть свои фреймворки которые стоит использовать для облегчения разработки. Бакенд обычно имеет только api и этого бывает достаточно. А шаблонизатор twig применяют в этом случае для email писем.

    Frontend сейчас разнообразен. Это сейчас больше чем CSS+HTML и небольшой функционал на JS. Более того на Frontend сейчас тоже можно делать микросервисы. Одна страница может работать сразу на нескольких JS фреймворках. Например, меню на Vue, а Navbar на ReactJS.

    С точки зрения поддержи и развития вы тоже проигрываете. Ведь большой проект требует узких специалистов, в том числе и фронтенд. Если Ваш фронтенд будет на PHP, то на фронтент уже потребуется фул стек разработчик, что дороже и проблематичнее. Значит сложнее масштабирование и развитие. Да и возникают проблемы монорепозитория, куда все изменения с frontend и backend поступают в один репозиторий, без возможности отделения их. Таким образом ко всем разработчикам сразу попадает готовый проект, который легко скопировать и украсть.

    Поэтому, если ваш фронт слишком сложный, то его следует отделить. Иначе вам придётся столкнуться с множеством проблем, зависимостью и сложностью как проекта, так и репозитория.
    Ответ написан
    Комментировать
  • Самый короткий способ обработать каждый элемент массива?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Профессионалы, например, понимают, что присвоение $value здесь бессмысленно и не пишут его. И вот я сэкономил вам целых 9 символов - потратьте их с умом.
    Ещё профессоналы понимают, что в коде важна читаемость, а не краткость. И именно умение писать понятный код является показателем квалификации.

    Ну а прям профессиональные профессионалы решают эту задачу исключительно вот так:
    Посмотреть профессиональный код

    <?php
    declare(strict_types=1);
    
    class Ellipsis
    {
        private string $char;
        private int $count;
    
        /**
         * @param string $char
         * @param int $count
         */
        public function __construct(string $char, int $count)
        {
            $this->char = $char;
            $this->count = $count;
        }
    
        /**
         * @return string
         */
        public function getChar(): string
        {
            return $this->char;
        }
    
        /**
         * @return int
         */
        public function getCount(): int
        {
            return $this->count;
        }
    }
    
    class Ellipsisist
    {
        private Ellipsis $ellipsis;
    
        /**
         * @param Ellipsis $ellipsis
         */
        public function __construct(Ellipsis $ellipsis)
        {
            $this->ellipsis = $ellipsis;
        }
    
        /**
         * @param string $value
         * @return string
         */
        public function __invoke(string $value): string
        {
            return str_pad($value, mb_strlen($value) + $this->ellipsis->getCount(), $this->ellipsis->getChar(), STR_PAD_LEFT);
        }
    }
    
    class EllipsisistFactory
    {
        /**
         * @param string $char
         * @param int $count
         * @return Ellipsisist
         */
        public static function make(string $char, int $count): Ellipsisist
        {
            return new Ellipsisist(new Ellipsis($char, $count));
        }
    }
    
    $arr = ['foo', 'bar', 'baz'];
    
    $ellipsisiatedArr = array_map(
        EllipsisistFactory::make('.', 3),
        $arr
    );
    
    var_dump($ellipsisiatedArr);

    Ответ написан
    4 комментария
  • Как через API Facebook опубликовать запись на стене группы?

    php_cat_com
    @php_cat_com
    php-cat.com > программирую laravel + vue3
    vista1x, ответ чёткий, спасибо :)
    новичку в api fb отличный старт, единственное место где реально объяснил где получить токен +100500
    Ответ написан
    1 комментарий
  • Как через API Facebook опубликовать запись на стене группы?

    @vista1x
    1) Для начала создаешь приложение. Сделать это можно тут https://developers.facebook.com
    Важные моменты: в настройках необходимо указать email и активировать приложение (раздел app review)
    2) Нужно получить ключ для работы с апи. Идешь сюда https://developers.facebook.com/tools/explorer, в правом верхнем углу жмешь Get Token -> Get Page Access Token, даешь разрешения на запрос прав доступа. Жмешь снова Get Token и выбираешь свою группу, потом жмешь Request publish_pages и снова соглашаешься. Тут мы получили временный ключ. Нужно обменять его на постоянный (ну как постоянный.. действовать он будет 60 дней, далее - нужно будет снова получать).
    Выполняешь такой запрос (в этом же приложении)
    oauth/access_token?grant_type=fb_exchange_token&client_id=[ID_ПРИЛОЖЕНИЯ]&client_secret=[КЛЮЧ_ПРИЛОЖЕНИЯ]&fb_exchange_token=[ТОКЕН]

    То, что в квадратных скобках, естественно, подставляешь своё. Токен берешь из поля "маркер доступа". Выполняешь запрос, в ответе будет твой токен. Ура.

    Теперь то, что касается программирования:
    1) Берешь Facebook SDK https://github.com/facebook/facebook-php-sdk-v4/ (ставить конечно лучше через композер, но если не имеешь представления "что это и как с этим работать", то просто скачиваешь и инклудишь себе автозагрузчик, должно работать.
    2) Сам постинг.
    $app_id = ''; // ид приложения. берешь в настройках приложения (или копируешь с адресной строки)
    $app_secret = ''; // ключ приложения. берешь в настройках приложения
    $access_token = ''; // токен, который мы получили
    $page_id = ''; // id группы
    
    $fb = new Facebook\Facebook(array(
        'app_id' => $app_id,
        'app_secret' => $app_secret,
        'default_graph_version' => 'v2.2',
    ));
    $fb->setDefaultAccessToken($access_token);
    
    // а тут мы непосредственно постим запись на стену. 
    // в этом примере запись представляет собой картинку + текст
    $data = [
        'message' => 'Текст',
        'source' => $fb->fileToUpload('/полный/путь/к/картинке'),
    ];
    $batch = [
        'photo' => $fb->request('POST', "/{$page_id}/photos", $data),
    ];
    $responses = $fb->sendBatchRequest($batch);


    Если пост не уходит, смотришь переменную $responses - в ней есть ответ сервера.
    Ну и документацию не стоит обходить стороной https://developers.facebook.com/docs/php/gettingst... Тут, кстати, описана установка SDK поподробнее
    Ответ написан
    6 комментариев
  • Как получить список процессов windows используя node.js?

    spnq
    @spnq
    Frontend Developer
    https://www.npmjs.com/package/ps-list.
    const psList = require('ps-list');
     
    (async () => {
        console.log(await psList());
        //=> [{pid: 3213, name: 'node', cmd: 'node test.js', ppid: 1, uid: 501, cpu: 0.1, memory: 1.5}, …]
    })();
    Ответ написан
    1 комментарий
  • Как скачать видео с instagram с помощью nodejs?

    alsolovyev
    @alsolovyev
    Получаем html через request
    Парсим через Сheerio

    ps почему не использовать api инстаграма?
    Ответ написан
    3 комментария
  • Почему не воспроизводится видео в chromium?

    @SZolotov
    Asp.net core, MAUI,WPF,Qt, Avalonia
    Зайдите на https://html5test.com посмотрите что текущая сборка поддерживает. Если сборка не поддерживает кодеки - нужно пересобрать хромиум из исходников, предварительно включив поддержку кодеков в исходниках.
    Если честно хз при чем тут node.js, тк серверу фиолетово на клиентские кодеки, он тупо байты раздаёт, а клиент принимает решение что с ними делать.
    Ответ написан
    Комментировать