• Какой php фреймворк наиболее прост в освоении?

    toxicmt
    @toxicmt
    CTO at hexlet.io
    Самыми быстрыми и максимально простыми считаются микрофреймворки, которые берут начало от рубишной синатры (www.sinatrarb.com/). Они практически не отличаются друг от друга, знаете один знаете все другие на всех других языках). В php популярны два www.slimframework.com и lumen.laravel.com/.

    Как минимум с них стоит начинать изучение если вы до этого с фреймворками не работали.
    Ответ написан
    1 комментарий
  • Как подключить к Symfony 2 стороннюю библиотеку?

    @jaxel
    А зачем такие сложности ради одного файла с классом? Не вижу смысла заливать на packagist чужую библиотеку. Просто положите его в свой бандл, пропишите ему неймспейсы, сделайте по необходимости сервис и всё.
    Ответ написан
    3 комментария
  • Существует ли алгоритм поиска кратчайшего пути в графе с указанием нескольких точек?

    cjey
    @cjey
    С вашими ограничениями подойдет решение полным перебором.

    Сначала алгоритмом Флойда ищем все кратчайшие расстояния между выбранными вершинами.

    Потом перебираем все последовательности обхода и считаем минимум. Таких последовательность будет 10! = 3,6 * 10^6 даже на самом простом компьютере должно перебираться не более секунды.
    Ответ написан
    1 комментарий
  • Как настроить права доступа к файлам для перезаписи php-скриптом?

    DevMan
    @DevMan
    а зачем вам в этом деле апач и юзер www-data?
    делаете простой консольный скрипт и гоняете его по крону от своего юзера.
    Ответ написан
  • Как работает замыкание вообще и в JavaScript, в частности?

    danielnewman
    @danielnewman Автор вопроса
    Front-end
    Упиваюсь Флэнигоном "Полное руководство". Там есть хорошее объяснение и краткая врезка. Полное описание вышлю по просьбе в личку, а врезку - врезку сюда выложу.

    Реализация замыканий

    Понять суть замыканий будет совсем несложно, если усвоить правило лек-
    сической области видимости: во время выполнения функции используется
    цепочка областей видимости, которая действовала в момент ее определе-
    ния. Однако некоторые программисты испытывают сложности при освое-
    нии замыканий, потому что не до конца понимают особенности реализа-
    ции. Известно, думают они, что локальные переменные, объявленные во
    внешней функции, прекращают свое существование после выхода из внеш-
    ней функции, но тогда как вложенная функция может использовать цепоч-
    ку областей видимости, которая больше не существует? Если вы задавали
    себе такой вопрос, значит, у вас наверняка есть опыт работы с низкоуров-
    невыми языками программирования, такими как C, и аппаратными архи-
    тектурами, использующими стек: если локальные переменные размещать
    на стеке, они действительно прекращают свое существование после завер-
    шения функции.
    Но вспомните определение цепочки областей видимости из раздела 3.10.3.
    Там она описывалась как список объектов, а не стек. Каждый раз, когда
    интерпретатор JavaScript вызывает функцию, он создает новый объект для
    хранения локальных переменных этой функции, и этот объект добавляет-
    ся в цепочку областей видимости. Когда функция возвращает управление,
    этот объект удаляется из цепочки. Если в программе нет вложенных функ-
    ций и нет ссылок на этот объект, он будет утилизирован сборщиком мусо-
    ра. Если в программе имеются вложенные функции, тогда каждая из этих
    функций будет владеть ссылкой на свою цепочку областей видимости, а це-
    почка будет ссылаться на объекты с локальными переменными. Если объ-
    екты вложенных функций существуют только в пределах своих внешних
    функций, они сами будут утилизированы сборщиком мусора, а вместе
    с ними будут утилизированы и объекты с локальными переменными, на
    которые они ссылались. Но если функция определяет вложенную функ-
    цию и возвращает ее или сохраняет в свойстве какого-либо объекта, то об-
    разуется внешняя ссылка на вложенную функцию. Такой объект вложен-
    ной функции не будет утилизирован сборщиком мусора, и точно так же не
    будет утилизирован объект с локальными переменными, на который она
    ссылается.
    Ответ написан
    Комментировать
  • Варианты свободных логинов при регистрации. Какой алгоритм?

    @vagrand
    1. Мне кажется, что этот пункт будет при большой базе довольно затратным, особенно если искать так: WHERE login LIKE "%dima%".

    Как по мне лучше сперва создать список предложений, а потом проверить какие из них есть в базе: WHERE login in ('...', '...', ...)
    Ответ написан
    1 комментарий
  • Генерация всех возможных вариантов написания

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Стандартная комбинаторная задача на перестановки, решается как рекурсивными, так и нерекурсивными алгоритмами, посмотреть можно, например, здесь
    Вот реализация одного из алгоритмов на php:
    $arr = array('word1', 'word2', 'word3');
    
    $n = count($arr);
    for ($i = 1; $i <= $n; $i++) {
        $pos[$i] = $i-1;
        $c[$i] = 1;
        $pr[$i] = 1;
    }
    $c[$n] = 0;
    
    foreach($pos as $p)
        echo $arr[$p],' ';
    echo "<br>";
    
    $i = 1;
    while ($i < $n) {
        $i = 1;
        $x = 0;
        while ($c[$i] == $n-$i+1) {
            $pr[$i] = 1-$pr[$i];
            $c[$i] = 1;
            $x += $pr[$i];
            $i++;
        }
        if ($i < $n) {
            $k = $pr[$i] ? $c[$i]+$x : $n-$i+1-$c[$i]+$x;
            $t = $pos[$k];
            $pos[$k] = $pos[$k+1];
            $pos[$k+1] = $t;
            foreach($pos as $p)
                echo $arr[$p],' ';
            echo "<br>";
            $c[$i]++;
        }
    }

    Результат:
    word1 word2 word3
    word2 word1 word3
    word2 word3 word1
    word3 word2 word1
    word3 word1 word2
    word1 word3 word2
    Ответ написан
    Комментировать
  • Как написать скрипт оповещения смс-сообщением о новом видео на YouTube?

    Нашел видео -> Запиши в файл -> Следующий вызов скрипта -> Проверка совпадает ли последнее видео со временем из файла, если совпадает, то ничего не делаем.

    else die;
    curl_close($ch);

    И кто Вас научил убивать скрипт, до освобождения ресурсов?
    Ответ написан
    3 комментария