• Основной цикл жизни PHP программы?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    klisl.com/memcache.html
    а мне нужен один этот массив для работы со всеми пользователями,за пол учебника я не нашел объяснение.
    Транзакция в БД.
    Ответ написан
    2 комментария
  • Чем куки отличаются от сессии в 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 комментария
  • Стоит ли новичку начинать с фреймворка или лучше учиться на чистом php?

    rpsv
    @rpsv
    делай либо хорошо, либо никак
    Начинайте с фреймворком.
    При чем на старте, лучше написать какое-нибудь простенькое hello world на нескольких фреймворках, и на чем будет вам проще и удобнее, на том и пишите.
    Писать в самом начале с нуля не имеет смысла, т.к. вы еще не знаете как нужно писать правильно, а фреймворки в этом плане следуют паттернам и вам придется писать правильно.
    Конечно можно наговнокодить везде, но фреймворки будут держать вас более менее в рамках)))
    Ответ написан
    21 комментарий
  • Почему в веб разработке питон приравнивают к пхп?

    sim3x
    @sim3x
    Потому что он установлен по-умолчанию, в большей части дистрибутивов
    И он интерпретируемый
    Ответ написан
    6 комментариев
  • Выводит id все продуктов по id категории?

    Melkij
    @Melkij
    PostgreSQL DBA
    надо выбрать все продукты по category_id

    WHERE product_id =

    Ну в самом же деле?

    Сходите отдохните, погулять или поспать.
    Ответ написан
    4 комментария
  • Как правильно написать mysql запрос?

    FitTech
    @FitTech
    Ипользуйте Left Join
    Ответ написан
    Комментировать
  • Как правильно использовать namespace?

    @Camaro67
    Помог? - "Отметить решением"
    Потому что PDO находиться в глобальном пространстве имен, а не в model.

    Соответственно вам нужно либо импортировать в текущее пространство
    use PDO;

    либо обращаться с указанием пространства имен
    \PDO;

    Первый вариант предпочтительней.
    Ответ написан
    Комментировать
  • Как написать запрос на получение N самых населенных городов?

    alex-1917
    @alex-1917
    Если ответ помог, отметь решением
    Во-первых, скопировано с методички не полностью))) Еще должна быть таблица или колонка в таблице, где собственно сами данные о количестве населения)))
    Во-вторых, автор, коли ваше задание звучит так:
    ....Напишите SQL-запрос, который вернет не более.....

    то вот мой ответ и решение вопроса:
    пришлите мне 10000р на яндекс-кошель
    UPD. О, прислал, спасибо! Щас набросаю от руки)))
    Первая часть:
    SELECT * FROM city, user WHERE (тут будет вторая часть кода) LIMIT $n
    Ответ написан
    7 комментариев
  • Поиск в массиве используя массив ключей?

    DevMan
    @DevMan
    $a1 = ['a', 'b', 'c'];
    $a2 = ['a'=>10, 'b'=>20, 'c'=>30,'d' => 40];
    print_r(array_intersect_key($a2, array_flip($a1)));
    https://ideone.com/0M9o2W
    Ответ написан
    4 комментария
  • Где найти продажника на мои услуги?

    @amambaru
    Вы видимо, считаете, что кто-то за 5-10% комиссии будет вам задачи в зубах притаскивать как собака тапочки?
    А 50% - не хотите ли? А то и и вовсе 70%.

    1. Они сами вас найдут.
    Мне регулярно пишут всякие посредники. Разумеется они так не говорят, но это понятно по стилю его беседы - минимум технических деталей, главный вопрос сколько стоит, технические подробности передает с большим запаздыванием (когда спросит у заказчика).

    2. Смысла в этом нет ровным счетом никакого.
    Посреднику крайне важно было бы получать хорошые отзывы от клиентов. То есть с разработчиков требовалось бы много. Для посредника важен оборот - то есть заказов много, но и разработчиков много.
    А это приводит к тому, что разработчика сменить несложно, чуть вы где слабину дали.

    Вас не будут сводить с заказчиком напрямую. Зачем терять контроль, который приведет к потере денег. При этом доносить технические детали исчерпывающе - не получится - банальный эффект "испорченного телефона".

    Риски по некачественной работе, по непонятному занятию перекладываются на того, у кого меньше всего контроля - на исполнителя. То есть вас будут нагибать по деньгам.

    3. TopTopal, EPAM, Luxoft - крупные посредники. Там по другому. Вам будет поприятнее. Себе они конечно тоже оставляют большущий процент. Но первоначальная сумма, выплачиваемая заказчиками столь велика, - что до вас будет неплохо доходить.
    Ответ написан
    5 комментариев
  • Как правильно комментировать код?

    Antiless
    @Antiless
    /** */ - PHPDoc
    // - обычные коментарии

    первое используется для помощи IDE (и себя любимого) и для генерации документации
    второе - по обстоятельствам, когда нужно прокоментировать какую-то неясную часть кода, логики, пояснить свои дейсвия, выбор алгоритма, etc...

    ps
    при этом всем главное не забывать давать внятные имена переменным, методам, объектам и тд
    Ответ написан
    3 комментария
  • Ubuntu или windows как первая операционная система для ребенка 9 лет?

    mrusklon
    @mrusklon
    Не получается? Яростно гугли!
    в 9 лет чел уже сам может выбрать , если хотите его научить компу пусть будет linux , если играм , винда
    Ответ написан
    Комментировать
  • Категоризация данных. Как сделать по уму?

    webinar
    @webinar Куратор тега PHP
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Я так понимаю можно просто делать like запрос по ".jpg" например. А по уму таблица должна быть:
    id | file_name | file_type
    где в file_type уже будут цифры, которые будут означать "mp3","jpeg",'gif' и все остальное
    Ответ написан
    Комментировать
  • Перспективы JQuery?

    tema_sun
    @tema_sun
    Я думаю jquery сейчас находится на плато и будет там довольно долго. Далеко не всем нужен SPA. Пилить какой-нибудь лэндос на реакте ради того, чтобы пару кнопок анимировать - это как по воробьям из пушки стрелять.
    Ответ написан
    Комментировать
  • Как не зарываться?

    arusef
    @arusef
    Novice .NET dev
    Если ваша задача выучить всё на свете, то вы её не сможете реализовать. А если бы у вас был микротаск на Pixi.js , то вы бы освоили лишь нужные вам фрагменты информации. Ну и дальше по нарастающей. Если нет задач - придумайте себе сами, загоритесь какой-нибудь небольшой идеей и не отвлекайтесь на море под боком.
    Во время решения задачи часто будут возникать всякие ad hoc решения. Не стоит их бояться: работающее решение лучше, чем ничего. А рефакторить/переписать всегда можно успеть, когда будет больше опыта.
    Ответ написан
    4 комментария
  • Стоит ли использовать Mongo в связке с Django+Postgre?

    @RidgeA
    Идея так себе.
    Надо взвесить все + и -
    Самый жирный и весомый "-" это то, что либо придется дублировать данные что бы была возможность работать со всеми возможными (в т.ч. теми, которые появятся потом) требованиями по запросу данных из бд, а тут сложность синхронизации и риск рассинхрона. Либо делать joinы в коде, что тот еще костыль.
    Ответ написан
    5 комментариев
  • Как делать бэкапы Postgresql по-простому?

    @deliro
    pg_dump нормально работает
    Ответ написан
    Комментировать
  • Какой JS Фреймворк похож на Yii2?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Yii2 - это php framework. Любой js framework будет на него не похож.
    Ваш вопрос звучит так: "Помогите подобрать микроволновку, похожую на унитаз, я сантехник, что бы проще было с ней разобраться" - без обид, просто чтобы проиллюстрировать алогичность
    Это две совершенно разные вещи. Framework для backend на php и js для frontend. Они не могут быть похожи.

    Довольно хорошо знаю Yii2

    ложное утверждение, учитывая вопрос. Мой совет, закончите изучать то что начали.
    Ответ написан
    5 комментариев
  • Как оценить себя, как разработчика?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Идите устраиваться на работу. Вот на сколько ЗП вас возьмут, столько вы и стоите. Не больше, ни меньше.
    Для более точного результата можно повторить несколько раз подряд.
    Ответ написан
    3 комментария
  • Как запустить WebSocket на PHP?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    Между stream_socket_server и websocket ничего общего.

    socketo.me
    Ответ написан
    Комментировать