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

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Вы определитесь, вам комьюнити нужно или перевод документации?

    https://connect.sensiolabs.com/club/ru - вот например.
    Ответ написан
  • Как перебрать множество массивов?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Как-то так:
    /**
     * Generate all the possible combinations among a set of nested arrays.
     * @author fabiocicerchia
     * @homepage https://gist.github.com/fabiocicerchia/4556892
     *
     * @param array $data  The entrypoint array container.
     * @param array $all   The final container (used internally).
     * @param array $group The sub container (used internally).
     * @param mixed $val   The value to append (used internally).
     * @param int   $i     The key index (used internally).
     */
    function generate_combinations(array $data, array &$all = array(), array $group = array(), $value = null, $i = 0)
    {
        $keys = array_keys($data);
        if (isset($value) === true) {
            array_push($group, $value);
        }
    
        if ($i >= count($data)) {
            array_push($all, $group);
        } else {
            $currentKey     = $keys[$i];
            $currentElement = $data[$currentKey];
            foreach ($currentElement as $val) {
                generate_combinations($data, $all, $group, $val, $i + 1);
            }
        }
    
        return $all;
    }
    
    $params = array(
    	'param1' => array(1,2,3),
    	'param2' => array(1,2,3),
    	'param3' => array(1,2,3)
    );
    
    foreach (array_values(generate_combinations($params)) as $args) {
        $object = new Object($args[0], $args[1], $args[2]);
    }


    Но лучше реализовать рекурсивный итератор.
    Ответ написан
    2 комментария
  • Как в AngularJS менять title и мета теги в head?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    ng-bind и rootScope.
    ну и да, вообще лучше такие вещи во вьюшках делать а не в контроллере. Типа так:
    <!-- directive:page-title post.title + " | Some other string" -->
    Ответ написан
  • Как передать ссылку на переменную в функцию в Си (без плюсов)?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    void square(int x, int *result) {
        *result = x * x;
    }
    
    int main() {
        int r;
        square(10, &r);
    
        return 0;
    }
    Ответ написан
  • Как быстро отрисовать большое количество точек/линий?

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

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Если я правильно понимаю, то там просто отправляется периодически письмо пользователю с его текущей задачей... да и не суть. Пользователь отвечает на письмо, сервер получает его ответ, парсит и сохраняет. Так?

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

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Правильно, нафиг надо использовать md5 для хэширования паролей. Только sha512 + несколько циклов хеширования с солью.

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

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Возьмите какой готовый компонент для маршрутизации запросов и в бой. Например такой. Вообще куча их.
    Ответ написан
    4 комментария
  • На что "опираться" при выборке элемента в JS?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    А можно так:
    <button class="xxx__action" data-action="close">action</button>
    <button class="xxx__action" data-close="">action</button>

    $('[data-action=close]').on('click', ...);
    $('[data-close]').on('click', ...);


    И это будет немного кошернее.
    Ответ написан
    8 комментариев
  • А вы знаете стандартные структуры и алгоритмы?

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

    Вообще все упирается в знание сложности алгоритмов, из этого вытекает что вы должны знать хотя бы примерно как эти алгоритмы работают. Скажем вы должны знать что при таком-то случае, с которым у вас чаще сталкивается программа, алгоритм А имеет сложность O(N) а другой при таком же случае всего то O(logN).... при том что в большинстве других задач тот же самый алгоритм A c определенными допущениями может иметь сложность O(1).

    Алгоритмы базовые обычно связаны со структурами данных (вставка/выборка из хэш таблицы, вставка/выборка в деревья и т.д.) На алгоритмах сортировки просто удобнее объяснять все это дело и учить людей разрабатывать алгоритмы, определять их сложность и т.д.

    Сейчас вот собираюсь перечитать Кромена, "Алгоритмы: построение и анализ". Ибо поймал себя на мысли что я уже плохо помню все это дело.
    Ответ написан
    6 комментариев
  • Какие существуют направления в программировании?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    embedded - это микроконтроллеры, промышленное оборудывание.... такие вот штуки. Смартфоны давно уже не входят в эту категорию. Тут нужно хорошое понимание того как работает железо, Си, ассемблер и все такое прочее. Хороших специалистов в этой области выпускается с каждым годом все меньше и меньше

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

    Шифрование, криптография... рано или поздно в любом направлении сталкнетесь хотя бы с базовыми вещами. Как минимум будете слышать всякие штуки типа SHA12, RSA, SSL и т.д. с чем бы вы в итоге не работали (разве что в embedded меньше этого, хотя я не могу точно сказать).

    Что до функционального программирования... это парадигма программирования, на ряду с процедурным и объектно-ориентированным. Это как бы не привязано к направлению разработки. Более того, масса языков совмещают в себе все эти парадигмы или дают возможность писать в том стиле, в котором вы хотите (например PHP, Haskel, Pyhon, Java с 8-ой версии вроде как лямбда-вычисления поддерживает)...

    Короче... просто занимайтесь тем, что вам интересно. Языки программирования, технологии и т.д. выбираются исходя из задачи, которая кажется вам интересной. Да и перейти из одной области в другую относительно непложно, особенно когда вы еще не обременены заботой о семье и детях.

    Ну а хороший специалисты будут востребованы всегда.
    Ответ написан
    4 комментария
  • Как сделать border-radius наоборот?

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

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    preg_match('/[^\d](\d+\-\d+)[^\d]/', $str, $matches);
    $part = $matches[1];
    Ответ написан
    Комментировать
  • Как найти часть массива в массивах?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    $search = array_filter($arr, function (array $item) use ($needle) {
        foreach($needle as $key => $value) {
            if (!isset($item[$key]) || $item[$key] !== $value) {
                 return false;
            }
        }
    
        return true;
    }


    И еще вариантик....

    $search = array_filter($arr, function (array $item) use ($needle) {
         return $needle == array_intersect_key($item, $needle);
    }


    и еще один... если вам надо индекс найти... это же и для in_array будет работать если вам нужно только проверить.
    $search = array_search($needle, array_map(function (array $item) use ($needle) {
        return array_intersect_keys($item, $needle);
    }, $arr, false),


    Обновил код, перепутал местами аргументы для array_intersect_key.

    Добавляю быструю реализацию. Быстрее выше перечисленных (кроме первой) раз в 6.
    $search = [];
    foreach ($arr as $item) {
        if ($needle == array_intersect_key($item, $needle)) {
            $search[] = $item;
        }
    }
    Ответ написан
    9 комментариев
  • Как работать в связке Yii2 и angular.js?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Я думаю вам будет проще организовать просто два проекта. Один на Yii2, где будет просто REST Api и возможн админка, и другой - приложение на angular. Два разных приложения, которые ничего особо не знают друг о друге, их связывает лишь HTTP и REST.

    Вообще плюс подобных подходов в том, что разные методы можно делать на разных фреймворках, языках программирования, разносить на разные сервера... короче кучи всего в угоду производительности делать. Да и так проще организовать проект будет вам.
    Ответ написан
    4 комментария
  • Как добавить символ в текст после определенного кол-ва символов?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    substr_replace('324298', '/', 3, 0); // 324/298

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

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

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Укажите на какой ОС разворачиваете, версия PHP, есть ли opcode кешеры и т.д. собран ли оптимизированный загрузчик, возможно какой-то выйгрыш можно получить за счет более качественной компиляции контейнера зависимостей... Можно так же попробовать запустить на HHVM.

    И что показывает в dev окружении профайлер?
    Ответ написан
    Комментировать
  • Как построить запрос на выборку с нулем?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Проблема в двух строчках:
    $status = $inCore->request('status', 'int');
    если я правильно понимаю, вы тут получаете данные из запроса и приводите их к нужному типу (int). В этом случае null приведется к 0. Если есть вариант выставить значение по умолчанию (-1) или еще лучше проверить наличие такого ключа.... то-то типа $inCore->request->has('status'); Решить проблему в этой строке будет вернее всего. Пусть оно уж null и возвращает коль уж нету данных и пусть не выдумывает с кастами типов.

    if (isset($status) && !empty($status)) { // Проблемный участок

    тут нужно убрать !empty и заменить его на что-то типа $status !== null/is_null($status) ибо empty на ноль тоже среагирует как на пустоту.
    Ответ написан
    1 комментарий
  • Не запускается apache из Денвера - закрыт 80й порт?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    habrahabr.ru/post/145189

    А вообще - выкиньте вы этот denver. Возьмите хотя бы open server а еще лучше - поставьте вагрант, или просто держите виртуалочки с дебианчиком и там пусть все крутится а вы из винды работайте. А еще лучше - го на линукс (хотя бы в виртуалке).

    Если вам вообще для "поучиться", то достаточно просто PHP, который с версии 5,4 имеет свой встроенный web сервер. Для побаловаться и для разработки его более чем хватает.
    Ответ написан