• Как организовать архитектуру проекта с 1000 api?

    Gomonov
    @Gomonov
    Используйте очереди. Консьюмеры, обрабатывающие сообщения из очереди, будут держать соединение с бд, чего Вы так боитесь. Продюсеры могут вызываться из крона (определённое время запуска), а могут и из отдельного воркера (запуски через малые промежутки времени)
    Ответ написан
    Комментировать
  • Как $_GET-ом достать строку?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Потому что программирование надо учить.
    И потом совершать осмысленные действия с теми инструментами, которые вы получили в свое распоряжение.
    А не пытаться строить самолеты из сена, как делали папуасы после второй мировой войны, думая, что это призовет с неба ящики с консервами. По аналогии с теми самолетами, которые привозили консервы раньше.

    В данном случае следует ознакомиться с документацией на метод R::load() и сделать из полученной информации логическое умозаключение, подходит ли этот метод для получения данных из произвольных полей таблицы.
    Ответ написан
    1 комментарий
  • Есть ли шаблон постраничной навигации Битрикс с описанием (разбором)?

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    Нет.

    с описанием к каждой строке
    вы это серьёзно?

    Подозреваю что ваш вопрос звучит так: "Как работает Битрикс?" - поиски ответа советую начать отсюда (Постраничная навигация).
    Ответ написан
    3 комментария
  • Все объекты true почему это ложь ({}==true)?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Потому что при сравнении объектов и булевых значений последние преобразовываются в числа, а при сравнение объектов и чисел объекты также преобразуются в числа, т.е., в конечном счёте, в данном случае имеет место сравнение NaN и 1.

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

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    Как узнать свои ли работы человек положил в портфолио?
    Речь идет о сайтах и веб-приложениях. Нигде нет надписи о создателе, владельцы ресурса не презнаются, человек выглядит компетентным.

    Когда я ещё работал "сам по себе" (или точнее, "сам на себя"), мне тоже приходилось заниматься различными около полезными делами, вроде "создание портфолио", в которые я помещал некоторые проекты, авторство которых (точнее будет сказать: "копирайт которых") принадлежал, разумеется не мне, а например компании-партнеру, которая по сути и выступала инициатором проекта (или точнее говоря, основным подрядчиком). И то, что проект делал лично я или моя команда - мало кого волновало. В ряде случаев, заказчик даже не знает кто именно делает ему проект и какие суб-подрядчики над ним трудятся, он заключает договор с конкретной компанией, а остальное - это личные проблемы этой самой компании (исполнителя), что в общем то, справедливо. По этой причине, вполне вероятно, что субъекту, который Вы называете "владелец ресурса" - признаваться просто не в чем, т.к. они не могут знать, кто именно/лично что им там делал.

    В вашем случае, насколько я понимаю, речь идёт о собеседовании... Простейшее, что можно сделать - это попросить исполнителя рассказать про конкретный проект, что было реализовано, как именно, какие проблемы возникали и т.д., если он действительно его делал - он будет помнить ключевые моменты проекта даже если прошло лет 5, а если он его не делал - это довольно легко заметить по ряду вторичных признаков его поведения (думаю, многим людям которые проводят собеседование знакомо то, о чем я говорю).

    Так же, хочу сказать, что нельзя судить людей по их портфолио, вы же не выбираете себе жену по фотографиям блюд которые она приготовила когда-то? Почему на мой взгляд портфолио является очень субъективным показателем:
    1. Далеко не всё и не всегда можно поместить в своё портфолио, например среди наших клиентов были полит. партии, некоторые гос. заказчики и прочие серьёзные (на мой сугубо личный взгляд) компании, при этом кто автор проекта, на чем он реализован и прочие подробности - запрещалось разглашать "под страхом смертной казни", разумеется, ряд лучших из моих/наших работ я в портфолио не мог(у) поместить физически
    2. Даже если человек непосредственно участвовал в проекте, далеко не факт, что он занимал в нем лидирующую позицию, может быть он просто со-исполнитель, кои в свою очередь при должном руководстве и наставничестве способны творить чудеса, при этом сами по себе, работают довольно вяло (слабо)
    3. Ряд прочих причин, которых можно насчитать с пол сотни, говорящих в пользу того, что портфолио - далеко не самый значительный показатель...
    Ответ написан
    Комментировать
  • PHP. Обрабатывается только последний отмеченный checkbox. Что не так?

    @krypt3r
    Про name="action[]" у всех чекбоксов уже было или я первый?
    Ответ написан
    1 комментарий
  • Как из масcива получить меньшее значение?

    proudmore
    @proudmore
    min($data);
    Ответ написан
    Комментировать
  • С чего нужно начать изучать программирование нейронных сетей?

    AgentProvocateur
    @AgentProvocateur
    методично, всерьёз и надолго погрузиться в тему

    Погружайся)) Методичнее некуда)
    59f726f14da9a668973662.png
    Ответ написан
    12 комментариев
  • Как в Битрикс создать свойство инфоблока "До и после"?

    rpsv
    @rpsv
    делай либо хорошо, либо никак
    1. Множественное строковое свойство (значение и описание - это собственно 2 даты)
    2. Множественная привязка к элементам инфоблока/HL-блока (у связного инфоблока собственно должны быть свойства с датами)
    3. Кастомное свойство (пользовательское свойство с настраиваемым отображением)
    ---
    1 вариант - это вообще днище, как только прочитали, забудьте сразу, но если надо сделать быстро и по фиг на кривость, то покатит.
    2 вариант - норм, единственный минус что добавление неудобное.
    3 вариант - самый норм, хватило бы скила
    Ответ написан
    2 комментария
  • Битрикс, не добавляет товар в корзину?

    Выполните в командная PHP-строке битрикса код (подставив id товара на свой):

    //<?php
    
    $productId = -1;
    
    if (!\Bitrix\Main\Loader::includeModule('catalog')) {
        throw new \Bitrix\Main\SystemException('Ошибка подключения модуля "catalog"');
    }
    
    $addResult = Add2BasketByProductID(
        $productId, 
        1, 
        [
            'LID' => 's1',
        ], 
        []
    );
    
    if (!$addResult) {
    
        $strError = '';
    
        /** @global $APPLICATION $ex */
        if ($ex = $APPLICATION->GetException()) {
            $strError = $ex->GetString();
        }
    
        echo sprintf('Ошибка добавления товара %s в корзину: %s', $productId, $strError);
    
    } else {
    
        echo sprintf('Товар %s успешно добавлен в корзину', $productId);
    
    }


    Если будет ошибка добавления товара, то будет ясно от чего она.
    Ответ написан
    3 комментария
  • Как сделать склонение числительных на php?

    @ynblpb_spb
    дятел php
    function RusEnding($n, $n1, $n2, $n5) {
    		if($n >= 11 and $n <= 19) return $n5;
    		$n = $n % 10;
    		if($n == 1) return $n1;
    		if($n >= 2 and $n <= 4) return $n2;
    		return $n5;
    	}
    echo RusEnding(40, "комментарий", "комментария", "комментариев");
    Ответ написан
    Комментировать
  • Насколько у меня правильный код ООП php?

    @D3lphi
    Здесь плохо всё, к сожалению.

    Начнем с того, что вы неверно наследуете классы. Почему у вас класс, отвечающий за подключение к базе данных является родителем класса, работающим с заказами? Наследование применяется, если можно сказать, что что-то является чем-то. Например, разработчик является работником; компьютер является устройством и тд. Здесь же у вас вообще близко такой логике не получится следовать. Вы должны передавать хотя бы объект для работы с бд через инъекцию, например, в конструктор. В идеале, нужно использовать паттерн репозиторий для работы с базой данных.

    Класс SearchOrder у вас не только выполняет запросы, но еще и работает с данными, хранит состояние этих самых данных, фильтрует данные (strip_tags()). Непорядок. Это все нужно разделять. У вас вообще получаются какие-то богообъекты, которые умеют во все.

    Вы каждый раз повторяете строки с подготовкой запроса, биндингом параметров, отправкой запроса и тд. Не думали, что неплохо бы было написать какую-нибудь обертку и выполнять запросы как-нибудь так:
    $result = $wrapper->select("SELECT * FROM `tablename` WHERE `id` = :id", ['id' => 5]);

    ?

    Вы вызываете connect() в методах. То есть, каждый вызов этого метода будет приводить к установке нового соединения с базой данных, даже если оно уже было установлено. Соединение с базой данных это достаточно дорогостоящая операция.

    Зачем вы используете свойства, если можно обойтись обычными локальными переменными:
    $this->orderID = (int) strip_tags($orderID);
    $this->column = (string) strip_tags($column);
    $this->value = (string) strip_tags($value);

    ?

    Почему вы стриппите тэги у идентификатора? вы настолько не уверены в том, что влетает в функцию:
    strip_tags($orderID);
    ?

    Если вы не используете php 7 и, как следствие, скалярный тайпхинтинг, то должны делать проверки на тип входящего аргумента. Если что-то не так с типом, бросаем исключение (А не приводим его к нужному)! Например:
    if (!is_string($arg)) {
        throw new InvalidArgumentTypeException('string', $arg);
    }

    Это в идеале. Вы не обязаны это делать, конечно же. Но вот такие проверки делают приложение безопаснее. Хотя, опять же, повторюсь, в 2017 нужно начинать новые проекты на php 7.1+.

    Ошибки не нужно выводить в этом классе. Вы должны поймать исключение базы данных, преобразовать ее в исключение предметной области и пробросить его дальше и где-то там, на уровне выше вывести информацию пользователю об ошибке. В mvc системе, например, это делается в контроллере.

    Кроме всего прочего, почитайте про стандарты оформления кода. Вы им не следуете.

    Вам пока рано писать такие велосипеды. Судя по всему, у вас нет опыта вообще. Посмотрите готовые решения: фреймворки, ORM, изучите их, хотя бы поверхностно разберитесь, как оно работает и уже потом пробуйте что-то сделать, исходя из полученных знаний.

    Желаю успехов!
    Ответ написан
    1 комментарий
  • Битрикс: Есть ли аналог ACTIVE_DATE для элементов инфоблоков в d7?

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    Как делать выборку по фильтру по свойству date на новом ядре D7 1C-Битрикс?

    $elements = \Bitrix\Iblock\ElementTable::getList(array(
        "filter" => array(">=ACTIVE_FROM" => "ТЕКУЩЕЕ_ВРЕМЯ", "<=ACTIVE_TO" => "ТЕКУЩЕЕ_ВРЕМЯ")
    ))->fetch();
    Ответ написан
    5 комментариев
  • Перенос товаров между инфоблоками битрикс?

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    При создании нового ИБ в нём указывается уникальный внешний код, который соответствует uid'у из 1С. Что бы при следующем импорте товары писались не в новый ИБ, а в который нужно, возьмите этот внешний код из нового ИБ и перенесите его в ваш ИБ.
    Ответ написан
    Комментировать
  • Почему не работает условие?

    qork
    @qork
    { background: #F00B42 }
    if (filter_var($email, FILTER_VALIDATE_EMAIL)){
       //...
    }
    Ответ написан
    Комментировать
  • А можно перегенерировать все превью с нужным размером на основании большой картинки?

    OlegMifle
    @OlegMifle
    php-программист
    Можно. Нужно только написать функцию для этого, которая пройдётся по всем новостям, заберёт детальную картинку и засунет её в превью. Вообще, хранить обрезанные картинки в превью или детальной плохая практика, лучше уменьшать непосредственно в компоненте, тогда размеры можно будет поменять когда угодно и не придётся возится с переносом картинок.
    Ответ написан
    Комментировать
  • Как при создании таблицы поставить полю значение null?

    gromdron
    @gromdron
    Работаю с Bitrix24
    За создание таблицы в MySQL отвечает метод MysqlCommonConnection::createTable(), где в не зависимости от ситуации включается - NOT NULL
    Ответ написан
    2 комментария
  • Как вывести текст, чтобы потом его изменить сразу на всех страницах?

    riot26
    @riot26
    <:З )~~
    Для этого используют магию баз данных. тык тык тык
    Ответ написан
    Комментировать
  • Можно ли реализовать нечеткий поиск слов на MySQL?

    Stalker_RED
    @Stalker_RED
    Из коробки есть SOUNDEX() (тыц, тыц) но он дружит только с английским, насколько я помню.

    Можно написать хранимую процедуру для работы с расстоянием левенштейна, например.

    Ну а если все по серьезному, то Sphinx.
    Ответ написан
    Комментировать
  • Как правильно сверстать логотип?

    dom1n1k
    @dom1n1k
    Это называется "горе от ума", типичнейший случай. Верстать логотип? У меня цензурных слов не хватит, чтобы описать бессмысленность этого занятия. Делай либо 2 переключаемые растровые картинки, либо одну в SVG.
    Ответ написан
    7 комментариев