Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
iKatkovJS

Игорь Катков

Symfony Developer
  • 0
    вклад
  • 16
    вопросов
  • 6
    ответов
  • 33%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Простой проект Symfony плюс DDD?

    dzubchik @dzubchik
    Недавно столкнулся из похожей проблемой, сейчас пробуем применять практики DDD в проекте на symfony. Советую посмотреть на репозитории:

    https://github.com/codeliner/php-ddd-cargo-sample
    https://github.com/dddinphp/blog-cqrs
    https://github.com/TheBigBrainsCompany/symfony-cqr...

    А также почитать статьи и книги:
    • Эрик Эванс - Предметно-ориентированное проектирование
    • Вон Вернон - Реализация методов предметно-ориентированного проектирования (очень крутая книга, более конкретная чем первая)
    • williamdurand.fr/2013/08/20/ddd-with-symfony2-maki.../
    • https://carlosbuenosvinos.com/doctrine-25-ddd-enti.../
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Простой проект Symfony плюс DDD?

    xfg @xfg
    Простого не видел, ddd все таки для энтерпрайз решений, которые едвали могут быть простыми. Из всего что видел этот пример на Java самый адекватный https://github.com/citerus/dddsample-core

    Вроде как этот пример проверял сам Эрик Эванс, автор ddd. Я сам не знаком с Java, но из примера покрайней мере можно понять, что примерно должно лежать в application, domain и infrastructure слоях https://github.com/citerus/dddsample-core/tree/mas...

    Может также будет полезно www.yiiframework.ru/forum/viewtopic.php?f=34&t=38264 там я сам спрашиваю у более опытных разработчиков про ddd. У самого куча вопросов. Проблема еще осложняется тем, что когда читаешь SO, то взгляд на одни и те же вещи зачастую расходится или идея остается ясна не до конца и это еще больше запутывает.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Хорошая ли практика привязываться к ивентам Doctrine?

    by25
    Andrey Kulikovsky @by25
    Веб-разработчик
    Для таких целей лучше использовать события. А лучше domain-event.
    Пример тут: https://github.com/fesor/domain-events
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Стоит ли изучать GoLang вместе с изучением алгоритмов?

    Gizmothron @Gizmothron
    Go не является языком совершенно другой парадигмы.
    PHP является императивным.
    Go является императивным.

    Другая парадигма - это Erlang, Haskell, Nemerle.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Стоит ли изучать GoLang вместе с изучением алгоритмов?

    abcd0x00 @abcd0x00
    Можешь изучать Python3.x , он как раз и лучше PHP, и хорош для изучения алгоритмов (приближен к псевдокоду).

    Подумал вот о чем - стоит ли для этого выбирать GoLang?

    Нет. Просто нет.
    Ты можешь его изучить ради моды, но ты много будешь трахаться с самим языком, потому что это такой костюм от очень известных кутюрье, который они сшили только вчера, и из которого отовсюду торчат нитки (а иногда и целые тряпки), а некоторые карманы ещё будут перешивать с левой стороны на правую и с правой на левую.
    Ответ написан более трёх лет назад
    37 комментариев
    37 комментариев
  • Стоит ли изучать GoLang вместе с изучением алгоритмов?

    pav5000
    Александр Павлюк @pav5000
    Go не подходит на роль языка "совершенно другой парадигмы". Если хотите такой язык, гляньте в сторону Haskell, Clojure, Lisp.
    Go подходит на роль языка с нестандартным ООП и нестандартной работой с многопоточностью.
    Для общего развития точно стоит его посмотреть. Прежде всего, он более низкоуровневый, чем ПХП, соответственно, вы сможете увидеть и понять некоторые вещи, о которых раньше не задумывались, которые были незаметны пользователю в ПХП, но тем не менее важны для понимания. Плюс, поработаете с компилируемым языком.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как подгрузить сервис из контейнера в Symfony 2.7, PHPUnit?

    prototype_denis
    Денис @prototype_denis
    Symfony
    1) $client = static::createClient(); $client->getContainer()->get('foo');
    2) symfony.com/doc/current/cookbook/email/testing.html
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Есть ли на Symfony 2.8 обучающея литература на русском?

    Preemiere
    Константин Грачев @Preemiere
    Symfony developer
    Тоже на старте читал указанное. Но в итоге самыми полезными были Symfony Book, Symfony Cookbook и Symfony Best Practices на официальном сайте www.symfony.com
    Бери гугл.транслейт и не спеша читай, без английского всё равно никуда.
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • Есть ли на Symfony 2.8 обучающея литература на русском?

    semki096 @semki096
    Книгу "PHP обьекты, шаблоны и методики программирования" Мэтт Зандраст. Не по симфони, но пожалуй полезнее любого туториала.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как решить проблему с роутингом в Symfony 3?

    Fesor
    Сергей Протько @Fesor
    Full-stack developer (Symfony, Angular)
    Можно их как-то объединить?

    Вы можете указать у двух правил маршрутизации один экшен контроллера. Но не "объеденять правила". В целом не рекомендую "объеденять" эти штуки. С дублированием по другому борятся.

    По следующей проблеме - trailing slashes. читаем доку.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Есть ли смысл покрывать тестами контроллер?

    Vesax @Vesax
    Имеет смысл покрывать функциональными тестами, элементарно на статус 200 например.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Что отличает сущность вызванную Doctrine (методом find) от той которую мы сами создали?

    Fesor
    Сергей Протько @Fesor
    Full-stack developer (Symfony, Angular)
    Ведь тот же метод $em->persist(...); мы используем и для обновления записи.


    Вообще-то нет. По умолчанию persist используется для того, что бы добавить сущность в UnitOfWork. Вызывая его доктрина начинает разбираться, нам надо просто замерджить сущность в текущий UoW или добавить ее в очередь на вставку.

    Вызывать persist при обновлении не нужно вовсе, можно обойтись merge, и только если у нас используется политика отслеживания изменений deferred-explicit, но это нужно в очень редких случаях. Например когда в рамках одного запроса мы должны загрузить из базы сотню-другую сущностей а обновить одну. В этом плане данная политика отслеживания изменений сильно ускоряет работу UoW, так как мы явно указываем за какими сущностями нам следить (сложность алгоритма UoW - O(N), так что чем меньше N тем быстрее работает). Единственное НО - это сильно усложняет работу с entity manager (по хорошему em должен быть только в репозитории), и в принципе ломает красивую концепцию persistence ignorance, так что использовать ее нужно только тогда, когда есть проблемы с производительностью UoW.

    через каждые 30 насколько изменится скорость переноса?

    Да, это ускорит работу. Единственное что, если вы занимаетесь вставкой большого количества объектов, имеет смысл после каждого flush делать clear, отчищать unit-of-work, поскольку вставленные сущности будут крутиться в нем, и после каждого flush их количество будет увеличиваться и скорость будет падать.
    Ответ написан более трёх лет назад
    12 комментариев
    12 комментариев
  • Как правильно встраивать форму в шаблон symfony 3?

    slimus
    Алексей Романенко @slimus
    Symfony, Golang
    Всё что может вам понадобится на ранних этапах про формы и симфони тут: symfony.com/doc/current/book/forms.html

    Кажется у вас все верно (в случае $form->createView()). Что значит escaped?
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • Как правильно встраивать форму в шаблон symfony 3?

    dvzzz
    Dmitry Vasilenko @dvzzz
    PHP, Symfony
    Передать форму в шаблон:

    'form' => $form->createView()

    Рендер в twig:
    {{ form_start(form) }}
    {{ form_widget(form) }}
    {{ form_end(form) }}
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как правильно написать dql запрос?

    bears @bears
    Это можно без dql сделать:
    $options = $this->getDoctrine()
    			->getRepository('AppBundle:Option')
    			->createQueryBuilder('o')
    			->select('o, v')
    			->join('o.values', 'v')
    			->getQuery()
    			->getResult();
    Ответ написан более трёх лет назад
    11 комментариев
    11 комментариев
  • Как оптимизировать потребление оперативной памяти?

    skobkin
    Алексей Скобкин @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Для начала проверьте, что вы выполняете код в среде prod. Среда dev ест значительно больше ресурсов.
    А дальше можно перейти на DQL без гидрации в объекты или вовсе на нативные запросы, которые ничего не возвращают в PHP, если сможете оформить запрос с такой логикой.
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как оптимизировать потребление оперативной памяти?

    ssenkevich
    Сергей Сенкевич @ssenkevich
    Если это разовая операция, то лучше не использовать Doctrine, а сделать все прямым запросом в базу данных. В крайнем случае, можно воспользоваться DBAL, но опять же обычным SQL-запросом.
    Если же необходимо все сделать именно средствами Doctrine, то:
    1. Оба репозитория записать в переменные и вынести их перед циклом
    2. Проверить отношения между сущностями, учавствующими в этой операции. Скорее всего, вы не помечаете коллекции как LAZY или EXTRA_LAZY и из-за этого Doctrine тащит кучу ненужных сущностей, забивая память
    3. Если п.2 не помог, то уменьшить кол-во итераций между очистками до 50 - 100
    4. Если п.3 не помог, то увеличить кол-во памяти через ini_set('memory_limit', '512M');
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как оптимизировать потребление оперативной памяти?

    nonlux
    nonlux @nonlux
    Это консольное решение?
    Зачем все делать нахрапом?1 и1003884 (начало конец цикла) забей как аргумент для cli
    выполни задачу меньшими подходами.
    1 -1000
    1001 -2000
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Doctrine OneToMany, все ли верно?

    prototype_denis
    Денис @prototype_denis
    Symfony
    Что это?
    class Brand
    {
    ...
        public function __construct() {
            parent::__construct();


    По связям читайте доку. doctrine-orm.readthedocs.org/en/latest/reference/a...

    И сгенерируйте сущность хотя бы раз этой командой
    app/console doctrine:generate:entities AppBundle
    (В сущности уберите все методы, оставьте только свойства) Затем посмотрите, что делает доктрина.
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Doctrine OneToMany, все ли верно?

    bears @bears
    Свойству $brand надо добавить @ORM\JoinColumn(name="brand_id", referencedColumnName="id")
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
Оценили как «Нравится»
  • 1
  • 2
  • Следующие →
Самые активные сегодня
  • Evgenii
    • 10 ответов
    • 0 вопросов
  • mayton2019
    • 9 ответов
    • 0 вопросов
  • TOA
    Злой Негр
    • 8 ответов
    • 0 вопросов
  • Drno
    • 6 ответов
    • 1 вопрос
  • Enokin
    Владислав Enokin
    • 6 ответов
    • 0 вопросов
  • ProgrammerForever
    Григорий Боев
    • 6 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации