• Как в Symfony2 в security правильно настроить работу с HTTPS?

    myrkoxx
    @myrkoxx
    developer
    естественно страница авторизованного личного кабинета не вывелась, вручную к адресу project.local/account дописал https:// - получилось https://project.local/account


    как по мне ето побольше к серверу. Вам надо настроить редирект с http на https если хотите работать только с https. В nginx ето делаеться так:

    server {
        listen 80 default_server;
        server_name  YOURWEBSITE.com;
    
        return 301 https://$server_name$request_uri;
    }
    // дальше обычный конфиг:
    
    server {
        listen 80;
    
        server_name YOURWEBSITE.com;
        // ....
    
    }
    Ответ написан
    2 комментария
  • Исключение для preg_replace?

    profesor08
    @profesor08 Куратор тега PHP
    Потренируйтесь тут: https://regex101.com/
    Ответ написан
    Комментировать
  • Как получить доступ к репозиторию в сущности?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Как получить доступ к репозиторию в сущности?

    Вы не должны этого хотеть. Это противоречит самому понятию Repository-Entity.
    Репозиторий - работает только с БД и только с этити.
    Энтити - только хранит в себе данные и более ничего.

    Не пытайтесь превратить Repository в ActiveRecord, добром это не закончится.

    Если вам нужны зависимые энтити - тогда пропишите их в аннотациях.

    Если нужно вызывать именно метод репозитория: это делается через DI в сервисах, либо через $this->getDoctrine()->getManager()->getRepository('AppBundle:MyEntityName') в контроллерах.

    Конкретно в вашем примере: вы должны объявить сервис, в который будет насетапливаться EntityManager.
    Ответ написан
    Комментировать
  • Есть ли смысл от сверки пароля?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    В данном случае понятие "лучше" неприменимо - это две равноценных альтернативы со своими плюсами и минусами. Выбирайте любую, недовольные будут в любом случае :)
    Ответ написан
    Комментировать
  • В чём ошибка при установке composer?

    @IceJOKER
    Web/Android developer
    Там же белым по черному написано в чем проблема.
    установите php и будет вам счастье
    Ответ написан
    2 комментария
  • Как компенсировать задержку?

    freevital
    @freevital
    Full-Stack Web Developer
    Ответ написан
    Комментировать
  • Почему mysql заносит записи на второй раз?

    kylt_lichnosti
    @kylt_lichnosti
    А так разве можно писать:
    INSERT INTO `gost` SET `user_id` = "%s", `date` = "%s", `content` = "%s"


    Вроде как:
    INSERT INTO `gost` () values()
    Ответ написан
    1 комментарий
  • Почему конструктор не возвращает строку?

    @krypt3r
    <?php
    class ClassName
    {
        function __construct($text)
        {
            return "sometext $text";
        }
    
        function __toString()
        {
            return 'Чертовы извращенцы.';
        }
    }
    
    echo new ClassName('new text');
    Ответ написан
    1 комментарий
  • Как запретить json_encode сортировать?

    DirecTwiX
    @DirecTwiX
    "display: flex;" уже предлагали?
    Массив на сервере формируй, а ключ внутрь элемента вставляй:
    taxes: [
    {
    id: 333,
    tax: 20,
    cur: EUR
    },
    {
    id: 222,
    tax: 10,
    cur: RUR
    },
    ]
    Ответ написан
    2 комментария
  • Как загрузить сразу все изображения в одно поле в БД?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Вы пытаетесь отстрелить себе яйца, причем разрывными патронами((

    1. explode - для работы с "прогнозируемыми" строками вполне норм, у вас же файлы, могут быть вообще бинарные, например картинки. В случае попадания на delimiter посреди файла - получите кучу мусора. "explode" в смысле "взрыв" - это очень подходящее слово.

    2. В БД хранить файлы - не хорошо, вы будете ушатывать БД просто так. Самое интересное - как вы бэкапы планируете делать)) Объемы будут расти очень быстро.

    3. Вариант со строкой еще плох тем, что помимо содержания вам нужно будет где-то хранить и мета информацию о файле: MIME тип, название (хотя бы расширение).

    4. Отдача файлов, вот тут тоже веселье: допустим получив мега строку вы разделите ее на куски и вытащите таки свой заветный файл, потом будете отдавать его через echo, это будет на порядок дольше, чем через web сервер на прямую.

    5. Память на php: что будет, если ваша мега строка занимает 500мб? PHP с настройками по умолчанию сдохнет, даже не дочитав его.

    В общем: для хранения файлов используйте БД специально спроектированную для хранения файлов. Это файловая система. Если очень хочется шардирования для снижения нагрузки - можете посмотреть в сторону решений на базе mogilefs.
    В MySQL при этом стоит хранить только нужную дополнительную информацию о файле, например: путь, md5, некий идентификатор,...
    Сам файл лучше при сохранении приводить к такому виду:
    1. Берем md5 хэш от файла md5_file, допустим он у нас получился 01230000000000000000000000000000
    2. Перемещаем его в каталог: {UPLOAD_ROOT}/01/23/0000000000000000000000000000. Тут смысл в том, что при большом количестве файлов в одном каталоге будут проблемы с файловой системой по части производительности. В принципе можно оставить оригинальное расширение, тогда шаг 4 не нужен.
    3. В БД храним md5 хэш, путь к файлу и MIME-тип, можно еще и оригинальное имя.
    4. При запросе на вашу страницу - отдаем через x-accel-redirect, или x-sendfile
    Ответ написан
    2 комментария