Форум программистов, компьютерный форум, киберфорум
PHP: Symfony
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 622

Стыковка Symfony и ExtJS

04.02.2020, 13:19. Показов 1774. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь повторить этот пример Как соединить ExtJS (Sencha) и Laravel на Symfony 5.04.
Сразу наткнулся на проблему получения данных из таблицы в виде json объекта.
Функция получения данных из таблицы БД имеет вид
PHP
1
2
3
4
5
6
7
8
9
10
11
12
    /**
     * @Route("/plan", name="plan_get_all")
     * Method({"GET"})
     *
     */
    public function plan() {
 
        $plans = $this->getDoctrine()->getRepository(Plan::class)->findAll();
        $response = new Response();
        $response->setContent(json_encode($plans));
        return $response;
    }
В переменной $plans данные имеются (картинка 1)
А на выходе ($response картинка 2) пустая матрица
Подскажите пожалуйста что не так в функции.
Миниатюры
Стыковка Symfony и ExtJS   Стыковка Symfony и ExtJS  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.02.2020, 13:19
Ответы с готовыми решениями:

Не стыковка имен компьютеров
Здравствуйте. В моей организации имеется домен контроллер на W2k3 и DNS сервер отдельно на Linux, когда я пришел он уже работал при его...

Стыковка ПК с телефоном по bluetooth
Привет...Подскажите! может что то я не так делаю...Стыковка телефона с ПК есть...даже файлы передавал...но в лабвью чего не работает...

Стыковка сервера HP и коммутатора HP-1920
Добрый день. Столкнулся с такой проблемой. На сервере HP есть две сетевые карты, два порта я объединяю в team. И далее соответственно...

9
04.02.2020, 14:43

Не по теме:

если вам ради интереса интересно стыковать на разных ФВ одно и тоже, то почему вы не попробуете разобраться с этим сами?

0
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 622
04.02.2020, 14:59  [ТС]
Это Ваш ответ? А по теме?
Ясный пень не ради интереса. Выясняется возможность, плюсы и минусы, применения ExtJS в паре с современным PHP фреймворком для конкретного проекта.
К сожалению примеров на эту тему не нашел. Так бы и не заморачивался...
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
04.02.2020, 15:30
по теме - дебаг в помощь. json_last_error_msg вернет ошибки, которые возникли. А на 99 % проблема в сериализации объекта, которая по дефолту, при использовании обычной json_encode, и когда не имплементируют интерфейс JsonSerializable для переопределения алгоритма, работает совсем не так, как вы можете ожидать. Сами можете проверить.
PHP
1
2
3
class Foo { protected $closed = 1; public $opened = 1; }
$obj = new Foo();
var_dump(json_encode($obj));
Для симфони есть JMSSerializerBundle, например, который позволяет без излишних модификаций сериализовать все что вы хотите.

Не по теме:

Цитата Сообщение от VlGuvin Посмотреть сообщение
Выясняется возможность, плюсы и минусы, применения ExtJS в паре с современным PHP фреймворком для конкретного проекта.
Бред. К любому фремйворку можно прикрутить все, что угодно, хоть ExtJS, хоть что-то еще. Главное, это определиться со способом обмена данными. А то, что вы делаете - просто ради интереса, не более.
З.Ы. Ларавел, который вы смотрели до этого, основан, в общем-то, на симфони. Неужто нелогично, что в симфони это все также возможно?

З.З.Ы. В дальнейшей помощи вам не вижу никакого смысла, ввиду вышесказанного.

0
 Аватар для Borsche
183 / 110 / 44
Регистрация: 03.07.2016
Сообщений: 496
04.02.2020, 16:23
Цитата Сообщение от VlGuvin Посмотреть сообщение
Подскажите пожалуйста что не так в функции.
Если я не ошибаюсь json_encode в обьекте сериализует только публичные поля, а они у вас по видимому приватные. Так вот как выше вам посоветовали используйте JMS бандл. Ну или руками в масив превращайте и для ajax запроса JsonResponse.

А вообще в симфони есть свой сериалайзер (The Serializer Component) Его вам хватит
0
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 622
04.02.2020, 16:49  [ТС]
Бред. К любому фремйворку можно прикрутить все, что угодно, хоть ExtJS, хоть что-то еще
Для меня это не очевидно. Я не специалист по фреймворкам.
Что за манера у модераторов этого форума обязательно оскорбить за для самоподтверждения своего величия?
На форум приходят не только спецы, но и дилетатны.
Каждый участник форума, кем-бы он ни был спецом или дилетантом открытыми темами добавляет трафик форуму, который в конечном счете выливается в деньги.
У меня плохая репутация... просьба соблюдать вежливость и общаться только по теме.
не имплементируют интерфейс JsonSerializable
Не понял про интерфейс...
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        $plans = $this->getDoctrine()->getRepository(Plan::class)->findAll();
 
        $arrayCollection = array();
 
        foreach($plans as $item) {
            $arrayCollection[] = array(
                'id' => $item->getId(),
                'filialName' => $item->getFilialName(),
                'consumerName' => $item->getConsumerName(),
                'disconnDate' => $item->getDisconnDate(),
                'connDate' => $item->getConnDate(),
            );
        }
 
        $arrayCollection->add($plans);
 
        return new JsonResponse($arrayCollection);
Вот таким макаром все работает как надо.
Возвращаемые данные полей таблицы должны быть элементами матрицы, которая в свою очередь принадлежит коллекции.
Посему вопрос. Как в $arrayCollection добавить $plans просто и без манипуляций foreach($plans as $item)?
Неужели в нет никакого метода типа add() (добавить в коллекцию)?

Добавлено через 12 минут
Опечатка. Должно быть так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
        $arrayCollection = array();
 
        foreach($plans as $item) {
            $arrayCollection[] = array(
                'id' => $item->getId(),
                'filialName' => $item->getFilialName(),
                'consumerName' => $item->getConsumerName(),
                'disconnDate' => $item->getDisconnDate(),
                'connDate' => $item->getConnDate(),
            );
        }
 
        return new JsonResponse($arrayCollection);
Добавлено через 3 минуты
Если я не ошибаюсь json_encode в обьекте сериализует только публичные поля, а они у вас по видимому приватные
Да. Поля приватные.
Спасибо за подсказку.
Понятно почему в ответе пустая матрица.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
04.02.2020, 19:09
И где же я вас оскорбил? И каким образом я вдруг самоподтвердил свое величие (которого у меня нет, кстати, по крайней мере я так считаю) ?
И не надо меня приписывать к модераторам форума, я давно не модерирую ничего, и мой статус - просто дань прошлым временам (заслуженная или нет - это уже другой вопрос и не ко мне).

Касательно того, что, видимо, вы посчитали оскорблением, могу перефразировать - попытки прикрутить какое-то средство к различным фреймворкам без дальнейшего использования на практике является ничем иным, как обычным интересом (от нечего делать, зачастую), а все современные фреймворки позволяют прикрутить что угодно (и тем более в симфони и ларавел - второй так вообще вовсю использует части первого). И намного полезнее пытаться разобраться самому, а не сразу создавать тему. Привыкайте не только пользоваться дебаггером, но и понимать, что у вас происходит в коде. Раз на выходе массив с одним пустым объектом - значит, неправильно отработала либо setContent, либо json_encode. А если мыслить шире, то станет ясно, что сам json_encode работает нормально (что видно по результату), но объект превращается в пустой на выходе. Достаточно забить в поиск нечто вроде "json_encode object" и можно найти несколько вариантов решения. А ещё лучше будет вернуться к чтению документации и понять, что есть средства, предназначенные для дебага, которые работают и с закрытыми полями (var_dump, например), а есть те, которые предназначены для клиента, и они по умолчанию не трогают закрытое.
0
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 622
05.02.2020, 19:35  [ТС]
попытки прикрутить какое-то средство к различным фреймворкам без дальнейшего использования на практике является ничем иным, как обычным интересом
Позволье с Вами не согласиться. В результате стало понятно, что Symfony совершенно не подходит. Тяжеловесный фреймворк, к тому еще и трудный для понимания. Не буду вдаваться в подробности. Прикручивать ExtJS к нему всервно что стрелять из гаубицы по воробьям.
Лучшим образом подходит Laravel. Также подходит Codeigniter на котором и был сделан один из старых проектов. Сейчас возобновилась его поддержка. В смысле Codeigniter_а. Как-то так...

Кому интересно, ссылка на тест Laravel + ExtJS ниже по тексту. Слепок базы в папке database.
https://bitbucket.org/yguvin/l... rc/master/
Тест на Symfony не закончен поскольку стало ясно, что паровать его с ExtJS не имеет смысла.
https://bitbucket.org/yguvin/s... rc/master/

Добавлено через 6 минут
0
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 622
06.02.2020, 21:45  [ТС]
Тест на Symfony сделал. Смущает отображение даты (картинка)
Миниатюры
Стыковка Symfony и ExtJS  
0
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 622
06.02.2020, 23:56  [ТС]
Дату пришлось отформатировать
PHP
1
format('Y-m-d H:i:s')
Слепок базы в корне проекта.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.02.2020, 23:56
Помогаю со студенческими работами здесь

Подскажите, стыковка пройдет нормально?
Корпус----------------------GameMax H601BR Blue Led Видюха----------------------ASUS GeForce GTX 1060 3GB GDDR5 DUAL ...

Стыковка абстрактного класса и реализации
Есть абстрактный класс "Паспорт". Есть несколько конкретных классов, пример "Внутренний паспорт", "Заграничный паспорт",...

Стыковка IntraWEB c RBK-money
Добрый день ! Стоит задача взаимодействия с платежной системой RBK-money. Приложение написано на Делфи + IntraWEB. По сути решение...

Стыковка Excel и MS SQL Server через Access
Подскажите, как поступить... Имеются файлы Excel. Из них посредством интерфейса на Access нужно перекачать данные в таблицу MS SQL и...

ExtJS
Всем привет! Обнесите пожалуйста простым языком как подключить EXTJS на Asp.net Mvc 4 ) спасибо! Замучило уже )


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru