Задать вопрос
  • Как выводить только уникальные строки массива?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    $ids = array_unique(array_column($data, 'ID']);

    Если нужно отфильтровать коллекцию

    $data = array_values(array_reduce($data, function ($result, $item) {
        $result[$item['ID']] = $item;
        return $result;
    }, []));
    Ответ написан
    6 комментариев
  • Angularjs как правильнее сделать загрузочный экран?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ничего не понял... Если под загрузочным экраном вы подразумеваете спиннер, можно сделать его глобально на ивентах (например показывать спиннер по $stateChangeStart и прятать по $stateChangeSuccess или $stateChangeError. Так же такие вещи стоит делать в ресолверах для контроллеров. Они запускаются как раз таки между $staeChangeStart и Success и возвращают промисы. Вы можете просто вклиниться в цепочку промисов и отловить что произошло что-то.

    Управление спиннером через сервисы, да, которые управляют директивой, $rootScope тоже может быть замешан там.

    Можно по всякому сделать собственно...
    Ответ написан
    8 комментариев
  • Когда осуществить переход с C++ на Objective-C?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Можно же сразу на Swift-е...

    На самом деле как хотите. Углубленное знание C++ не поможет вам писать на Objective-C (ну как, если вы будете еще паралельно на плюсах писать какие-то библиотеки то да, поможет). Знания Си будут полезны (а точнее понимание архитектуры ЭВМ и того как работают современные процессоры в том числе и ARM-ы) но как показывает практика - не обязательны.
    Ответ написан
    Комментировать
  • JSON Schema. Как сделать ссылку на другое свойство?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Какое отношение это имеет к схеме? Это валидация данных.
    Ответ написан
  • Принадлежность времени к текущему календарному дню?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    $time = '22:33';
    $now = new \DateTime();
    $time = new \DateTime(sprintf('%s %s:00', $now->format('Y-m-d'), $time));
    
    $isTomorrow = $now->getTimestamp() > $time->getTimestamp();
    Ответ написан
    Комментировать
  • Объясните пожалуйста, что за ошибка в функции?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    При выполнении mysqli_query произошла ошибка. $res содержит не курсор на результат запроса а false.
    Ответ написан
  • Как разобраться в философии symfony2?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Бандлы - самодостаточные модули инкапсулирующие какие-то сервисы и прочую штуку. По сути это расширения для DependencyInjection, если очень грубо.

    Модели - это те самые Entity грубо-говоря. Вообще есть такое понятие как Доменная-модель. Это просто структура данных, сущности которыми оперирует бизнес логика. Последняя должна быть инкапсулирована в сервисы (всякие UserManager, PostManager и т.д.). В Yii модели смешаны с сервисным слоем и по этому у вас получается путаница.

    Что до кода... есть распространенный подход иметь свой AppBundle и фигачить все в нем. Есть так же рекомендуемый подход - не использовать бандлы вообще. То есть.... бандлы должны быть самодостаточны и их основное предназначение - реюз логики между проектами. Бизнес-логику приложения реюзать у вас не выйдет, поэтому рекомендуется просто писать код и регистрировать его в app/Resources/config/services.yml или что-то в этом духе, как именно решать вам. Профит в том что вы на замарачиваетесь всей этой фигней с бандлами и у вас возникает меньше вопросов по структуре. А если же вы захотели что-то вынести в бандл - например сервисы для авторизации которые реально можно реюзать, то вам никто не помешает это сделать. В итоге у вас будет структура проекта приблизительно такая:

    | - app
    | - var
    | - src
      | - Controller
      | - Entity
      | - Bundle/
        | - MyAuthBundle/
    | - web


    ну как-то так. Как не странно такой подход не сильно распространен в Symfony-сообществе хотя его рекомендуют в недавно вышедшем бест практис буке и в принципе эта струтктура более чем логична.

    Что до виджетов, в Symfony2 есть HMVC. То есть вы можете сделать эдакие под-запросы на другие контроллеры внутри вьюшек. Можно скажем все "виджеты" инкапсулировать как отдельный контроллер с методами и дергать их из вьюшек.
    <div id="sidebar">
        {{ render(controller('AcmeArticleBundle:Article:recentArticles', {
            'max': 3
        })) }}
    </div>


    Это дает больше гибкости, внутри каждого контроллера можно дергать другие контроллеры. Можно прикрутить кеширование на уровне обработки запросов (кешировать скажем все подзапросы по каким-то критериям) и т.д.
    Ответ написан
    8 комментариев
  • Стоит ли продолжать?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ну работать есть над чем... выравнивание элементов относительно друг-друга, отступы, типографика, подбор палитры и т.д. но если это ваши первые работы такой направленности то не сдавайтесь и продолжайте. Это все приходит с опытом и не гнушайтесь подсматривать как это все реализуют гуру, заимствовать идеи и т.д.
    Ответ написан
    Комментировать
  • Как получить значение родительского элемента массива php зная одно из значений его дочернего массива?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    function array_some(array $collection, $search) {
        $filtered = array_filter($collection, $search);
    
        return empty($filtered) ? null : $filtered[0];
    }
    
    function find_contact(array $collection, $phone) {
       return array_some($collection,  function ($contact) use ($phone) {
         return null !== array_some($contact['custom_fields'], function($field) use ($phone) {
            return $field['code'] === 'PHONE' 
                && null !== some($field['values'], function ($value) use ($phone) {
                       return $value['value'] === $phone;
                 });
      });
    });
    }
    
    $response = json_decode($jsonResponse, true);
    $contact = findContact($response['response'], '+3 (333) 333-33-33');


    или же втупую циклом.
    Ответ написан
  • C# to Java или Чего стоит выучить новый язык, зная прежний?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ну выучить Java хорошо зная c# не сильно сложно.

    Что бы стать крутым .NET-чиком нужно (да и Java-разработчиком и вообще) стоит:
    - понимать как работает CLI (или JVM, короче понимать что такое рантайм и как он устроен).
    - понимать как работает компьютер (можно почитать например архитектуру ЭВМ Таненбаума). Мол понимать что есть еще такие волшебные вещи как кеши процессора, реордер буферы, векторные инструкции, предсказание переходов, как работают потоки и т.д. Вы должны понимать что все это

    Собственно последний пункт говорит о том что вы можете писать на Си. Так сказать практическое применение знаний. Пописать потоко-безопасные lock-free структурки например (это у вас не сразу будет получаться). Ну как-то так...
    Ответ написан
    Комментировать
  • DataMapper, Identity Map, связанные объекты, как правильно построить архитектуру?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Мне кажется вам стоит пересмотреть то, как вы создаете объекты. В частности вам нужно хранить какие-то методанные как что собирать и не делать мэппер для каждого объекта а просто что бы на основе метаданных генерились оные одним мэппером который просто умеет разруливать связи.
    Ответ написан
  • Как хранить и искать цвет в MySQL?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Если вам нужно искать по оттенку логичнее было бы конвертировать RGB в HSV (Hue, Saturation, Value) и искать по компоненте HUE (оттенок). И никакой математики в запросах, индексы, быстро и просто. Вообще RGB плохо подходит для задачи поиска цвета. Его хорошо понимает видиокарта и монитор. Принтеры вот тоже не любят RGB, им больше нравится cmyk.

    И хоть я и против RGB для такой задачи и вообще для хранения оного для выборов...
    3 столбца - плохая идея (ИМХО)

    3 колонки TINYINT и все unsigned. Это 3ubyte. Три значение [0-255]. То что нужно.
    Ответ написан
  • С чего начать реализацию веб-сервиса ?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Просто идея, это фигня. Без какой-то стратегии, бизнес-плана, прототипа это все пустое. Так что да, ищите "лоха" или человека которому так же как и вам понравится идея.

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

    Так же прикиньте... Скажем, проект займет один человеко-год разработки до первого релиза (~2000 часов). Умножаем эту сферическую оценку на рейт нормального разработчика (не ниже $10/час). Добавим ту сумму, которая уйдет на маркетинг, а эта сумма значительно привысит ту, которая уйдет на разработку, возможно на порядки).

    Вот... все очень плохо и жизнь боль.
    Ответ написан
    Комментировать
  • Что делать, когда Gruntfile.js становится слишком большим?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Переходить на gulp. Нууу или пытаться разделить Gruntfile на несколько файлов. CommonJS и все такое...

    p.s. Я серьезно, если у вас такой жирный gruntfile то возможно вам больше подойдет gulp. Как бонус - он быстрее и нет необходимости создавать временные файлы (собственно по этому и быстрее).
    Ответ написан
    1 комментарий
  • Как веб-страница может узнать порт WebSocket-сервера, поднятого в Heroku?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Все просто, пусть nginx проксирует все websockets запросы с 80-ого порта на порт вашего приложения. Забрать значение из ENV вы можете. Так же вы можете сделать запрос на сервер что бы забрать порт.

    В примере же порт не указывается потому что на этом же порту работает и приложение. Оно просто берет текущий хост (доменное имя + порт).
    Ответ написан
    5 комментариев
  • Существует ли специальный пакетный менеджер специально для шрифтов? Какой аналог есть у composer для шрифтов?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Знаю про bower, но он не заточен под шрифты

    Люди jQuery через composer ставят, а вы тут...

    Требуйте шрифты у клиента или пусть он у дизайнера требует. Помните об авторском праве и все такое. Так же можете просто подобрать похожий шрифт в google web fonts library
    Ответ написан
    Комментировать
  • Как настроить DNS при работе с virtualbox?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ну как-то так же.
    Ответ написан
    Комментировать
  • Не могу разобраться с active record. Как получить данные из двух таблиц?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    В базе данных у вас заданы связи между таблицами (внешние ключи или foreign keys). Их может и не быть но предположим что они есть. Тогда логично предположить, раз наши объекты в рамках ActiveRecord имеют ту же структуру, у них так же есть ссылки на другие объекты. Обычно их описывают вручную или хотя бы говорят какое поле на какое ссылается.

    Например в случае статей у объекта Article есть поле user (или author, как кто назовет). При обращении к этому полю AR вызывает запрос в базу данных с where id = user_id, получае результат и возвращает объект User связанный с нашим Article-ом.

    Так же данные уже могли быть получены, скажем если выборка статей была сделана с JOIN-ами. Тогда при обращении к полю users оно просто возьмет данные и вернет объект.

    У User же будет пропертя articles и при обращении к ней нам вернется массив всех статей. По той же схеме, с отдельным запросом если данных еще нет.

    В случае с например тегами, у нас прописано что с объектом Tag отношение многие-ко-многим. То есть используется промежуточная таблица. В рамках иерархии объектов эта промежуточная таблица игнорируется, но суть все так же - обращаемся к ствойству - отдаем связанные объекты.
    Ответ написан
    2 комментария
  • Почему psr-1 говорит использовать такую конструкцию?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Потому что с <? много проблем. Рендринг XML документов (да, бывает и такое), еще какие-нибудь вещи, конфликты и т.д. По этой причине по умолчанию оно выключено в php.ini. И по этой причине в стандарте прописано вообще не использовать оный тег.
    Ответ написан
    Комментировать