• Нужна помощь с сайтом, а именно скрин странички на стороне сервера. Как это сделать?

    larisamoroz
    @larisamoroz
    Курю маны, втыкаю в код, ваяю, починяю.
    можно всё на PHP сделать
    cutycapt и xvfb-run тебе в помощь
    но надо иметь доступ к установке ПО на сервере

    у меня вот такая команда на скриншотах работает
    exec('xvfb-run -a --server-args="-screen 0, 520x520x24" cutycapt --url=\'' . $pageUrl . '\' --min-width=520 --min-height=340 --out=\'' . $screenshotPath . '\' 2>&1', $execoutput);
    Ответ написан
    Комментировать
  • Можно ли запустить php-скрипты на разных ядрах?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Распределением занимается операционная система, поэтому "равномерное" будет не по php-ftp, а по всем процессам в ОС, включая ядро.
    Ответ написан
    1 комментарий
  • PHP PDO bindParam, второй параметр передается по ссылке. Зачем?

    DevMan
    @DevMan
    bindValue привязывает значение в момент своего вызова.
    bindParam привязывает значение только в момент вызова execute.
    Ответ написан
    Комментировать
  • Как через Doctrine сделать запрос поля OneToMany?

    Minifets
    @Minifets
    Hello world!!!
    У вас в таблице (модели "App\Entity\ShiftBreak"), нет поля breaks, соответственно вы не можете его указать в select запросе.

    Чтобы получить данные из 2-х или более таблиц, нужно использовать JOIN:

    $this->createQueryBuilder('s')
                ->select([
                    's.created',
                    's.name',
                    'b.id'
                ])
                ->join('s.breaks', 'b')
                ->getQuery();
    Ответ написан
    1 комментарий
  • Как работать в symfony env в продакшне?

    glaphire
    @glaphire
    PHP developer
    В самой документации написано, что нет преимущества проброса env через сервер по сравнению с .env файликом на проде

    Most Symfony applications read their configuration from environment variables. While developing locally, you'll usually store these in .env and .env.local (for local overrides). On production, you have two options:

    Create "real" environment variables. How you set environment variables, depends on your setup: they can be set at the command line, in your Nginx configuration, or via other methods provided by your hosting service.
    Or, create a .env.local file just like your local development (see note below)
    There is no significant advantage to either of the two options: use whatever is most natural in your hosting environment.

    https://symfony.com/doc/current/deployment.html#b-...
    Ответ написан
  • Как на PHP предсказывать события с помощью ML?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    так там одна функция
    https://www.php.net/manual/ru/function.random-int.php

    попробуйте на сезоне/серии - будет точнее всего что наделаете
    Ответ написан
    Комментировать
  • Что может линукс, чего не может Mac?

    egvimar
    @egvimar
    Истины нет, существуют только версии...
    Против самого Linux ничего против не имею, а про бесплатные дистрибутивы для домашнего пользования могу сказать одно — конструктор из г..вна и палок.
    Ответ написан
    8 комментариев
  • Hyper-V не поддерживaется?

    @Drno
    ЕСЛИ включен Hyper-V в биос, и ЕСЛИ компонент установлен в windows... То

    Нашёл решение проблемы. Как я понял для безопасности винда как бы сама запускается в вируталке, поэтому выдаёт такое сообщение. Эта функция называется Credential Guard.

    Для того чтобы отключить эту фишку нужно: Программы и компоненты -> Включение или отключение компонентов Windows -> Hyper-V -> Платформа Hyper-V -> Низкоуровневая оболочка Hyper-V (убрать галку)

    Сайт stackoverflow....цитата оттуда
    Ответ написан
    Комментировать
  • Как в doctrine одноразово отменить автогенерацию id сущности?

    AlekseyArh
    @AlekseyArh
    Кибер существо
    "GENERATOR_TYPE_NONE"

    $metadata = $this->entityManager->getClassMetaData(get_class($entity));
    $metadata->setIdGeneratorType(\Doctrine\ORM\Mapping\ClassMetadata::GENERATOR_TYPE_NONE);
    $metadata->setIdGenerator(new \Doctrine\ORM\Id\AssignedGenerator());
    
    $this->entityManager->persist($entity);
    $this->entityManager->flush();
    Ответ написан
    3 комментария
  • Какой редактор UML выбрать?

    Ni55aN
    @Ni55aN
    Visual Paradigm, но она платная (хотя раньше был триал, который легко сбрасывался, сейчас не знаю как там).

    Можно более универсальный использовать - draw.io, но там нету каких-либо проверок на связи, там все простые графические компоненты (зато свободы больше). Что касается детализации модулей, то можно к блоку добавить ссылку на страницу
    Ответ написан
    3 комментария
  • Как на PHP в консоли WINDOWS получить кириллический текст, введенный с клавиатуры?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    <?php
    // КОДИРОВКА В КОТОРОЙ НАПИСАН СКРИПТ
    ini_set('default_charset','UTF-8');
    mb_internal_encoding('UTF-8'); 
    
    // ВЫВОДИТЬ НА КОНСОЛЬ
    mb_http_output('IBM866');
    ob_start("mb_output_handler"); 
    
    
    // ДВОЙНАЯ ПЕРЕКОДИРОВКА . ТАК КАК ТУТ ОНА НЕПРАВИЛЬНО РАЗОБРАНА PHP
    $a = iconv('IBM866','UTF-8',iconv('CP1251','IBM866',$argv[1]));
    
    // РУССКИЕ АРГУМЕНТЫ
    echo "\nпроверка: ".$a;
    Ответ написан
    4 комментария
  • Как вызвать репозиторий в symfony 2?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    1) Что-то мне подсказывает что валится оно на чем-нибудь вроде $product->find() а не на том что вы привели.

    2) Лучше делать так

    $this->get('doctrine.orm.entity_manager')->getRepository(Organization::class)


    3) А еще лучше регистрировать репозитории как сервисы

    4) А еще лучше, не наследоваться от доктриновский репозиториев и использовать свои, которым в конструктор передавать entity manager и там уже делать что душе вздумается. Пример (так как это должно быть, в реальных проектах можно упрощать)

    class DoctrineOrganizationRepository implements OrganizationRepository 
    {
        private $em;
        public function __construct(EntityManagerInterface $em) 
        {
              $this->em = $em;
        }
    
        public function getOrganization(int $id) : Organization
        {
               $organization = $this->em->find(Organization::class, $id);
               if (!$organization) {
                     throw new OrganizationNotFoundException();
               }
     
               return $organization;
        }
    }


    По сути наше приложение не должно слишком много знать о доктрине. Ну и еще удобнее регистрировать такие сервисы:

    services:
         organization_repository:
             class: MyApp\Service\Doctrine\DoctrineOrganizationRepository
             autowire: true


    5) Не дробите приложение на бандлы. Они для того что бы реюзать код. Если вы дробите систему на бандлы с мыслью "может потом реюзаю" - это пример преждевременной оптимизации. Вам нужен только AppBundle и то только ради маленьких шорткатов.

    Зависимостей между бандлами быть не должно. Они могут зависеть от библиотек. но не от бандлов.
    Ответ написан
    3 комментария
  • Можно ли в symfony динамически внедрять зависимости?

    SerafimArts
    @SerafimArts
    Senior Notepad Reader
    По-умолчанию симфонёвый контейнер это не позволяет. Есть 3 варианта развития:
    1) Не сопротивляться и не использовать в этом случае контейнер, а использовать, например, фектори (т.е. чтобы контейнер возвращал этот самый фектори, который в зависимости от чего-либо возвращал нужный сервис).
    2) Если Symfony 3.x и нужен сервис в контроллерах, то можно использовать Param Resolver: https://symfony.com/doc/current/controller/argumen...
    3) Можно написать свой бридж на более мощный контейнер, например Laravel, в этом случае надо в обязательном порядке наследоваться от симфонёвого (чёртова симфонёвая кодогенерация) и зарегистрировать его внутри AppKernel (там есть метод получения класса контейнера).

    P.S. А ещё в последних симфонях добавили Service Locator механизм (слайс контейнера), в теории можно придумать что-нибудь с ним.
    Ответ написан
    3 комментария
  • Какие стратегии повышения зарплаты существуют?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Центральный показатель для бизнеса, а следовательно и руководителей, как людей представляющих интересы этого самого бизнеса - это коэффициент возврата инвестиций (ROI). Соответственно, сотрудник должен приносить компании больше денег, чем потребляет. Естественно, что чем выше разрыв между затратами и прибылью, тем лучше, поэтому фонд оплаты труда руководитель должен держать на том минимальном уровне, который гарантирует бесперебойную работу сотрудников. Один из факторов этой бесперебойности - низкая текучка. Сотрудников терять нежелательно. И чем ценнее для компании сотрудник, чем более он профессионален и/или чем больше на него завязано, тем дороже обходится его потеря. Натурально в деньгах. Придётся затратить больше, чем обычно, денег на поддержание работы без него. Придётся затратить деньги и время (те же деньги) на поиск, найм, введение в работу, возможно, обучение нового сотрудника. При этом он может оказаться совсем неподходящих и цикл придётся повторить. Или может оказаться просто хуже прошлого и эффективность отдела снизится. Поэтому, когда сотрудник приходит просить прибавку, руководитель оценивает может ли этот сотрудник уйти или только блефует, насколько легко его будет заменить, какой урон компании будет нанесён его уходом. Потом руководитель оценивает стоимость расширения ФОТ - есть ли резервы, какой сейчас ROI, будет ли больший ROI от реинвестиции этих средств во что-то другое? Если уход сотрудника будет стоить меньше, чем увеличение ФОТа, сотруднику откажут.

    Естественно, всё описанное справедливо для случая, когда руководитель - профессиональный менеджер. А то часто на месте руководителя сидит человек руководствующийся эмоциями и мутными соображениями вычитанными в сомнительной бизнес-литературе.

    Из этого вывод, стратегия проста - увеличивайте собственный профессиональный уровень на столько, чтобы свободно менять компанию, как только вас что-то перестало устраивать.
    Ответ написан
    4 комментария
  • Какие есть альтернативы Nelmio?

    al_gon
    @al_gon
    Ответ написан
    Комментировать
  • И все-таки PHP 7 быстрее Python 3?

    @DimaWeb
    Пишите на Python, а узкие места переписывайте на PHP.
    Ответ написан
    1 комментарий
  • Правда ли что программистам навязывают определенные мысли?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    1)обязательно надо знать математику алгоритмы и тд(даже если это не используется)

    Если хочется выйти за рамки дешевой рабочей силы - да.

    2)надо работать бесплатно на первых порах

    Зависит от навыков самообразования. Кто-то уже в школе делает деньги, а кому то и после университета сложно найти работу.

    3)создавать open source проекты бесплатно чтобы показать всем свой код

    Скорее нет

    4)всегда думать о работе даже по выходным и тд

    Если хочется выйти за рамки дешевой рабочей силы - ДА.

    UPD:
    Реальность такова, что если вы хотите выйти за рамки дешевой рабочей силы - у вас ровно 2 способа это сделать:
    а) вы можете основать собственное дело
    b) вы можете в чужом деле вырасти из человека который пишет код, в партнера который решает проблемы бизнеса ( что в конечном счете эквивалентно предыдущему пункту)

    И то и другое подразумевает что вы перестаете разделять свою жизнь и работу.
    Вы, это и есть то дело, которым Вы занимаетесь. 24/7/365.
    И это к слову сказать справедливо для практически любой сферы, не только IT.
    Ответ написан
    11 комментариев
  • Что такое ElasticSearch?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Знаете, я с вами соглашусь, что хорошую вводную по Elastic трудно найти. Пока сам не переварил доков и не набил шишек многие элементарные понятия оставались для меня неясными. Поэтому вот моя вводная: Elastic можно использовать как NoSQL БД, только надо быть внимательным, т.к. всё-таки его основная задача поиск, а не удовлетворение функций БД. Например, если вы не настроили хранение исходных данных, а только индексацию, то свои данные вы уже не извлечёте из него. НИКОГДА. Только отдельные выражения, удовлетворяющие условиям поиска. Всё, тупик. Так же нельзя повторно индексировать уже загнанные в него данные. Т.е. перед загрузкой данных надо грамотно настроить индексацию, т.к. перестроить индекс, как это делается в реляционной БД невозможно. Нужно придумать новую схему индексации и перезалить данные в Elastic. Именно поэтому основное использование Elastic - как дополнение к существующей БД из которой данные можно перезалить по одному или полностью в Elastic (можно, конечно сделать схему Elastic->Elastic, но тоже есть нюансы).
    Ещё пару слов про схему. Это ЛОЖЬ, что в Elastic нет схемы данных. Она как раз есть и ооочень жёсткая. Жёсткая до того, что однажды определив, вы не сможете её поменять. Изначально Elastic оказывает медвежью услугу, разрешая вам дополнять схему по-умолчанию, но когда вы разберётесь с этой темой, то можете обнаружить, что Elastic "понастроил" такого у себя внутри, что остаётся только охреневать и переделывать всё явно, отказавшись от его "услуг" по автоматическому добавлению полей в схему.
    Так же в Elastic очень непросто строить сложные запросы на поиск и агрегатные запросы. Совершенно неинтуитивно. Но если освоитесь, то будет вам счастье. )))
    Несмотря за такие "страшные" вещи - Elastic классная система и по производительности агрегатных запросов не уступает платной версии MSSQL в поиске в многопроцессорных системах (проверял на одинаковых аппаратных конфигурациях с 16 ядрами). Так что если вам хочется большую скорость в агрегатных запросах и главное - это бесплатность, то берите и осваивайте Elastic. Мощности и возможности у него огромные. Но... нужно потратить приличные усилия на изучение.
    Ответ написан
    1 комментарий
  • Стоит ли новичку начинать с фреймворка или лучше учиться на чистом php?

    garadash
    @garadash
    Это зависит от склада ума, энергии и подхода к обучению в целом. Грубо говоря, есть два типа людей в подходе к обучению; одним легче и комфортнее нырнуть в примеры, образцы, готовое и пытаться понять на уже сделанном и работающем как это все устроено, а другие идут дорогой от азов, простого к сложному, развивая свои умения по мере освоения. Само собой разумеется, что и в первом случае без «Базовых» знаний никуда, но кому-то хватает недели, чтобы уже взять «в руки» готовое и начать крутить, а кто-то строит свой долгий путь через освоение и создание своего.
    Ответ написан
    Комментировать