• Как передать ошибку пользователю из класса?

    @Hfnas Автор вопроса
    Лентюй, это кол-во.(я часть кода привела...)
  • Как передать ошибку пользователю из класса?

    @Hfnas Автор вопроса
    hack504, Да , убрала... спасибо...

    Все равно проблему не решает...
    Может, вы знаете, как передавать пользователю в попап сообщение об ошибке?
    Мне нужно, чтобы в тот момент, когда возникла ошибка в классе 1 (не выполняя дальше код), передать классу 2(запись в переменную-> вывод ошибки на экран c помощью этой переменной).

    на просторах сети советуют использовать Exception, но я не знаю, как их применять правильно в моем случае.
  • Какая из существующих библиотек загружает excel файлы и обрабатывает, при этом не жрет память?

    @Hfnas Автор вопроса
    Дмитрий, я понимаю, но клиент не поймет, что такое csv, и никто не будет заморачиваться с кодировкой при открытии csv.
    Единственно, возможно проще будет на стороне пхп переименовать xls->csv. Как вы думаете?
  • Какая из существующих библиотек загружает excel файлы и обрабатывает, при этом не жрет память?

    @Hfnas Автор вопроса
    Владислав Лысков, видела это,
    PHPExcel last version, 1.8.1, was released in 2015. The project was officially deprecated in 2017 and permanently archived in 2019.

    The project has not be maintained for years and must not be used anymore. All users must migrate to its direct successor PhpSpreadsheet, or another alternative.

    поэтому я хочу использовать библиотеку phpspreadsheet. Или вы считаете, раз это прямой преемник PHPEXCEL, и ждать от этой библиотеки чуда не стоит?
  • Какая из существующих библиотек загружает excel файлы и обрабатывает, при этом не жрет память?

    @Hfnas Автор вопроса
    Эту ссылку я видела, и что я должна там увидеть, извините, я не поняла... Может, я что-то пропустила?
    Главное, хочу понять, как данная библиотека жрет память?
  • Какая из существующих библиотек загружает excel файлы и обрабатывает, при этом не жрет память?

    @Hfnas Автор вопроса
    Благодарю, сами клиенты будут загружать прайс с отредактированным количеством позиции(те колво они сами будут проставлять).
    А их мб много, кто захочет работать с прайсом..
    Значит, на время парсинга нужно кнопку загрузки файлов делать неактивной.. Благодарю за ценное замечание.
  • Почему "Class 'Ras\CVas' not found (0)"?

    @Hfnas Автор вопроса
    serginhold, благодарю Вас:
    мне помогло следующее:
    //создала файл /local/modules/ras.vas/lib/vas.php
    
    namespace Ras\Vac;
    
    class Vac
    {
        function hello(){
            echo "hello";
        }
    }


    /local/modules/ras.vas/include.php -убрать функцию \Bitrix\Main\Loader::registerAutoloadClasses

    в файле /test.php
    <?
    require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
    $APPLICATION->SetTitle("");?><?$APPLICATION->SetTitle("Рейтинг");?> <br>
    <?
    use Ras\Vac;
    if (CModule::IncludeModule("ras.vas")){
        echo "1"; //выводит, на странице bitrix/admin/partner_modules.php?lang=ru модуль установлен.
    
    Vac\Vac::hello(); 
    
    }
    
    
    ?>
    
    <br><?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>

    Написала, а то кто-то будет мучиться, как я целый день дебагом, так и ничего не поняла.
  • Почему "Class 'Ras\CVas' not found (0)"?

    @Hfnas Автор вопроса
    serginhold, use Ras/CFvac;-namespace
  • В консоли дебага наблюдаются ошибки PHP Notice, PHP Deprecated?

    @Hfnas Автор вопроса
    и маппинг неверный был настроен.
  • Как исправить ошибку "Error: Class Blog\Entity\Post has no association named img_id"?

    @Hfnas Автор вопроса
    Максим Федоров, благодарю, я перелопатила инет, решила доктрину перечитать все.
    Да, Ваши команды действительно помогли.
    + и пришлось сделать двухнаправленную OneToMany с использованием inversed by и mapped by. Так не поняла, зачем пишут в документации доктрины про одноправленную OneToMany, раз она не имеет смысла?
    в конечном итоге я попыталась с помощью джойна упростить обращение к бд, чтобы сразу получить 2 сущности, а не через одну сущность получить другую сущность.
    Но разницы, к сожалению, не увидела, так как через одну сущность можно получить другую сущность в обоих случаях. В чем разница тогда?
    вот отладка дебага с join:
    5d498161b14f1495980710.png
    без join
    5d498198ee946046047553.png

    все равно придется обращаться в шаблоне view.phtml
    $post->getImg()->getImgPath();, где getImg() - метод класса Post, а getImgPath()- метод класса Image.
  • Как добавить строчку записи в конец файла /etc/hosts в докерфайле?

    @Hfnas Автор вопроса
    Еще, важный момент, как сказал rustler2000 (спасибо ему тоже огромное), docker-compose.yml переписывает докерфайл.
    у меня было указано в docker-compose.yml:
    volumes:
          - ${APP_PATH_HOST}:${APP_PATH_CONTAINER}
          - ${APP_XDEBUG_LOCAL}:${APP_XDEBUG_PROD} <- вот эта строчка.

    поэтому
    xdebug.remote_enable=on
    xdebug.remote_autostart=off

    просто стирались файлом , отмеченным в в docker-compose.yml.
  • Как добавить строчку записи в конец файла /etc/hosts в докерфайле?

    @Hfnas Автор вопроса
    Ошибка состояла в том что я писала вместо 127.0.0.1 test ->127.0.0.1 xxx_hhh ввезде, где нужно писать ( в 000-default.conf, /etc/hosts), те доменное имя не должно содержать знак подчеркивания.
  • Как добавить строчку записи в конец файла /etc/hosts в докерфайле?

    @Hfnas Автор вопроса
    rustler2000, да делала много раз, а где взять свежий образ?
    from php:7.3.4-apache - нормальный образ. ( взят из докерфайла)/
    Подскажите, пожалуйста.
  • Как добавить строчку записи в конец файла /etc/hosts в докерфайле?

    @Hfnas Автор вопроса
    Благодарю за внимание.
    RUN apt-get update \
     && echo "xdebug.remote_enable=on" >> /usr/local/etc/php/conf.d/xdebug.ini \
     && echo "xdebug.remote_autostart=off" >> /usr/local/etc/php/conf.d/xdebug.ini\
     && echo  "127.0.0.1 test" >> /etc/hosts \

    все равно не выполняется. Я переместила на первые строчки, после апдейт.
  • Как добавить строчку записи в конец файла /etc/hosts в докерфайле?

    @Hfnas Автор вопроса
    Если я вас правильно понял, вы желаете локально поднять контейнер, в нём некий web сервис и на этом-же компьютере осуществлять "вход"?
    Тогда строчку "127.0.0.1 test" вам необходимо добавлять в ваш локальный host а не тот что в контейнере ибо резолвинг имени в адрес, происходит у вас локально.

    не помогло.
    вылезает ошибка "Bad Request
    Your browser sent a request that this server could not understand.
    Additionally, a 400 Bad Request error was encountered while trying to use an ErrorDocument to handle the request."

    docker run ... --add-host="test"
    я понимаю, если я нажимаю
    docker run -it --add-host test:127.0.0.1 ubuntu cat /etc/hosts

    у меня ос =ubuntu, а контейнера ubuntu нет. Подскажете, что означает ubuntu в этой команде?
    в командной оболочке, то никакой подзамены 127.0.0.1=test не наблюдаю.
    Честно, не понимаю, зачем мы должны править файл /etc/hosts на локальной машине, а не в контейнере. Когда мы работаем с сервером на продакшене, правится файл /etc/hosts на продакшене, у себя на компе ничего не прописываем....
  • Как добавить строчку записи в конец файла /etc/hosts в докерфайле?

    @Hfnas Автор вопроса
    Антон, благодарю за внимание. Мне нужно для саморазвития, хочется понять все про host, для меня это темный лес, в теории понятно, что делает файл /etc/hosts, а на практике не совсем. Буду благодарна, если поможете.
    1) руками в hosts-файл на вашей хост-машине добавить строчку 127.0.0.1 test. Так вы решите вопрос с именем хоста (test вместо IP 127.0.0.1)

    Прописала не в контейнере, а на компе, где запущен докер.
    вылезает ошибка "Bad Request
    Your browser sent a request that this server could not understand.
    Additionally, a 400 Bad Request error was encountered while trying to use an ErrorDocument to handle the request."
    2) при старте контейнера с веб-сервером биндить порт веб-сервера из контейнера с 80-м портом вашей хост-машины (с помощью параметра --publish): что-то типа docker run --publish 80:8080 ... - здесь как бы написано: "связать внутренний порт контейнера 8080 с внешним портом хост-машины 80" (в вашем случае вроде как оба порта будут 80, и внутренний, и внешний)

    у меня написано в docker-compose.yml в ports
    version: '3'
    services:
      web:
        build: ./web
        environment:
          - XDEBUG_CONFIG="remote_host=172.17.0.1 remote_enable=1"
          - PHP_IDE_CONFIG="serverName=Docker"
          - APACHE_RUN_USER=www-data
        extra_hosts:
          - "zend_web:127.0.0.1"
        volumes:
          - ${APP_PATH_HOST}:${APP_PATH_CONTAINER}
          - ${APP_XDEBUG_LOCAL}:${APP_XDEBUG_PROD}
        ports:
          - 8080:80
        working_dir: ${APP_PATH_CONTAINER}


    . Если вы делаете это уже для продакшна - то всё, что вы описали в вопросе - не то, не так и не в ту сторону

    Подскажите, пож-ста, в какую сторону мне копать, если я не понимаю на локалке, то как я пойму продакшен?
  • Как добавить строчку записи в конец файла /etc/hosts в докерфайле?

    @Hfnas Автор вопроса
    rustler2000, благодарю за внимание!!!
    обновила вопрос.
    entrypoint у меня записано в docker-compose.yml
    version: '3'
    services:
      web:
        build: ./web
        environment:
          - XDEBUG_CONFIG="remote_host=ip remote_enable=1"
          - PHP_IDE_CONFIG="serverName=Docker"
          - APACHE_RUN_USER=www-data
        volumes:
          - ${APP_PATH_HOST}:${APP_PATH_CONTAINER}
          - ${APP_XDEBUG_LOCAL}:${APP_XDEBUG_PROD}
        ports:
          - 8080:80
        working_dir: ${APP_PATH_CONTAINER}

    Уточните, пожалуйста, как entrypoint может влиять на запись в конец файла /etc/hosts?

    Прописала в docker-compose.yml в блоке web, не помогло:
    extra_hosts:
      - "test:127.0.0.1"

    хоть и добавилось в /etc/hosts на контейнере.
    в браузере ошибка "Не удается получить доступ к сайту".
  • Как добавить строчку записи в конец файла /etc/hosts в докерфайле?

    @Hfnas Автор вопроса
    Не очень понятно зачем это нужно?

    Буду очень признательна, если вы мне подскажете. Мне необходимо сделать http://127.0.0.1:8080=http://test , я устала порты набивать.
    Сформулирую по-другому вопрос, как заставить докерфайл записать в конец файла нужную строчку? У меня он не пишет.
    RUN
     echo "127.0.0.1 test" >> /etc/hosts \
     && a2enmod rewrite


    Лучше пропишите на машинах откуда заходите на вебсервер в hosts желаемое имя.

    не в образе, а в основной системе, из которой я браузеры открываю? Странно, в инструкциях написано, надо указывать в докер-контейнере. Аналогично, если ты разместил сайт на хостинге, его алиас (ip написано буквами), пишется в файле /etc/hosts на сервере. Или я ошиблась?

    Очень прошу подсказать мне, я не могу придумать недели 2-3, с чем это связано?
  • Чем отличаются миграции от доктрины?

    @Hfnas Автор вопроса
    BoShurik, благодарю за ответ!!!
    На проде тоже так же будете выполнять? Тот же пример с object все порушит*

    На проде никогда с фреймфорками не работала, поэтому не знаю. С Вами хочу посоветоваться...

    Итак, алгоритм действии, на мой взгляд. Подправьте меня, пожалуйста, если не права, так как для меня это важно:
    1. первый раз создаю сущность (таблиц нет в бд)- выполняю код:
    ./vendor/bin/doctrine-module   orm:schema-tool:create

    2. далее, если забыла что-то добавить в предыдущую сущность/или добавить новую сущность:
    ./vendor/bin/doctrine-module   orm:schema-tool:update

    3. Таблицы в бд появились, а дальше что надо сделать-миграцию, зачем понятия не имею- в бд таблицы появились:
    ./vendor/bin/doctrine-module migrations:generate-заполняем класс миграции вручную...
    ./vendor/bin/doctrine-module migrations:migrate-мигрируем в ту же бд- обычно ошибка, что в бд таблицы существуют.
    4. Гитом с тестового сервера запушу на продакшен.
    5. Выполняю на продакшене:
    ./vendor/bin/doctrine-module   orm:schema-tool:create

    ./vendor/bin/doctrine-module   orm:schema-tool:update

    ./vendor/bin/doctrine-module migrations:migrate

    Итог, я пишу и сущность и миграции, те получается, что я одно и то же пишу 2 раза, а если, допустим я пишу правильно сущность, а миграцию неверно-ошибусь, или наоборот.