Задать вопрос
  • Как использовать Jms Serializer с Doctrine с настройкой Lazy?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Аннотация @Accessor

    /** @Accessor(getter="getName") */
    private $name;
    
    public function getName()
    {
         return $this->name;
    }

    При вызове указанного геттера произойдет вызов и запрос. Соответственно lazy вернет результат.

    Если yaml, то в той же доке указано как задать аксессор.
    Не забудьте почистить кеш (не всегда чистится консольной командой, удалите папку jms - когда с 3й работал, то были такие глюки) .


    А вообще, если пишите с нуля, то знайте — от JMS Serializer все уходят в сторону Symfony Serializer
    В контейнере уже должен быть у вас сервис @serializer сразу после установки компонента и можно просто заинжектить через SerializerInterface в конструкторе
    Ответ написан
    5 комментариев
  • Symfony - в чём разница между listener и subscriber, и что означает теговать (tags)?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Listener — слушатель одного или более событий, некий такой атомарный исполнитель. Не знает на что он подписан, но легко управляется через конфигурацию. Если разные слушает — нужно самому логику разделения обработки писать.
    Subscriber — подписчик имеет реализацию интерфейса SubscriberInterface с методом getSubscribedEvents(), то есть сам объект слушателя знает, на что он подписан и какие методы какие события будут отрабатывать

    По сути одно и тоже, но такая разница иногда пригождается. Иногда нужно иметь контроль снаружи, иногда наоборот.

    Теги — отдельный механизм контейнера. Проставляя тег на набор сервисов — мы во время компиляции контейнера можем достать помеченные определенным тегом сервисы и заинжектить в др сервис (очень часто используется мной например), отсортировать по допатрибутам или сделать любую иную логику
    https://symfony.com/doc/current/service_container/...
    Ну например есть десяток сервисов, которые обрабывают каждый свой тип файла, еще и лежат в разных бандлах. Как получить их в одной фабрике? Правильно — проставить им тег, в компиляторе приложения достать все и в фабрику засунуть. При появлении нового сервиса с тегом - он автоматом будет в фабрике.

    В коде самого фркймворка этот механизм активно используется. Например есть разного рода констрейнты - добавить новый вы можете и автоматом зарегистрировать, проставив тег (на самом деле симфони-разработчики пошли дальше и тег навешивают по интерфейсу, но важен механизм) и данный констрейнт будет доступен коду, в котором требуются все констрейнты (опять той же фабрике)
    Ответ написан
    Комментировать
  • Знает кто нибуть хороший инструмент для создания Thumbnails?

    @antimind
    Intervention Image устроит?
    Ответ написан
    Комментировать
  • Как решить задачу Авторизации на React Native?

    @DragonSpirit
    Mobile Developer
    Я бы не хранил такие данные в AsyncStorage, для такого есть react native keychain и им подобные библиотеки
    Ответ написан
    Комментировать
  • Переадресация порта, как осуществить - Apache Java Server?

    @alx0
    Помогло? Отметь решением
    Да, конечно.
    Используйте mod_proxy
    Например:

    <VirtualHost *:80>
     ProxyPreserveHost On
     ProxyPass / http://127.0.0.1:55965/
     ProxyPassReverse / http://127.0.0.1:55965/
    </VirtualHost>
    Ответ написан
    Комментировать
  • Как правильно прописать свой service.yaml в бандле в Symfony4?

    @Flying
    Это описано в документации Symfony. Вкратце, есть два пути - через подключение конфигурационного файла непосредственно (рекомендуется только для "внутренних" конфигурационных файлов) и через написание bundle extension (как раз рекомендуется для bundles). Если у вас именно внешний по отношению к приложению bundle - то пишите bundle extension, там есть всё необходимое для подключение файлов конфигураций.
    Ответ написан
    1 комментарий
  • Как правельно прописать в Symfony 4 Routing annotations для своего бандла??

    Maksclub
    @Maksclub
    maksfedorov.ru
    How to Include External Routing Resources
    По ссылке:
    • как указать, если роуты в аннотациях контроллеров бандла
    • как указать, если роуты в конфиге в бандле
    • как указать, если роуты в папке в бандле
    Ответ написан
    Комментировать
  • Где найти базу городов как у Airbnb?

    @VisualIdeas
    Много работаю с такими системами, вариантов много
    На самом деле предложу свои 3 варианта:
    1) download.geonames.org/export/dump
    2) wiki.openstreetmap.org/wiki/Nominatim это nominatim.openstreetmap.org но тама тоже лимиты, но с применением прокси все решаемо, также можно свой собственный номинатим реализовать но нужен крутой серв и время)))
    Я первый раз через прокси всю землю собрал - все точки на карте которые имеют страны - мне нужны были координаты стран именно, чтобы потом скормить их гугломапсу уже)
    3) Гугломапс - но лимит 2500 запросов в сутки, но есть варианты) Например парсить не через геокодер, а через АПИ мест https://developers.google.com/places/web-service/search
    Можно скармливать точку и узнавать её адрес, если ввести номер карты то бесплатно уже не 2500 запросов а 150 000 - а это уже нормально, можно иметь 5-6 аккаунтов на карты родственников и будете счастливы) (у меня лимит полтора ляма в сутки)
    Если вы хотите реализовать на сайте выпадающий список с подсказками то не изобретайте велосипед и ставьте подсказки гугл мапс - причем как пользователю добавляющему инфу, так и тому кто ищет - и данных храните . в БД и будет вам счастье, тама при подсказках можно настроить что позволять вводить, например тока адреса, тока города - покопайтесь внимательно https://developers.google.com/maps/documentation/j...
    И также если введете кредитку то будет до 150 000 запросов в сутки - а этого даже если вы делаете Airbnb то на первый год работы вам хватит, а за это время и БД наберете и денег на платные пакеты
    Ответ написан
    2 комментария
  • Где найти базу городов как у Airbnb?

    @g00dv1n
    https://www.wikidata.org/ - там есть интерфейс для доступа https://query.wikidata.org/
    Но это язык - https://ru.wikipedia.org/wiki/SPARQL

    wikidata - проект для доступа ко всей базе знаний вики. Очень мощная штука.. Можно кучу всего спарсить.

    Для примера парсил базу из городов на разных языках с их гео координатами.
    Ответ написан
    Комментировать
  • Jquery - multidimensional array - как пробежаться по Массиву и изменить данные?

    BRAGA96
    @BRAGA96
    У Вас массив объектов и Вы хотите изменить свойство объекта по ключу. Для этого нужно пробежаться циклом по массиву, чтобы найти объекты и пробежаться по ключам объекта, чтобы найти нужные ключи и изменить их значения.
    var array = [{"id":"3","info":"my Info","startDate":"Fri Jun 08 2018 00:00:00 GMT+0200","endDate":"Thu Jun 21 2018 00:00:00 GMT+0200"},{"id":"4","info":"my Info 2","startDate":"Thu Aug 02 2018 00:00:00 GMT+0200","endDate":"Mon Aug 20 2018 00:00:00 GMT+0200"}];
    for (var object in array) {
    	for (var key in array[object]) {
    		if (key === 'startDate' || key === 'endDate') {
    			array[object][key] = new Date(array[object][key]);
    		}
    	}
    }
    console.log(array);


    Или можете запихнуть это в функцию, задать нужные ключи и в callback функции изменять значения.
    var array = [{"id":"3","info":"my Info","startDate":"Fri Jun 08 2018 00:00:00 GMT+0200","endDate":"Thu Jun 21 2018 00:00:00 GMT+0200"},{"id":"4","info":"my Info 2","startDate":"Thu Aug 02 2018 00:00:00 GMT+0200","endDate":"Mon Aug 20 2018 00:00:00 GMT+0200"}];
    
    changeArray(array, ['startDate', 'endDate'], function(value) {
    	return new Date(value);
    });
    
    function changeArray(array, keys, change) {
    	var find = function(key) {
    		if (typeof keys === 'string') {
    			return key === keys ? true : false;
    		} else if (Array.isArray(keys)) {
    			return keys.includes(key);
    		}
    	};
    	for (var object in array) {
    		for (var key in array[object]) {
    			if (find(key)) {
    				array[object][key] = change(array[object][key]);
    			}
    		}
    	}
    	return array;
    }
    Ответ написан
    Комментировать
  • Symfony 4 - Doctrine - Repository как вытащить правельный тип данных??

    DevMan
    @DevMan
    по дефолту пдо получает числа как строки, и это при должном желании элементарно лечится.

    рецепт для пдо - Можно ли при запросе из БД получить цифру?
    рецепт конкретно для доктрины - https://coderwall.com/p/goyc8w/how-to-stop-doctrin...
    Ответ написан
    5 комментариев
  • Symfony 4 использование Form Type и Bootstrap 4, как использовать GRID?

    voronkovich
    @voronkovich
    Да, вам нужно будет создать свою тему, в которой переопределить виджет form_row. Подробнее см. здесь: symfony.com/doc/current/form/form_customization.html

    symnoob, Там есть в точности ваш случай, когда надо добавить css-клаcc: symfony.com/doc/current/form/form_customization.ht...

    Дальше у вас есть два варианта: symfony.com/doc/current/form/form_customization.ht...

    Если у вас в разных местах нужны разные классы, то лучше просто делать все вручную: https://symfony.com/doc/current/form/rendering.htm...
    Ответ написан
    Комментировать