• Законен ли парсинг с досок объявлений?

    @AlikDex
    Изучите дела дрома и авито, и все понятно станет.

    П.С.
    Законно.
    Ответ написан
    Комментировать
  • Как предотвратить xss уязвимость на yii2?

    @AlikDex
    причем тут xss?
    Вашем случае будет достаточно:
    public function actionPage($target = '') {
        $get = News::find()->where(['link' => $target])->one();
    
        if (null === $get) // В случае неудачного поиска  метод one() возвращает null всегда
            throw new NotFoundHttpException('Page not found');
    
        return $this->render('page', ['target' => $target, 'get' => $get,]); 
    }
    Ответ написан
    3 комментария
  • Какой формат видео выбрать?

    @AlikDex
    с видео не все так однозначно. Выбирать стоит мп4, т.к. это основной формат на данный момент и как сказали поддерживается всеми браузерам\прогрывателями. Но вот что касается качества, то тут есть варианты. Это и битрейт звука, и видео, и количество кадров и используемые для сжатия кодеки, в общем много всяких настроек, которые очень сильно могут менять размер видео файла. Поэтому стоит копать именно в эту сторону ища компромисс.
    Ответ написан
  • В чем разница между namespace и use? И как они связаны с файловой системой?

    @AlikDex
    попытаюсь более человечнее написать =)

    с файловой системой ни то ни другое никак не связаны. Просто приняли так, чтобы путь совпадал с namespace'ом, стандартизировали короче для удобства. Ну и свои плюсы имеются конечно же.

    namespace это установка пространства имен. Скажем так - виртуальная коробочка, в которой лежат всякие штуки (классы). Это дает возможность использовать одинаковые названия классов для одного приложения.

    use указывает какой класс из какого пространства имен использовать. Его можно не писать, но тогда придется вызывать классы вместе с их namespace (если у тех классов они заданы, если нет, то все равно надо указывать глобальное пространство "\").
    типа: $customers = new \app\models\Customers();

    а с use будет:
    <?php
    namespace app;
    use app\models\Customers;
    
    $customers = new Customers();
    
    $imagick = new \Imagick(); // вызов из глобала. обратный слеш нужен когда указан какой-либо неймспейс для этого файла. Иначе попытается вызвать из текущего пространства, что приведет соотвественно к ошибке.


    В мануале все четко расписано в принципе, читай и пытайся понять =)
    Ответ написан
    Комментировать
  • Передается ли вес страницы php редиректу?

    @AlikDex
    конечно передается. чем редирект отличается от перехода по ссылке? Ничем, это тотже самый редирект. 301 тем более. Почитайте что такое 301 редирект.

    Еще добавлю. Хватит читать тонные сео дерьма, что написаны за послдение годы. С каждым новым алгоритмом правила меняются у поисковиков, а следовательно меняется стратегия продвижения. Но в целом тренд такой, чтобы выбирать наиболее интересные сайты для людей. Отсюда следует, что вам необходимо так сделать свой сайт, чтобы он был интересен именно людям, а не ботам. И тогда с поисковиками не будет проблем.
    Ответ написан
    9 комментариев
  • Зачем нужен final class?

    @AlikDex
    Не из мира пхп, но все же. Вот так без слова final в ключевых для безопасности классах работают вирусы:
    https://habrahabr.ru/post/235713/
    Ответ написан
    Комментировать
  • Для чего нужны модули?

    @AlikDex
    Мо́дульное программи́рование — это организация программы как совокупности небольших независимых блоков, называемых модулями, структура и поведение которых подчиняются определенным правилам.[1] Использование модульного программирования позволяет упростить тестирование программы и обнаружение ошибок. Аппаратно-зависимые подзадачи могут быть строго отделены от других подзадач, что улучшает мобильность создаваемых программ.

    Мо́дуль — функционально законченный фрагмент программы. Во многих языках (но далеко не обязательно) оформляется в виде отдельного файла с исходным кодом или поименованной непрерывной её части. Некоторые языки предусматривают объединение модулей в пакеты.

    ссыль

    А значит так и следует использовать. Например блок комментариев вполне заслуживает стать модулем. Поскольку ему нужно знать только идентификаторы сущностей, в которых он вызывается. Такой модуль можно использовать для чего угодно. Например комментировать статьи, фотографии, видео и все такое прочее. Которые в свою очередь тоже могут являться отдельными модулями =)
    Ответ написан
    Комментировать
  • Как вывести переменную в degugger Yii2?

    @AlikDex
    можно вывести в лог www.yiiframework.com/doc-2.0/yii-baseyii.html#info...
    Ответ написан
    Комментировать
  • Почему срабатывает hover в chrome при наведении на скрытую часть изображения через overflow?

    @AlikDex
    .square-items {
        padding: 5px;
        border-radius: 10px;
        display: inline-block;
        cursor: pointer;
        margin: 5px;
        overflow: hidden;
    }


    Или добавить:
    .square-item {
        position: relative;
    }
    Ответ написан
    1 комментарий
  • Select в середине INSERT запроса?

    @AlikDex
    INSERT INTO `tab` (`order`, `type`) SELECT COUNT(*)+1, 1 FROM `tab`
    Ответ написан
    3 комментария
  • Chrome не предлагает сохранять пароли если https?

    @AlikDex
    Нормально сохраняет. Удалите нужный сайт из черного списка сохранения паролей(вносится туда после первого отказа). И проверьте настройки.
    Ответ написан
    Комментировать
  • Почему LIMIT так сильно влияет на скорость?

    @AlikDex
    1) Проверьте селективность запроса (гугл в помощь).
    Вероятнее всего будет лучше сделать (т.к. компаний скорее всего меньше чем чеков):
    SELECT * FROM `warehouses_changes` WHERE (`company`=1) AND (`bill`=0)  ORDER BY `date` DESC LIMIT 20;


    2)Удалите текущий индекс, и для этого запроса сделайте:
    CREATE INDEX warehouses_changes_date_bill_company ON warehouses_changes (company, bill, date);

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

    Подсказка: Индекс следует делать именно в том порядке, в котором делаете выборку данных. Т.е. первым параметром у вас стоят компании - следовательно в индексе должно стоять первым колонка company, потом чек и сортировка `date`.
    Ответ написан
    Комментировать
  • Как написать запрос с подзапросом SQL?

    @AlikDex
    Таблица:
    --
    -- Структура таблицы `products`
    --
    
    CREATE TABLE IF NOT EXISTS `products` (
      `id` int(11) NOT NULL,
      `id_group` smallint(6) NOT NULL,
      `unit` varchar(20) NOT NULL
    ) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
    
    --
    -- Дамп данных таблицы `products`
    --
    
    INSERT INTO `products` (`id`, `id_group`, `unit`) VALUES
    (1, 1, 'метры'),
    (2, 2, 'литры'),
    (3, 1, 'килограммы'),
    (4, 1, 'метры'),
    (5, 1, 'литры'),
    (6, 2, 'килограммы'),
    (7, 1, 'килограммы');
    
    --
    -- Индексы сохранённых таблиц
    --
    
    --
    -- Индексы таблицы `products`
    --
    ALTER TABLE `products`
      ADD PRIMARY KEY (`id`);
    
    --
    -- AUTO_INCREMENT для сохранённых таблиц
    --
    
    --
    -- AUTO_INCREMENT для таблицы `products`
    --
    ALTER TABLE `products`
      MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=8;

    Запрос без джойнов:
    SELECT `unit`, COUNT(DISTINCT `id_group`) 
    FROM `products`  
    GROUP BY `unit`
    Ответ написан
    Комментировать
  • Как сделать выборку?

    @AlikDex
    для начала установите дату в мускуле в формате date, чтоб можно быть вывести в нужном формате (например добавить поле dayDate) и сделать запрос типа:
    SELECT *, DATE_FORMAT(create_at,'%d/%m/%Y') AS dayDate 
    FROM table
    ORDER BY `create_at` DESC

    Далее в пхп выводишь, что-то типа:
    $previousDate = "";
    foreach($posts as $post) {
       if ($post['dayDate'] !== $previousDate)
          echo "<b>" . $post['dayDate'] . "</b><br>";
       echo $post['title'] . "<br>";
       $previousDate = $post['dayDate'];
    }
    Ответ написан
    1 комментарий
  • Скрипт добавляет записи в БД после завершения?

    @AlikDex
    Если коротко, то сервер разрывает соединение в после превышения лимита времени (настраивается).
    Также настраивается параметр завершать скрипт или нет после разрыва коннекта. Но не помню где точно(толи апач, толи пхп), гугол в помощь.
    Рецепт без колупания настроек:
    используйте 81 порт. например: mysite.com:81/script.php
    Ответ написан
    Комментировать
  • Как быстро продвинуть свой сайт в Яндексе?

    @AlikDex
    заплатить бабло яндексу. Рекламный сайт также висит как и бесплатные, но на первых позициях с почти незаметной иконкой "реклама". Самый эффективный способ.
    Ответ написан
    Комментировать
  • Как интегрировать webix в Yii2?

    @AlikDex
    очевидно декодить жсон, валидировать данные и записать в таблицу как обычно.
    Поможет в этом:
    https://github.com/yiisoft/yii2/blob/master/docs/g...
    Ответ написан
  • Чем популярна DLE?

    @AlikDex
    в общем дле это поделка наших школотронов. Которые хоть и выросли уже, но развиваться не хотят. И поскольку проект изначально школотронский, то и притягивает он тоже школоту. Не требователен и на русском. Шаблон вообще не требует знаний в программировании, даже базовых. Шаровых шаблонов вагон. В общем hyjak hujak и сайт готов буквально в пару десятков кликов.
    Ответ написан
    2 комментария