• Подсоединиться к другой схеме Symfony - Doctrine?

    @Lobanov Автор вопроса
    Кто-то написал ответ, но удалил его, на почту пришло уведомление, надеюсь автор найдется и я смогу отметить его комментарий решением, т.к. пришлось пойти его путём.

    У меня Symfony 6.4.3 установлен orm-pack (этот пакет подтянул Doctrine v. 2.17).

    Я хотел на верхнем уровне, в настройках doctrine.yaml указать свою схему PostgreSQL, чтобы Doctrine сразу в этой схеме работала, но к сожалению не нашел быстрого решения для такой реализации. На просторах stackoverflow встретил такое решение, но отмеченный галочкой ответ мне не совсем по душе, поэтому решил воспользоваться комментарием от неизвестного комментатора и плюс это же решение предложено на странице stackoverflow.

    В общем, у сущности буду указывать атрибут #[ORM\Table(name: 'schema_name')] - этот атрибут будет говорить Doctrine, что нужно создать сущность в схеме под именем schema_name. Но тут появляется другая проблема, таблица для отслеживания миграций появляется в схеме public, т.е. таблицы сущностей в одной схеме, а таблица миграций в другой схеме.

    Меня этот расклад не устроил, мне нужно чтобы все таблицы лежали в одной схеме, поэтому в файл config/packages/doctrine_migrations.yaml добавил в самом верху раздел storage

    storage:
          # Default (SQL table) metadata storage configuration
          table_storage:
            table_name: '%env(resolve:SCHEMA_NAME)%.doctrine_migration_versions'


    Также хотел, чтобы название схемы для миграций задавалось не в yaml файле, а в переменной, задействовал файл .env, в нем сделал переменную SCHEMA_NAME в которой указал схему. В результате миграции создаются в нужной мне схеме.

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

    Надеюсь это кому-нибудь поможет) И неизвестный комментатор, продублируй пожалуйста свой ответ, чтобы я его отметил решением, т.к. твой ответ лег в основу моего решения.
    Ответ написан
    Комментировать
  • Получаю Permission denied при запуске composer из Docker, как исправить?

    @Lobanov Автор вопроса
    Проблема была сугубо в правах каталога, где лежит мой проект, т.е. эту папку я монтирую в Docker. Так как права на папку были 775 соответственно пользователь из Docker используя php-cli не мог писать в эту папку что-либо, если меняем права на 773 (т.е. позволяем остальным юзерам писать в папку и производить запуск файлов) - все начинает работать. Из-за того, что я работаю на локальной машине и кроме меня никого на ней нет, решил выставить права 777 на каталог где лежим мой проект.
    Ответ написан
    Комментировать
  • Есть какая-нибудь книга как продвигать it project или статья?

    @Lobanov
    Самая первая книга, которую просто для ознакомления стоит прочитать - Lean StartUp, там конечно воды дохрена, но ключевая мысль - надо все тестить.

    По факту, перед написанием кода надо было задаться вопросом - для кого этот продукт? Кто целевая аудитория?

    Если вы не знаете и не понимаете целевую аудиторию - у вас большие проблемы. Вы пишите код, фишки, прибаутки - которые по итогу могут быть никому не нужны, т.к. в голове у вас одна картина мира, а в реальности совсем другая.

    Поэтому, перво на перво, выходим в поле и общаемся с целевой аудиторией, выясняем, какие боли и проблемы у них есть. Ищем эту ЦА, проводим интервью и далее уже вырисовывается картинка того, что хотят люди, затем делаем минимальную версию, которая может выглядеть как говна кусок, но если она помогает людям решить проблему, докручиваем, дальше повторяем итерацию до бесконечности!

    Все.

    Проще всего вам взять таргетолога, зафигарить лендосик, налить таргета на лендос, собрать контакты, провести хотя бы 50 интервью, лучше конечно 100, для чистоты данных. Сделать аналитику этих интервью и людей, которых вы интервьюировали и только после этого приступать к написанию кода. Это позволит вам сэкономить сотни, а то и тысячи часов работы.

    Если вы начали писать код для решения своей личной задачи, прикинуть, где могут находиться люди с аналогичными вашими проблемами, которые вы сейчас решаете с помощью написанного инструментария. Пойти туда и показать этим людям ваше решение.

    Кстати, вот недавно курс попадался https://simulator.gopractice.ru/ хз конечно норм он или нет, но просто для информации, может что-то вам зайдет с этого сайта.
    Ответ написан
    1 комментарий
  • На сайте иногда появляется слово Реклама, что это?

    @Lobanov
    Возможно вас спасет установка SSL сертификата. Где-то здесь на форуме я задавал аналогичный вопрос. У заказчика был оператор МегаФон на мобильном устройстве, с которого он заходил к себе в админ.панель, которую я написал для него, видел рекламу. Поставил SSL сертификат, все стало норм.
    Ответ написан
    Комментировать
  • Какие популярные проекты написаны на Flask?

    @Lobanov
    Изучайте - сотни компаний, которые юзают данный микрофреймворк.
    Ответ написан
    Комментировать
  • Парсер сайта с прокси?

    @Lobanov
    Если знакомы с Python'ом, можете заюзать связку Python + Scrapy + Splash + Proxy - получится весьма мощная система, которая умеет все что вам нужно, от парсинга простых сайтиков, до сайтов, которые работают с front-end фреймворками.
    Ответ написан
    5 комментариев
  • Можно ли отправить сообщение в Direct Instagram с помощью API и также получить оттуда сообщение?

    @Lobanov Автор вопроса
    Нашел ответ на свой вопрос и он оказался очень печальным! Такой возможности нет, после 2016 года.
    Ответ написан
    Комментировать
  • Самый простой способ оплаты для сайта?

    @Lobanov
    Цепляйте Я.Деньги, проще всего прикрутить, ни каких лишних телодвижений не надо, здесь лежит документашка, как Я.Деньги прикрутить физ.лицу, без каких-либо бумажек и т.д.

    У Я.Деньги есть возможность выпустить карточку, которая автоматом привязывается к вашему счету - все деньги приходящие на счет Я.Деньги сразу у вас на карте. Profit!
    Ответ написан
    2 комментария
  • Как добавить динамический watermark в уже существующий pdf файл??

    @Lobanov Автор вопроса
    Вопрос решен вот этим способом - клик
    Ответ написан
    Комментировать
  • Проблема с json_encode латиницу выводит, русские символы нет?! Как быть?

    @Lobanov Автор вопроса
    Прежде чем что-то делать - посмотрите кодировку Вашего файла!))) Он должен быть обязательно в UTF-8!! Это и оказалось злом в моем случае, простая оплошность и не внимательность!)))
    Ответ написан
    1 комментарий
  • Как побороть несовпадение хэшей в робокассе?

    @Lobanov Автор вопроса
    Вопрос решен!
    Дело в том, что на сакцесс формируется хэш из данных которые пришли от робокассы, но подсоленые вашим вторым паролем. А я вытаскивал данные из БД и засовывал их в хэш. Хорошо что у робокассы тех.поддержка адекватная, разъяснили этот момент. в сравнении хэшей БД вообще не участвует! Это нужно помнить новичкам! :)
    Ответ написан
    Комментировать
  • Следует ли использовать мобильный редирект на сайте? И как его прописать через .htaccess?

    @Lobanov Автор вопроса
    Спасибо тем кто ответил и тем кто ищет ответ - лучше не использовать мобильный редирект через .htaccess, т.к. поисковики будут думать что вы злодей! :) Лучше разместите вот этот код на главной странице
    function isMobile() {
    
    var a = (navigator.userAgent||navigator.vendor||window.opera);
    		if(/android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))){ 
    		return true;
    		} 
    
    return false;
    }
    
    if(isMobile() === true) {
        var question = confirm("Вы зашли с мобильного устройства. Хотите перейти на мобильную версию сайта?");
    }
    
    if(question === true) {
    		window.location  = 'http://site.ru/mobile/page.html';
    }

    Взят код из этой темы

    Лучше спросить юзера хочет он перейти на моб.версию или нет. :) И этот скрипт отлично справляется со своей работой! :)
    Ответ написан
    Комментировать
  • Как написать простую партнерскую программу? Точнее волнует структура БД

    @Lobanov Автор вопроса
    Всем спасибо, структуру я сам создал. буду теперь ее тестировать и доводить до ума! Отличных всем праздников!
    Ответ написан
    Комментировать