Задать вопрос
  • Как подключиться к mysql, которая запущена в контейнере на docker desktop на mac os?

    IgorPI
    @IgorPI
    Что это за чудовищный порт 3306:3306 в окне параметров?
    Нужно использовать 3306
  • Symfony, Argument resolver используется по назначению?

    IgorPI
    @IgorPI Автор вопроса
    Можете накидать простейший пример, буду благодарен.
    Мне кажется я понял что вы имеете в виду...
  • Symfony, Argument resolver используется по назначению?

    IgorPI
    @IgorPI Автор вопроса
    Я подумываю и о тестах, тоже.
    Хочу что бы контроллеры перенимали только те аргументы, которые ему принадлежат.

    А то получается если в контроллер передать объект класса Request
    В котором пару десятков параметров, со сложной иерархией и как это тестировать?
  • Symfony, Argument resolver используется по назначению?

    IgorPI
    @IgorPI Автор вопроса
    Я как бы хочу систематизировать валидацию входных данных, с помощью такого манёвра.
  • Symfony, Argument resolver используется по назначению?

    IgorPI
    @IgorPI Автор вопроса
    Я наверное не правильно привёл пример.

    Я хочу выполнить валидацию входных данных.

    Предположим, на сервер шлю некоторые данные, вот пример.
    var request = require('request');
    var options = {
      'method': 'POST',
      'url': '127.0.0.100:8012/products.edit',
      'headers': {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer eyJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1ODI3OTM4NjksIm5iZiI6MTU4Mjc5Mzg3MCwiZXhwIjoxNTgyODI5ODY5LCJsb2dpbiI6ImFkbWluIn0.9OkTphxKP4OKh77Xa2dOE5OLiTmmW-Blor_6FK6aVUg'
      },
      body: JSON.stringify({"product_id":1,"name":"Чай","description":"Чай хана","price":100,"old_price":120,"image_id":1,"restaurant_id":1,"images":[2,3,4],"categories":[1],"recommendations":[7],"state":true,"lang":"ru"})
    
    };
    request(options, function (error, response) { 
      if (error) throw new Error(error);
      console.log(response.body);
    });


    Теперь мне нужно убедиться что переданная схема верна.
  • Как в node js получить список js файлов в папке и подпапках?

    IgorPI
    @IgorPI
    Николай, А зачем

    var path = require('path');

    Если он негде не используется.
  • Как в node js получить список js файлов в папке и подпапках?

    IgorPI
    @IgorPI
    Александр Прозоров, Ок, вы наверное тоже не дочитали.


    Note: for...in should not be used to iterate over an Array where the index order is important.


    Не должен использоваться, где ВАЖЕН порядок индекса.

    Следовательно, это не значит что это плохая идея.


    Индексы массива являются просто перечислимыми свойствами с целочисленными именами и в остальном идентичны общим свойствам объекта. Нет гарантии, что for ... in вернет индексы в любом конкретном порядке. Оператор цикла for ... in вернет все перечисляемые свойства, в том числе с нецелыми именами и наследуемыми.
  • Установка Symfony, как запретить создавать базовые файлы конфигураций?

    IgorPI
    @IgorPI Автор вопроса
    Максим, Спасибо, где-то этого разработчика я уже видел, не помню где...
    Обещаю детально изучить исходники.

    Бегло пробежался по проекту, те же яйца только вид сбоку.

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

    Вообще в планах пушить в репозиторий докера уже собранные контейнеры, а на сервере автоматический Pull. Это уже отдельная тема.
  • Установка Symfony, как запретить создавать базовые файлы конфигураций?

    IgorPI
    @IgorPI Автор вопроса
    Максим,
    Зачем оно в одной папке с симфони?


    Это, не каким, образом не влияет на проект.
    Дело в том, что это исходники, далее все по контейнерам рассовывается.

    В проекте используется docker-compose вот как бы я собирал композит по разным папкам?

    Не побоюсь этого тезиса, "Микро сервисы"

    - Админка
    - PWA приложение
    - API для админки
    - API для самого приложения
    - отдельный сервис для обработки изображений
    - API, Сервер авторизации

    Да простит меня всевышний...
  • Как правильно в Vue подключать такие сторонние библиотеки / фреймворки?

    IgorPI
    @IgorPI
    ArtJH, Да.

    sass-loader

    module.exports = {
      module: {
        rules: [
          {
            test: /\.s[ac]ss$/i,
            use: [
              // Creates `style` nodes from JS strings
              'style-loader',
              // Translates CSS into CommonJS
              'css-loader',
              // Compiles Sass to CSS
              'sass-loader',
            ],
          },
        ],
      },
    };
  • Установка Symfony, как запретить создавать базовые файлы конфигураций?

    IgorPI
    @IgorPI Автор вопроса
    Проект разделён на ядра
    Дело то не в этом.

    Наверное вопрос звучит так, "Зачем?"

    Symfony я использую для реализации REST API

    Использую многоядерность, так как для определённых окружений мне нужны свои bundles.

    Небольшой неприятностью, является тот фак, что при деплое, создаются дефолтные конфигурации.
    Они в принципе не мешают.

    - Вопрос эстетики
    - Вводит в заблуждения

    Для полного понимания, вот реализация одного из ядер.

    <?php
    
    namespace App;
    
    use Exception;
    use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait;
    use Symfony\Component\Config\Exception\LoaderLoadException;
    use Symfony\Component\Config\Loader\LoaderInterface;
    use Symfony\Component\Config\Resource\FileResource;
    use Symfony\Component\DependencyInjection\ContainerBuilder;
    use Symfony\Component\HttpKernel\Kernel as BaseKernel;
    use Symfony\Component\Routing\RouteCollectionBuilder;
    use function dirname;
    
    /**
     * Class ApiKernel
     * @package App
     */
    class ApiKernel extends BaseKernel
    {
        use MicroKernelTrait;
    
        /** @var string  */
        private const CONFIG_EXTS = ".{php,xml,yaml,yml}";
    
        /**
         * @return iterable
         */
        public function registerBundles(): iterable
        {
            $contents = require $this->getProjectDir() . "/config/api/bundles.php";
            foreach ($contents as $class => $envs) {
                if ($envs[$this->environment] ?? $envs["all"] ?? false) {
                    yield new $class();
                }
            }
        }
    
        /**
         * @return string
         */
        public function getProjectDir(): string
        {
            return ROOT_DIRECTORY;
        }
    
    
        /**
         * @return string
         */
        public function getCacheDir()
        {
            return ROOT_DIRECTORY . '/var/cache/api/' . $this->getEnvironment();
        }
    
        /**
         * @return string
         */
        public function getLogDir()
        {
            return ROOT_DIRECTORY . '/var/log/api';
        }
    
        /**
         * @param ContainerBuilder $container
         * @param LoaderInterface $loader
         * @throws Exception
         */
        protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void
        {
            $container->addResource(new FileResource($this->getProjectDir().'/config/api/bundles.php'));
            $container->setParameter('container.dumper.inline_class_loader', true);
            $confDir = $this->getProjectDir().'/config/api';
    
            $loader->load($confDir.'/{packages}/*'.self::CONFIG_EXTS, 'glob');
            $loader->load($confDir.'/{packages}/'.$this->environment.'/**/*'.self::CONFIG_EXTS, 'glob');
            $loader->load($confDir.'/{services}'.self::CONFIG_EXTS, 'glob');
            $loader->load($confDir.'/{services}_'.$this->environment.self::CONFIG_EXTS, 'glob');
        }
    
    
        /**
         * @param RouteCollectionBuilder $routes
         * @throws LoaderLoadException
         */
        protected function configureRoutes(RouteCollectionBuilder $routes): void
        {
            $confDir = $this->getProjectDir() . "/config/api";
    
            $routes->import($confDir . "/{routes}/" . $this->environment . "/**/*" . self::CONFIG_EXTS, "/", "glob");
            $routes->import($confDir . "/{routes}/*" . self::CONFIG_EXTS, "/", "glob");
            $routes->import($confDir . "/{routes}" . self::CONFIG_EXTS, "/", "glob");
        }
    }
  • Установка Symfony, как запретить создавать базовые файлы конфигураций?

    IgorPI
    @IgorPI Автор вопроса
    Максим,

    Более того я вижу, что у вас тут ещё приложения на vue.

    Да, все верно.

    Но оно не зависит от Symfony
    В любой момент я могу перенести фронт в другой каталог.
  • Установка Symfony, как запретить создавать базовые файлы конфигураций?

    IgorPI
    @IgorPI Автор вопроса
    Да, но что если его нет?
    То есть я его не юзаю.

    Файла Kernel.php физически нет.
  • Как правильно настроить docker-mailserver?

    IgorPI
    @IgorPI Автор вопроса
    Теперь получаю следующие логи

    Feb 21 19:21:29 mail postfix/smtpd[894]: error: open database /etc/postfix/vmailbox: No such file or directory
    
    Feb 21 19:21:29 mail postfix/smtpd[894]: connect from mail.app.mail_default[172.23.0.3]
    
    Feb 21 19:21:29 mail postfix/smtpd[894]: NOQUEUE: reject: RCPT from mail.app.mail_default[172.23.0.3]: 554 5.7.1 <igor.popryduhin@cn-expert.pro>: Relay access denied; from=<admin@domain.com> to=<igor.popryduhin@cn-expert.pro> proto=ESMTP helo=<localhost>
    
    Feb 21 19:21:30 mail postfix/smtpd[894]: NOQUEUE: reject: RCPT from mail.app.mail_default[172.23.0.3]: 554 5.7.1 <igor.popryduhin@cn-expert.pro>: Relay access denied; from=<admin@domain.com> to=<igor.popryduhin@cn-expert.pro> proto=ESMTP helo=<localhost>
    
    Feb 21 19:21:30 mail postfix/smtpd[894]: disconnect from mail.app.mail_default[172.23.0.3] ehlo=1 mail=1/3 rcpt=0/3 data=0/3 quit=1 commands=3/11
  • Как правильно настроить docker-mailserver?

    IgorPI
    @IgorPI Автор вопроса
    После некоторых манипуляций, получил следующие логи

    Feb 21 18:58:05 mail opendkim[95]: OpenDKIM Filter v2.11.0 starting (args: -f)
    Feb 21 18:58:06 mail opendmarc[102]: OpenDMARC Filter v1.3.2 starting (args: -f -p inet:8893@localhost -P /var/run/opendmarc/opendmarc.pid)
    Feb 21 18:58:06 mail opendmarc[102]: additional trusted authentication services: mail.dev.com
    Feb 21 18:58:07 mail amavis[123]: starting. /usr/sbin/amavisd-new at mail.dev.com amavisd-new-2.10.1 (20141025), Unicode aware
    Feb 21 18:58:07 mail amavis[123]: Net::Server: Group Not Defined.  Defaulting to EGID '111 111'
    Feb 21 18:58:07 mail amavis[123]: Net::Server: User Not Defined.  Defaulting to EUID '109'
    Feb 21 18:58:07 mail amavis[123]: Module Amavis::Conf        2.404
    Feb 21 18:58:07 mail amavis[123]: Module Archive::Zip        1.59
    Feb 21 18:58:07 mail amavis[123]: Module BerkeleyDB          0.55
    Feb 21 18:58:07 mail amavis[123]: Module Compress::Raw::Zlib 2.069
    Feb 21 18:58:07 mail amavis[123]: Module Compress::Zlib      2.069001
    Feb 21 18:58:07 mail amavis[123]: Module Digest::MD5         2.54
    Feb 21 18:58:07 mail amavis[123]: Module Encode              2.80_01
    Feb 21 18:58:07 mail amavis[123]: Module File::Temp          0.2304
    Feb 21 18:58:07 mail amavis[123]: Module IO::Socket::IP      0.37
    Feb 21 18:58:07 mail amavis[123]: Module MIME::Entity        5.508
    Feb 21 18:58:07 mail amavis[123]: Module MIME::Parser        5.508
    Feb 21 18:58:07 mail amavis[123]: Module MIME::Tools         5.508
    Feb 21 18:58:07 mail amavis[123]: Module Mail::Header        2.18
    Feb 21 18:58:07 mail amavis[123]: Module Mail::Internet      2.18
    Feb 21 18:58:07 mail amavis[123]: Module Net::LibIDN         0.12
    Feb 21 18:58:07 mail amavis[123]: Module Net::Server         2.008
    Feb 21 18:58:07 mail amavis[123]: Module Scalar::Util        1.4202
    Feb 21 18:58:07 mail amavis[123]: Module Socket              2.020_03
    Feb 21 18:58:07 mail amavis[123]: Module Time::HiRes         1.9733
    Feb 21 18:58:07 mail amavis[123]: Module Unix::Syslog        1.1
    Feb 21 18:58:07 mail amavis[123]: Amavis::ZMQ code     NOT loaded
    Feb 21 18:58:07 mail amavis[123]: Amavis::DB code      loaded
    Feb 21 18:58:07 mail amavis[123]: SQL base code        NOT loaded
    Feb 21 18:58:07 mail amavis[123]: SQL::Log code        NOT loaded
    Feb 21 18:58:07 mail amavis[123]: SQL::Quarantine      NOT loaded
    Feb 21 18:58:07 mail amavis[123]: Lookup::SQL code     NOT loaded
    Feb 21 18:58:07 mail amavis[123]: Lookup::LDAP code    NOT loaded
    Feb 21 18:58:07 mail amavis[123]: AM.PDP-in proto code loaded
    Feb 21 18:58:07 mail amavis[123]: SMTP-in proto code   loaded
    Feb 21 18:58:07 mail amavis[123]: Courier proto code   NOT loaded
    Feb 21 18:58:07 mail amavis[123]: SMTP-out proto code  loaded
    Feb 21 18:58:07 mail amavis[123]: Pipe-out proto code  NOT loaded
    Feb 21 18:58:07 mail amavis[123]: BSMTP-out proto code NOT loaded
    Feb 21 18:58:07 mail amavis[123]: Local-out proto code loaded
    Feb 21 18:58:07 mail amavis[123]: OS_Fingerprint code  NOT loaded
    Feb 21 18:58:07 mail amavis[123]: ANTI-VIRUS code      NOT loaded
    Feb 21 18:58:07 mail amavis[123]: ANTI-SPAM code       NOT loaded
    Feb 21 18:58:07 mail amavis[123]: ANTI-SPAM-EXT code   NOT loaded
    Feb 21 18:58:07 mail amavis[123]: ANTI-SPAM-C code     NOT loaded
    Feb 21 18:58:07 mail amavis[123]: ANTI-SPAM-SA code    NOT loaded
    Feb 21 18:58:07 mail amavis[123]: Unpackers code       loaded
    Feb 21 18:58:07 mail amavis[123]: DKIM code            NOT loaded
    Feb 21 18:58:07 mail amavis[123]: Tools code           NOT loaded
    Feb 21 18:58:07 mail amavis[123]: Found $file            at /usr/bin/file
    Feb 21 18:58:07 mail amavis[123]: No $altermime,         not using it
    Feb 21 18:58:07 mail amavis[123]: Internal decoder for .mail
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .Z    at /bin/uncompress
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .gz   at /bin/gzip -d
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .bz2  at /bin/bzip2 -d
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .xz   at /usr/bin/xz -dc
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .lzma at /usr/bin/xz -dc --format=lzma
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .lrz  at /usr/bin/lrzip -q -k -d -o -
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .lzo  at /usr/bin/lzop -d
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .lz4  at /usr/bin/lz4c -d
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .rpm  at /usr/bin/rpm2cpio
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .cpio at /bin/pax
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .tar  at /bin/pax
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .deb  at /usr/bin/ar
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .rar  at /usr/bin/unrar-free
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .arj  at /usr/bin/arj
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .arc  at /usr/bin/nomarch
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .zoo  at /usr/bin/zoo
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .doc  at /usr/bin/ripole
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .cab  at /usr/bin/cabextract
    Feb 21 18:58:07 mail amavis[123]: Internal decoder for .tnef
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .zip  at /usr/bin/7za
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .kmz  at /usr/bin/7za
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .7z   at /usr/bin/7zr
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .jar  at /usr/bin/7z
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .swf  at /usr/bin/7z
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .lha  at /usr/bin/7z
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .iso  at /usr/bin/7z
    Feb 21 18:58:07 mail amavis[123]: Found decoder for    .exe  at /usr/bin/unrar-free; /usr/bin/arj
    Feb 21 18:58:07 mail amavis[123]: No decoder for       .F   
    Feb 21 18:58:07 mail amavis[123]: Deleting db files  in /var/lib/amavis/db
    Feb 21 18:58:07 mail amavis[123]: Creating db in /var/lib/amavis/db/; BerkeleyDB 0.55, libdb 5.3
    Feb 21 18:58:09 mail postfix/master[859]: daemon started -- version 3.1.12, configuration /etc/postfix


    Теперь вроде как ошибок нет. Но почта по прежнему не отправляется
  • Как правильно кастомизировать стили в vuetify?

    IgorPI
    @IgorPI Автор вопроса
    Любовь,


    Форк (англ. fork — развилка, вилка) или ответвление — использование кодовой базы программного проекта в качестве старта для другого, при этом основной проект может как продолжать существование, так и прекратить его. ... Дериватив является частным случаем форка и подразумевает именно подобное поведение.

    Источник
  • Как правильно кастомизировать стили в vuetify?

    IgorPI
    @IgorPI Автор вопроса
    Любовь, Скорее всего вам нужно форкнуть стек и кастомизировать так как вам нужно.
  • Как правильно кастомизировать стили в vuetify?

    IgorPI
    @IgorPI Автор вопроса
    Любовь В вёрстке я конечно не профи, это не моя лучшая сторона.
    Но определенно решение есть и я частично его использую.
    Я понимаю, что это не лучший вариант, так как в любой момент автор фреймворка может переименовать имена классов.

    Что я делаю.

    1. Инспектирую стили
    2. Перекрываю, создав такие же имена классов.

    Обратите внимание на скриншот.

    5e4e6265a9b73787234842.png

    Только я перестал использовать vuetify, перешёл на quasar.
    Те же яйца, только вид сбоку.

    В некоторых случаях классы можно указать непосредственно в используемом компоненте.
    Можно кастомизировать слоты.