Задать вопрос
  • Хорошее руководство по elasticsearch на русском?

    @latz
    Ответ написан
    Комментировать
  • Для чего в вызове функции ставить двойные скобки?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Чтобы передать кортеж из нескольких параметров, одним параметром. Но у вас в коде будет ошибка, так как вы объявили функцию с двумя параметрами, а при её вызове передаете один параметр.
    Ответ написан
    Комментировать
  • Как исправить ошибку в unit тесте?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Это не совсем юнит-тесты. Хочешь тестить юнитно - делай моки, дропай статики и елоквент.

    А так, как тестишь ты, можно только с инициализацией фреймворка, и.е. екстендится нужно от TestCase'а что в tests лежит.
    Ответ написан
    2 комментария
  • Как сделать работающую форму обратной связи, используя только файл .html?

    OtshelnikFm
    @OtshelnikFm
    Обо мне расскажет yawncato.com
    Дело обстоит так: или вам обеспечивают нормальную работу, или пошло оно всё лесом.
    Ответ написан
    Комментировать
  • Какие книги по устройству компьютера для web разработчика выбрать?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Ответ написан
    Комментировать
  • Как поделить базу между микросервисами?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Но немаловажная суть микросервисов в том, что бы минимизировать зависимости, в том числе обеспечить каждый микросервис своей БД.

    Именно.

    Дублировать данные для каждого микросервиса нет никакого смысла.

    В микросервисной архитектуре в дублировании как раз есть смысл.

    Может быть вам просто не нужны микросервисы, какую проблему вашего проекта решает микросервисная архитектура? А может вы наоборот зря заморачиваетесь по поводу дублирования, какие проблемы у вас с ним?
    Ответ написан
    Комментировать
  • В каком каталоге находится ядро Linux?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    В том, в который его поместил сборщик системы. Оно может вообще не быть доступным из файловой системы (например, быть на отдельном разделе флеш-памяти без файловой системы). Оно может даже не находиться на устройстве, которое его использует (а загрузчик может каждый раз получать его по сети).

    А в классических дистрибутивах оно обычно в /boot.
    Ответ написан
    Комментировать
  • Что такое полиморфные связи?

    greabock
    @greabock
    Могу
    Предположим, что у Вас есть комментарий, который может относится к посту(пользователя), а может относится к статье блога.
    тогда у Вас таблица может выглядеть примерно так:
    comment_id | parent_id | morph| comment_content | author

    где:
    comment_id - идентификатор самого коммента
    parent_id - идентификатор сущности к которой он относится
    morph - тип сущности, к которой относится этот комментарий.
    comment_content, author - тут я думаю понятно
    тогда записи могут выглядеть так:
    comment_id | parent_id | morph   | comment_content | author
    ---------------------------------------------------------------
      1        |   1       | post    | бла бла бла     | vasya
    ---------------------------------------------------------------
      2        |   1       | article | бла бла бла     | vasya
    ---------------------------------------------------------------

    при чем, несмтря на то, что parent_id у них одинаковый, в первом случае он относится к id в таблице post, а во втором к article
    Это и называется полиморфической связью.

    пример приведу на фреймворке laravel для php (но ORM там очень схож с Rails, так-что проблем возникнуть не должно)
    Модель комментария будет выглядеть приблизительно так:

    class Comment extends Eloquent {
    
     public function morph()
      {
         return $this->morphTo();
      }
    
    }

    а модели поста и статьи:

    class Post extends Eloquent {
    
      public function photos()
      {
        return $this->morphMany('post', 'morph');
      }
    
    }

    class Article extends Eloquent {
    
      public function photos()
      {
        return $this->morphMany('article', 'morph');
      }
    
    }

    вроде бы ничего не напутал...
    Ответ написан
    1 комментарий
  • Как работает авторизация в laravel?

    Fragster
    @Fragster
    помогло? отметь решением!
    Если драйвер - session, то где-то в сессии хранится, если драйвер другой - то в зависимости от него. Либо basic авторизация по каждого запроса, либо токены (например passport или sanctum), либо даже можно самому что-нибудь изобрести и прибивать, например, по ip+fingerprint браузера
    Ответ написан
    3 комментария
  • Как замокать приватное свойство в классе phpunit?

    Имитация вашего объекта:
    class Relay
    {
        private $privateProperty;
    
        public function __construct()
        {
            $this->privateProperty = new \stdClass();
        }
    
        // метод, который работает с приватным свойством
        public function call()
        {
            return $this->privateProperty;
        }
    }


    Способ 1: Нативный PhpUnit + Reflection API
    use PHPUnit\Framework\TestCase;
    
    class RelayTest extends TestCase
    {
        public function testCall(): void
        {
            $reflectionClass = new \ReflectionClass(Relay::class);
            $reflectionProperty = $reflectionClass->getProperty('privateProperty');
            $reflectionProperty->setAccessible(true);
    
            // создаем наш объект БЕЗ конструктора
            $relay = $reflectionClass->newInstanceWithoutConstructor();
    
            // Меняем свойство и вызываем метод, работающий с этим приватным полем
            $reflectionProperty->setValue($relay, 1111);
            self::assertEquals(1111, $relay->call());
    
            // Меняем свойство и вызываем метод, работающий с этим приватным полем
            $reflectionProperty->setValue($relay, 'aaaa');
            self::assertEquals('aaaa', $relay->call());
        }
    }


    Способ 2: Через Codeception Stub
    class RelayTest extends TestCase
        public function testCall(): void
        {
            /** @var Example $stub */
            $stub = Stub::make(Relay::class, [
                'privateProperty' => 1111,
            ]);
            self::assertEquals(1111, $stub->call());
    
            $stub = Stub::make(Relay::class, [
                'privateProperty' => 'aaaa',
            ]);
            self::assertEquals('aaaa', $stub->call());
        }
    }

    Отступления и полезные советы:
    • Почему-то стандартный, давно используемый мною, способ с инъекцией в мок приватного филда не зашел и выдавал null всегда.
    • Юзайте Inversion of Control Principle, например инъекцию зависимости через конструктор или инъекцию через метод с присвоением в конструкторе NullObject. Оба способа будут хороши для тестирования.
    Ответ написан
    1 комментарий
  • Книги для изучения и написания операционных систем?

    saboteur_kiev
    @saboteur_kiev Куратор тега Книги
    software engineer
    Зачем задавать подобные вопросы, если вы в принципе еще не освоили программирование?
    Начинать писать операционные системы до того, как написали хотя бы несколько рабочих программ сложнее, чем hello world нет смысла.

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

    Aetae
    @Aetae
    Тлен
    Альтернатива варианту Pardon Me! Where Do I Find 4giveness? - разобраться с api, который использует сайт для получения данных для построения энтого самого виртуального DOM, и работать с ним напрямую.
    Тут стоит выбрать способ, который потребует меньше времени и усилий, что зависит от архитектуры того сайта.
    Ответ написан
    Комментировать
  • Как вернуть модель, но не записывать в базу методом firstOrNew, firstOrCreate или подобным?

    New_Horizons
    @New_Horizons
    Бред:
    Ну так firstOrCreate же, нет? возвращает, либо создаёт и возвращает

    public function GenerateUser($first_name, $last_name)
    {
    	$user = User::firstOrCreate([
    		'first_name' => $first_name,
    		'last_name' => $last_name,
    	]);
    
    	return response()->json($user);
    }
    Ответ написан
    9 комментариев
  • Насколько сложные проекты создают на php?

    @fedor-sg
    Инженер-программист
    Мне кажется, что любой сложности, хотя многое зависит от того как организовали архитектуру приложения.
    Ответ написан
    Комментировать
  • Как делать CRUD операции в mongodb на php, без установки драйвера и composer?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    10 лет тостер был завален бессмысленными вопросами от жертв видеокурсов попова.
    Теперь пальму первенства перехватил тот дятел который впихивает нубам редбин
    Ответ написан
    1 комментарий
  • Почему на MySQL Slave-сервере растёт папка с бинлогами?

    @vitaly_il1
    DevOps Consulting
    Если вы не собираетесь использовать этот slave как master, то log_bin ему вообще не нужен.
    Насколько понимаю, надо

    - log_slave_updates = 0
    - закомментировать "log_bin"

    И покажите, пож-ста, что у вас в /var/log/mysql/ - какие логи занимают место?
    Ответ написан
    4 комментария
  • Парсинг для чайников?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    В институте парсинга информации при российской академии естественных наук (РАЕН) на кафедре текстов входящих сообщений на тертьем кусе есть дисциплина log-файлы. Там с третьей по сельмую лекции рассказывается как сие сделать. В учебном плане 17 семинаров, 8 лабораторных и 3 РГЗ.

    Если серьёзно, то формулировка вашего вопроса показывает, что вы не понимаете чего хотите или не пишете этого в вопросе. В первом случае вам нужно учиться программировать. Просто программировать. На любых курсах, соответствующих вашему уровню. Потом вопрос такой у вас уже не возникнет и все станет само собой понятно.
    Если вариант 2, то... Курсов парсинга log-файлов не бывает. Это тривиально. Вам нужно учиться более простым вещам прежде чем решать такие задачи.
    Ответ написан
    1 комментарий
  • Как настроить телеграм чтобы не удалялась переписка?

    cr1gger
    @cr1gger
    Все дороги ведут в Рим — встретимся в Риме!
    Никак! Так задумано. Хочешь кому то что то потом доказывать. Используй вк или ватсап
    Ответ написан
    1 комментарий
  • Как обойти ограничения к API на количество запросов?

    inoise
    @inoise Куратор тега PHP
    Solution Architect, AWS Certified, Serverless
    В любом случае придётся использовать прокси
    Ответ написан
    Комментировать
  • Какие ресурсы посоветуете для изучения php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    По всем советам читаю книгу "php7 полное руководство" автор- Игорь симдянов. Я не понимаю что там вообще написано!

    Это плохо, но надо стараться.

    Курсов, которые будут лучше этой книги, не существует.
    Все что ты найдешь - будет заведомо хуже. И вместо цели "хорошо знать php" ты достигнешь прямо противоположной - как говнокодить на РНР, не понимая ни одной написанной строчки.

    Лучше завадвй вопросы на тостере, по тем темам, которые тебе непонятны.
    Книга очень хорошая, она дает понимание общей картины, а не пару примеров, как все остальные.
    Если ты её осилишь, то будешь понимать, что ты даелаешь, а не просто как обезьяна собирать программу из кубиков по образцу.
    Ответ написан
    Комментировать