• Как организовать совместную работу верстальщика и программиста (Pug + Laravel)?

    zavoloklom
    @zavoloklom
    Fullstack разработчик
    Во-первых имеет смысл делать это все через git.

    А дальше либо объяснять верстальщику blade (что лучше, так сейчас у вас фактически 2 шаблонизатора и одна и та же работа выполняется два раза), либо выстроить какую-то такую систему:
    - при изменении верстки верстальщик меняет pug/html и делает pull request
    - программист ревьюит изменения и вносит соотвтствующие правки в blade шаблон
    Ответ написан
    Комментировать
  • Как обстоят дела во flutter/react native с вызовом системных функций платформы?

    @KnightForce
    Нужно смотреть какие либы есть.
    Если чего-то нет - придется писать на нативе. У Flutter с этим проще.
    Пара строк в Dart, пара строк в нативе - и связь готова, дальше логику писать.
    Ответ написан
    Комментировать
  • Как обстоят дела во flutter/react native с вызовом системных функций платформы?

    Lucian
    @Lucian
    https://t.me/MakeFreelance
    Отталкивайтесь от существующих задач и решайте проблемы по мере поступления, не нужно пытаться решать то, что пока не существует.
    Ответ написан
    Комментировать
  • Как положить $HOME/.composer/vendor/bin в $PATH в линукс минте?

    @dpvpro
    PATH=$PATH":$HOME/.composer/vendor/bin"
    Ответ написан
    Комментировать
  • В чём разница между методами записи .ISO на USB через UltraISO и через dd?

    Zoominger
    @Zoominger
    System Integrator
    UltraISO дописывает свой загрузчик, можете посмотреть, (не помню точно где именно) в одном из пунктов меню есть пункт "Загрузочный CD/DVD" и там можно создать пустой загрузочный диск.
    DD же пишет, "как есть".
    Ответ написан
    Комментировать
  • Чем куки отличаются от сессии в PHP?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Нууу давайте разбираться.

    Для начала почитайте про HTTP на той же вики. Досканально знать не нужно, но стоит минимально понимать структуру запросов/ответов, понимать что у запроса и ответа есть заголовки и тело (тела может и не быть, зависит от типа запроса/ответа).

    Так вот. Куки. Куки живут на стороне браузера. Они передаются HTTP заголовком на каждый запрос на сервер (даже если вы за картинками полезли). Есть просто куки, есть http-only куки. Куки могут быть разграничены по хосту и пути. Все это дает нам гибкость и помогает с секьюрностью. В PHP содержимое $_COOKIE предоставляет нам SAPI. Когда PHP получает на обработку запрос, SAPI используемое (php-fpm, cgi, mod_php имеют свои реализации SAPI) в данный момент берет заголовки и тело запроса, парсит их и заполняет все эти суперглобальные массивы типа $_SERVER, $_GET и в том числе и $_COOKIE. Все что прислал нам клиент (что-то что делает запросы это клиент, что-то что их обрабатывает - сервер), а куки шлет нам браузер только те что можно исходя из того куда шлется запрос. Устанавливаются куки заголовком Set-Cookie в ответе, то есть тут больше нужно читать в принципе про HTTP а не про PHP. PHP просто позволяет вам работать с этим добром. Вы можете сэтить куки напрямую работая с заголовками ответа при помощи функции header. Более того, если выставить время жизни куки в 0, то как раз таки они а не сессия будет сбрасываться при закрытии браузера так как тот будет забывать все такие куки.

    Вот... сессии... В PHP сессия обычно это файл. Просто какой-то файл с рандомным именем. Если скажем в php.ini указано session.autostart или делается вызов session_start то создается файл под сессию пользователя (можно переместить в рэдис или мемкэш, свое хранилище и т.д в зависимости от нужд. Так же данные можно шифровать, что по умолчанию и происходит). Этот файл имеет ID, просто какая-то рандомная строка. И если при обработке запроса не нашлась сессия с предыдущего запроса - создается новая.

    И вот мы подошли к самому интересному - как PHP связывает сессию с предыдущего запроса с текущей. И тут все довольно просто - куки. Когда пользователю присваивается сессия, автоматически сэтится http-only (что бы нехорошие люди не могли из js увести нашу сессию) кука, в которую записан идентификатор сессии. В дебагере браузера можете посмотреть есть ли у вас кука PHPSESSID (название можно менять в настройках, да и вообще сессии можно не только через куки связывать, но это уже загоны по секьюрности) когда будете эксперементировать с сессиями.

    Когда запрос обрабатывается SAPI, при наличии session.autostart, перед тем как начинать создавать новую сессию, пых все же смотрит а есть ли у нас кука с идентификатором сессии, проверяет есть ли у него такая, и если есть успокаивается и не создает новую. Поскольку сессия привязывается через куки, то можно выставить время жизни этой самой куки (в php.ini) и таким образом регулировать время жизни сессии.

    Вот... когда использовать куки а когда сессии? Желательно понимать, что чем больше данных в куках (а у них есть лимит к слову) - тем больше данных мы передаем на каждый запрос. То есть это не круто когда что бы получить 1 килобайт данных мы должны в заголовках передать пару килобайт кук. Люди, повернутые на оптимизации, даже картинки хранят на отдельных cookie-less доменах что бы уменьшить количество трафика и пакетов (обычно простенький HTTP запрос влазит в размеры одного TCP пакета). Если вам нужно работать с этими данными из JS на любой странице, например локаль выбранноую пользователем для того что бы применять переводы еще и в JS, то стоит использовать куки. Для всео остального лучше конечно же использовать сессии. Во всяком случае на начальных этапах когда что-то сильно сложное вам делать не придется.
    Ответ написан
    2 комментария
  • Как в laravel 5 сделать 404 страницу?

    @Kraky
    Вы можете переопределить метод render в app/Exceptions/Handler.php таким образом, чтобы он возвращал только вьюхи с определенными ошибками.
    Ответ написан
    6 комментариев