• Laravel CRUD генератор?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    Никак не называется, такого функционала «из коробки» нет. Используйте сторонние пакеты типа:
    https://github.com/zofe/rapyd-laravel
    https://github.com/sleeping-owl/admin
    Ответ написан
    Комментировать
  • Как установить Memcache на OpenServer для PHP7.1-64x под Windows 10?

    vityachis
    @vityachis
    Yii2/Laravel Developer
    • Заходи сюда: https://github.com/nono303/PHP7-memcache-dll
    • В твоем случае переходи в: vc14/x64/ts и скачай php-7.1.x_memcache.dll
    • Переименуй его в php_memcache.dll и положи в папку %realprogdir%\modules\php\PHP-7.1-x64\ext
    • Добавь в файл конфигурации ( prntscr.com/k8solk ), в раздел где подключаются все расширения вот это: extension=php_memcache.dll
    • И конечно же включи его в настройках OS: ( prntscr.com/k8spjj )
    Ответ написан
    3 комментария
  • DIV на всю высоту родителя?

    iiil
    @iiil
    Инженер и вэб-дизайнер, рисую.
    .parent {
      position: relative;
    }
    .child {
      position: absolute; 
      left:0;
      right:0;
      top:0;
      bottom:0;
    }
    Ответ написан
    9 комментариев
  • Дает ли строгая типизация в PHP 7 прирост производительности?

    Начал писать ответ комментарий https://toster.ru/answer?answer_id=937197, но ответ получился большим и поэтому решил поместить его отдельно.

    DevMan , я попробую уточнить ваше утверждение, что немного снижает.
    На самом деле, при использовании скалярных тайпхинтов снижается производительность вызова функций, поскольку возникает некий дополнительный оверхед на валидацию аргументов и приведение значений к нужным типам (если не используется strict_types). Но! Так как внутри функции значения аргументов уже приведены к нужным типам, то при использовании аргументов не происходит неявного приведения типа.
    Поясню на синтетическом примере:
    function foo($x) {
        $result = 0;
        for ($i = 0; $i < 100; $i++) {
            $result += $i + $x;
        }
        return $result;
    }


    Если вызвать эту функцию так: "foo('123')", то в таком случае внутри цикла аргумент будет неявно приводится к целому числу 100 раз. Если вызвать функцию так: "foo(123)", то в таком случае аргумент не будет внутри цикла приводится к целому числу. Очевидно, что второй вариант более производительный:
    ~$ time php70 -r 'function foo($x) { $result = 0; for ($i = 0; $i < 10000000; $i++) { $result += $i + $x; } } foo("123");'
    
    real    0m0.860s
    user    0m0.855s
    sys     0m0.005s

    ~$ time php70 -r 'function foo($x) { $result = 0; for ($i = 0; $i < 10000000; $i++) { $result += $i + $x; } } foo(123);'
    
    real    0m0.508s
    user    0m0.500s
    sys     0m0.008s


    В то же самое время, если добавить к аргументу скалярный тайпхинт, то тогда значение аргумента один раз будет приведено к тайпхинту и внутри функции уйдёт весь оверхед связанный с неявным приведением типа:
    ~$ time php70 -r 'function foo(int $x) { $result = 0; for ($i = 0; $i < 10000000; $i++) { $result += $i + $x; } } foo("123");'
    
    real    0m0.502s
    user    0m0.498s
    sys     0m0.003s

    ~$ time php70 -r 'function foo(int $x) { $result = 0; for ($i = 0; $i < 10000000; $i++) { $result += $i + $x; } } foo(123);'
    
    real    0m0.504s
    user    0m0.495s
    sys     0m0.008s


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

    Зато использование строгой типизации не даст запустить функцию в неконтроллируемом состоянии: когда функция ожидает на вход целое число, а по какой-то причине подсунули массив:
    $var = $_GET['foo'];
    bar($var);
    , для get-параметра foo=123 вызов будет корректным, а для foo[]=123 вызов функции приведёт к TypeError; для foo=abc тоже будет TypeError. Разумеется, этот пример сильно надуман и тут нужно использовать "нормальный" валидатор.
    Ответ написан
    1 комментарий
  • PhpStorm + git 'Contents are identical' почему?

    reffy
    @reffy Автор вопроса
    Я молодец.
    Сижу на Linux. Проблема была в том, что git пытался сохранить права доступа к файлам. Решил проблему изменив в файле .git/config:
    filemode = false
    На всякий ещё поставил:
    git config --global core.filemode false
    Ответ написан
    Комментировать
  • Bootstrap modal почему не скролится?

    Valonix
    @Valonix Автор вопроса
    Back end / Front end developer
    Убрал класс fade и всё ок. Странно...
    Ответ написан
    Комментировать