Задать вопрос
  • Как повысить уровень создания проектов на чистом php?

    kawabanga
    @kawabanga
    Тем не менее сейчас я столкнулся с тем, что на собеседованиях начинают спрашивать что серьезного доводилось делать на чистом php - без фреймворков и мои ответы на их вопросы касательно парсеров, скиптов для обмена данными остаются неубедительными. Даже дальше кадровиков иногда дело не уходит.


    Вы неубедительны. Парировать надо. Ну найдите разраба, который в угоду своему ЭГО, будет писать проект на чистом php, который в будущем сможет поддерживать только он.

    Еще спрашивюат какие патерные проектирования используешь, придерживаешься ли принципов Solid?

    Вы недостаточно сильны в этом вопросе, SOLID опять же не про фреймворки.

    А сейчас я не только ради прохождения собеседований, но и ради повышения скилла хотел бы углублённо погрузиться в написание кода без фреймворков. Но как к этому подойти? Не писать .же бложег или интернет-магазин на чистом php?

    Зачем вам это? Изучать как работает PHP и смежные вещи - одно. Писать пет проекты чтобы закинуть их в ящик - другое.

    Может начать с изучения PSR

    Нужно, сразу после того, как вы начнете понимать php.

    от него начать писат простой psr фреймворк как это делал Дмитрий Елисеев?

    А что это вам даст?

    Или просто взять симфони и начать писать на ней чтоб понять суть вещей глубже и потом козырять своими скиллами на собеседованиях, что, мол, ,я тут на Симфони пишу, а вы мне тут вопросы для школьников задаёте?

    А при чем тут симфони и вопросы школьников?

    Короче расскажите мне про роудмеп погружения в php. Теорию я и так знаю - книги по php читал.

    Сначала начните с того, как искать в гугле. Полезный навык, помогает.
    https://github.com/thecodeholic/php-developer-roadmap
    Ответ написан
    3 комментария
  • Как получить максимальное значение ключа в JSON?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Развернуть JSON в таблицу через JSON_TABLE().
    Потом обнаружить, что запрос работает медленно, найти того, кто записал активно используемые поля в JSON и заставить его переделать на нормальную таблицу.
    Ответ написан
    4 комментария
  • Почему запрос возвращает ошибку 500?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Как только люди не извращаются, лишь бы SQL не изучать. А ведь достаточно сделать уникальный ключ по `word` и использовать запрос INSERT IGNORE.
    Перед подключением к базе разрешить выброс исключений, вместо ручной проверки ошибок:
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

    В начале скрипта включить отображение ошибок PHP:
    ini_set('error_reporting', E_ALL);
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);

    Ну и использовать подготовленные выражения. Готовить один раз перед циклом, а в цикле только вызывать с разными значениями параметров.
    Ответ написан
    2 комментария
  • Фильтрация по строковому значению?

    Newto
    @Newto
    $a = ["group.phantom", "group.god", "group.imperator", "group.general", "group.hermit", "group.soldier"];
    
    
    $b = [
       [
          "permission" => "group.default" 
       ],
       [
          "permission" => "group.phantom" 
       ], 
       [
          "permission" => "group.hermit" 
       ],
       [
          "permission" => "group.imperator"
       ],
       [
          "permission" => "group.god" 
       ],
    ];
    
    
    function getItem($a, $b) {
    
    	foreach ($a as $item) {
    		
    		foreach ($b as $data_arr => $data) {
    			
    			if ($item == $data['permission'])  return $item;
    		}
    	}
    }
    
    print getItem($a, $b);
    Ответ написан
    Комментировать
  • Ошибка Allowed memory size of 4294967296 bytes exhausted (tried to allocate 81920 bytes)?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Исправить скрипт, чтобы ему для работы не требовалось 4 Gb оперативки.
    Ответ написан
    1 комментарий
  • Есть ли возможность в mysql вывести инфу из присоединенной таблицы в виде вложенного массива?

    rozhnev
    @rozhnev Куратор тега MySQL
    Fullstack programmer, DBA, медленно, дорого
    Вы можете использовать JSON_ARRAYAGG и JSON_OBJECT :

    SELECT cat.id, cat.name, JSON_ARRAYAGG(
      JSON_OBJECT('pro_name',pro.name,'pro_pice',pro.price)
    ) prod
    FROM products as pro
    JOIN categories as cat on pro.cat_id = cat.id
    GROUP BY cat.id, cat.name
    ORDER BY cat.id;


    MySQL JSON aggregate
    Ответ написан
    Комментировать
  • Как достучаться до докер контейнера из браузера?

    @Kostik_1993
    Web Developer
    Для того чтобы из браузера или другой программы попасть в контейнер нужно пробросить порт.
    postgres:
        ports:
          - 5432:5432
        networks:
          - app-network

    Но в вашем случае вам нужно из одного обратиться к другому. Судя по всему вы хотите сделать коннект к БД из вашего приложения, но у вас указан localhost. Нужно прописать postgres вместо него
    Ответ написан
    Комментировать
  • В чем отличие ngnix от golang?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Ну раз с фронта пересели, то аналогию понять должны: В чëм отличие Google Chrome от JavaScript?
    Ответ написан
    3 комментария
  • Как обновлять значение в БД?

    rozhnev
    @rozhnev
    Fullstack programmer, DBA, медленно, дорого
    У Вас ошибка в запросе!

    UPDATE winka SET losse = losse + 1 WHERE user_id = 1;
    
    UPDATE winka SET win = win + 1 WHERE user_id = 1;


    https://sqlize.online/sql/sqlite3/3add68409fbe493d...
    Ответ написан
    Комментировать
  • Как перевести изображения на разные языки?

    Adamos
    @Adamos
    То есть исходники есть как в JPG/PNG так и в формате CDR

    "То есть" ничего не объясняет. Это наложение текста сделано в Кореле или просто какой-то чудак импортировал в него фотки?
    Во втором случае это совершенно бессмысленная информация.
    В первом - с проприетарным кореловским форматом, насколько мне известно, возился только sk1. Но вроде бы достаточно успешно возился, вплоть до того, что на его базе сделаны такие, например, инструменты: https://convertio.co/ru/cdr-sk1/
    Если в файлах таки есть текстовый слой и его можно будет сконвертировать во что-то открытое - останется работа с текстом и замена его в открытом формате.

    P.S. Просто в SVG может не быть возможности пустить текст по кривой, и экспорт в него раздербанит тексты по буковке. А в EPS, например, таки есть.
    Ответ написан
    2 комментария
  • Как исправить ошибку авторизации?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    У вас всегда срабатывает header('Location: avt.php');. Соответственно, происходит переход на GET avt.php, в POST ничего нет, выдаются предупреждения об отсутствии индексов login и password. А, поскольку в выходной поток уже что-то передано, заголовки больше не принимаются и header("Location: $script"); также выдаёт предупреждение.
    Первое: переход должен быть не на avt.php, а на registration.html
    Второе: if (! $_SESSION['admin']); смысла не имеет из-за точки с запятой в конце.
    Ответ написан
    1 комментарий
  • Как исправить ошибку mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Плейсхолдером можно подставить только параметр, вы же пытаетесь использовать его как подстановку содержимого строки.
    - $sql = $conn->prepare("select * from post_comment where body like '%?%'");
    + $sql = $conn->prepare("select * from post_comment where body like CONCAT('%', ?, '%')");
    Ответ написан
    3 комментария
  • Как хранятся индексы в postgresql и mysql?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Прочитал, что в mysql в движке innodb индексы делятся на два больших типа - первичный и вторичный

    Понятия первичного и вторичного индексов никак не связаны с СУБД. И это не типы индексов по большому счёту. Просто первичный - однозначно идентифицирует запись (что определяется ограничениями на значение выражения и используемых в нём полей), тогда как вторичный - всего лишь может использоваться для однозначной идентификации, но лишь при условии, что он отвечает всем требованиям-ограничениям для первичного.

    В InnoDB - всего лишь есть дополнение, что при наличии первичного индекса он является также и кластерным. Для других движков и других СУБД такой зависимости может и не быть.

    кластеризованный, как написано хранится с данными

    Не-а. Кластерный индекс - это когда записи в теле таблицы (т.е. сами данные таблицы) хранятся в порядке сортировки по выражению этого кластерного индекса.

    Всегда ли не кластиризованные индексы хранятся в оперативной памяти или это как-то можно регулировать?

    Индексы всегда хранятся на диске. В оперативной памяти индексы могут всего лишь кэшироваться. Для ускорения доступа.

    Я слышал что индексы должны быть в пределах мегабайт, а не гигабайт.

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

    Читал, что бывает так, что индекс в таблице индекса хранит сразу данные определенных столбцов, а не ссылки на эти строки в основной таблице.

    Вероятно, речь про INCLUDE-предложение в структуре индекса, имеющееся, например, в SQL Server... т.е. значения полей хранятся в выражении индекса как дополнительные данные, и не используются при сортировке.
    Ответ написан
    Комментировать
  • Почему на сервере не загружается таблица sqlite?

    delphinpro
    @delphinpro Куратор тега Laravel
    frontend developer
    no such table


    Черным по белому написано - такой таблицы в базе нет. Почему нет? Разбирайтесь.

    Пробовала в контроллер добавить use RefreshDatabese


    Зачем? Это используется в тестировании для очистки базы перед тестом. Для очистки, Настя! Может поэтому там и нет нужных таблиц.
    Ответ написан
    2 комментария
  • Как залить php сайт без базы данных на хостинг?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Традиционно и правильно - клонированием репозитория системой автоматического развертывания.
    Ответ написан
    2 комментария
  • Что будет, если убрать из URL уникальный id у новости в CMS?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    что скажите?
    Во первых "скажете". Во вторых не понятна суть вопроса, вы описали 2 разных механизма, один использует slug, другой id, к чему относится ваше описание механизмов определения уникальности - не понятно. Где вопрос?
    Ответ написан
    6 комментариев
  • Как хранить часто используемые большие объемы данных в игре?

    В файлах
    Ответ написан
    Комментировать
  • Как получить доступ к свойству объекта JSON не зная его название?

    Vindicar
    @Vindicar
    RTFM!
    JSON-объекты загружаются в простой питоновский словарь (а массивы - в список).
    Так что окей, гугл, перебор элементов словаря python.

    В твоём случае что-то вроде
    pages = info["query"]["pages"]
    for page_id, page_data in pages.items():
        ...   # что-то делаешь с page_id и page_data


    Если ты уверен, что у тебя всегда ровно один элемент в словаре, и его ключ тебя не интересует, то можно и так:
    pages = info["query"]["pages"]
    if pages:  # есть что-то в словаре?
        page_data = list(pages.values())[0]
        ...   # работаешь с page_data
    Ответ написан
    1 комментарий
  • Чем отличается php код запускаемый cron от обычного php кода?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Ничем. Это, внезапно, тоже "обычный php код".
    А вот среда запуска отличается - например, в CLI режиме применяется отдельный php.ini.
    Ответ написан
    7 комментариев
  • Почему при удалении куки возникает ошибка Warning: Cannot modify header information?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    Ответ написан
    Комментировать