• Есть ли разница между такими SQL запросами?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    EXPLAIN вам в помощь
    Ответ написан
    1 комментарий
  • Как сохранять данные введенные пользователем в Symfony Console?

    prototype_denis
    @prototype_denis
    Symfony
    Команды должны быть атомарными.

    Проблема передачи данных выхлопа первой команды во вторую должна лежать на плечах того, кто её использует.

    Используйте пайпы
    FOO_OUT=$(bin/console app:foo) | bin/console app:bar $FOO_OUT


    Временные файлы
    bin/console app:foo > /tmp/foo.data | bin/console app:bar /tmp/foo.data | rm /tmp/foo.data


    Хоть сокеты...

    Не нужно вызывать команду в команде.
    Во первых пых самый лучший язык и помирает он так же лучше всех. (Например упрётесь в ограничение дочерних процессов, потери PID и так далее)

    Во вторых архитектурно более верно использовать unix подход и процесс передачи данных убрать из логики самих команд. Это не их забота.

    В третьих нельзя просто так взять и сохранить подключение к базе данных и передать его другому процессу.


    И да... Не стоит делать подобие конечного автомата на симфониевских командах, они не предназначены для этого.

    В общем - запилите одну команду, которая будет дёргать какую-нибудь модельку и забудьте о проблемах интерфейса для бизнес логики. (Команда в данном случае интерфейс взаимодействия с приложением из CLI. В этом случае вам ничего не помешает реализовать интерфейс на http для этой задачи)
    Ответ написан
    Комментировать
  • Что и зачем "Symfony Workflow Component"?

    riky
    @riky
    Laravel
    о компоненте узнал из вашего вопроса, довольно интересный.

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

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

    полистав пример тестового приложения понял что статусы хранятся в поле marking у сущности https://github.com/lyrixx/SFLive-Paris2016-Workflo...
    поле имеет тип json_array. надо бы запустить этот тестовый проект, погонять. например для меня пока не очевидно как сделать фильтрацию сущностей по этому статусу, неужели отдельное поле/я добавлять и в подписчиках его менять.

    также можно полистать исходники самого бандла, вот например метод для смены статуса https://github.com/symfony/workflow/blob/master/Wo...
    Ответ написан
    2 комментария
  • Как лучше сконфигурировать проект?

    Roman_Romanov
    @Roman_Romanov
    symfony
    не знаю, стоит ли разделять на несколько виртуалок, но как мне кажется вариант - VBOX, vagrant, docker ansible был бы не плох. А SQL Server не в отдельную вирт. а в отдельный контейнер. Не спец, но надеюсь помог
    Ответ написан
    4 комментария
  • В каком месте правильно писать запросы в symfony 3?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    В репозиториях.
    Ответ написан
    Комментировать
  • Как организовать Lazy Load в DDD?

    alex1t
    @alex1t
    .net developer
    Как раз в тему, правда только для .NET, но смысл одинаковый:
    enterprisecraftsmanship.com/2016/04/05/having-the-...
    Ответ написан
    Комментировать
  • Как организовать Lazy Load в DDD?

    Splo1ter
    @Splo1ter
    .NET Developer (4 years+)
    На php красивого решения у вас не выйдет, либо пишите какой то прокси сервис, через который у вас вне зависимости от типа выгружатся коллекции
    Ответ написан
    1 комментарий
  • Какой micro framework посоветуете?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Берите Symfony 3 в режиме микроядра. Профит:

    по умолчани - микрофреймворк, если этого будет не хватать - можно быстро перейти на symfony full stack решение. Ну и по качеству кода и тд. у компонентов симфони конкурентов нет (разве что zend может тягаться).

    вот только без ORM.


    Composer же, можно любой взять пакет реализующий ORM. А еще хороший вопрос - нужен ли вам ORM. Это не что-то что дефакто должно присуствовать. Скажем если у вас в качестве базы данных монга - то ORM уже не нужна, так как нет связей между документами (точнее их не должно быть).

    не навязывал свою структуру/архитектуру

    Этому пункту соответствует. Есть общепринятый best-practice но он в принципе только о общих вещах. А структуру вашего кода - это уже сами решайте. Так же нет никаких ограничений по архитектуре вашего приложения, симфони предоставляет вам только адаптеры для UI (HTTP, CLI и т.д.), то есть организация UI приложения. Приложение же само хоть на plain php может быть, просто пользовать инфраструктурой предоставляемой симфони.

    цеплять любые файлы независимо от их "географического" положения.


    Это вы сейчас об автозагрузке или что? Какие файлы? Хватит мыслить файлами, мыслите объектами, нэймспейсами и т.д. А мэппинг этого на файлы один раз прописывается в composer.json.

    p.s. Опять же, фреймворк это всего-лишь набор инструментов. он ничем вас не обязывает. Симфони один из немногих фреймворков который предоставляет свободу. То есть есть по дефолту структура, но вы ее поменять можете как захотите.
    Ответ написан
    1 комментарий
  • Как организовать правильную структуру директорий в проекте Symfony2, NodeJS, AngularJS?

    riky
    @riky
    Laravel
    если нода используется как сервер (например для чата) я бы рекомендовал вообще делать это как 2 отдельных проекта, тк в таких случаях они относительно независимые и общаются между собой через промежуточное харнилище.

    если node используется для загрузки npm модулей/библиотек (и/или для сборки gulp/webpack) то можно в корень симфони проекта. для удобства работы - зашел в корень проекта и запускаешь команды node, так же как и симфони
    Ответ написан
    Комментировать
  • Как организовать правильную структуру директорий в проекте Symfony2, NodeJS, AngularJS?

    @SergeyZelensky-Rostov
    Я думаю надо пользоваться структурой которую дает symfony
    app/: Эта папка содержит конфигурацию приложения;
    src/: Весь PHP код хранится здесь;
    web/: Это папка должна быть корневой web директорией.
    затем на этом же уровне создать папку serverjs или как вам удобнее ее назовите
    а angular в папку web положить
    Ответ написан
    Комментировать
  • Как верно организовать сервисную архитектуру Symfony2 для поддержки нескольких версий API одновременно?

    prototype_denis
    @prototype_denis
    Symfony
    Познакомьтесь пожалуйста с этим symfony.com/blog/new-in-symfony-2-7-serialization-... , чтобы облегчить cебе работу с форматом "прилетающих" от клиента данных,
    вот с этим symfony.com/doc/current/book/validation.html#valid... для того, что бы не было проблем с валидацией и не придумывать некие валидаторы кидающие исключения,
    а ещё с этим symfony.com/doc/current/components/options_resolve... дабы не было проблем с DTO объектами в фабрике

    А так же с этим (Если возникают вопросы с контролерами и версионностью)
    https://github.com/FriendsOfSymfony/FOSRestBundle/...

    По поводу
    $data = $request->request->all();

    Есть замечательные форматы, например json или xml.

    По поводу
    //throwing some ValidateException

    Валидатор не должен кидать исключения, он должен просто возвращать ошибки.

    По поводу
    Сервисы бизнес логики всегда одни и меняются только в сторону актуальной версии api

    Они должны не меняться, а дополняться. Привет обратной совместимости с вашей версионностью.
    Или создаваться и использоваться вообще разные сервисы в зависимости от версии api.

    Ознакомьтесь с semver.org/lang/ru и примените эту концепцию к всем вашим контроллёрам, сервисам и всей прочей ереси в папке src.

    Другими словами, создавайте объекты в фабрике относительно версии api, а не используйте магический трансформер, который загнётся при большей логике.
    Используйте стандартные средства, которые так любезно предоставляет фреймворк.
    Ответ написан
    7 комментариев
  • Как верно организовать сервисную архитектуру Symfony2 для поддержки нескольких версий API одновременно?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Вопрос остается только в том, как в PHP , а в частности, в Symfony организовать такую структуру ?


    представьте себе что для каждой версии API у нас свои контроллеры, свои экшены контроллеров и т.д. Ну вот как-то так. То есть контроллер забирает данные из запроса и просит сервис что-то сделать. Как вы и описали сервис всегда один и он всегда актуален, но должен учитывать обратную совместимость. То есть вы не можете просто так взять и добавить обязательное поле.

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

    Если говорить о архитектуре - идеальный вариант это гексагональная архитектура. Тогда мы будем воспринимать разные версии API просто как разные адаптеры к слою приложения.
    Ответ написан
    2 комментария
  • Куда выносить общие интерфейсы для бандлов?

    @djay
    Хранить общие интерфейсы и сервисы в бандле типа App (в ядре).
    Ответ написан
    2 комментария
  • Бесплатные русские CMS?

    OnYourLips
    @OnYourLips
    А что значит русские?

    Чтобы этнический состав был из северо-западной России? Тогда не пододут россияне из Иркутска, например.
    Или гражданство российское было? Тогда не подойдут те, кто в России родился, вырос, но переехал в другие страны жить и сменил его.
    А может язык должен быть русским, на котором человек разговаривает? Тогда мой преподаватель английского Джек из США тоже подходит, а вот часть россиян - нет.

    И какое количество кода в проекте должно быть написано русскими?
    Вот например некто Сергей Бирюков сделал последний комит в Wordpress: https://github.com/WordPress/WordPress/commits/mas...
    Это самый популярный CMS.
    Теперь можно считать Wordpress русским?
    Ответ написан
    2 комментария
  • Как организовать отдел веб разработки?

    customtema
    @customtema
    arint.ru
    Входные данные:

    Есть стороннее финансирование, которое может покрыть новых сотрудников и любые другие расходы.

    Это очень плохо. Сытое брюхо к учению глухо. Инвестиции убивают стартапы, это уже общеизвестный факт.

    Подсознание не обманешь. Если есть деньги - зачем их зарабатывать?

    Есть 3 разработчика 2 фронтенд, 1 бекенд (И я - фронтенд и бекенд и всё подряд, может и самому надо будет помогать)


    Вы считаете???

    Есть возможность взять 2-х проверенных разработчиков.


    А они пойдут?

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


    Это хорошо. Можно сэкономить пару сотен.

    Есть ,не проверенные источники заказов,


    Значит их нет.

    Есть хостинг с VPS


    Мелочь.

    Есть желание всё организовать и развивать.


    Это лучшее, что может быть в принципе. Особенно, если вы умеете работать в принципе.

    Заводить знакомства и ... процветать.=)


    Star track? Уважаю.


    Чего нет:

    Нет треккера и способа организации разработки


    Ой, оказывается у вас и разработчиков тоже нет.

    Нет библиотеки, в которой должно быть расписано всё, включая инструменты разработки, этапы разработки, способ ведения переговоров.


    И не надо.

    Нет распределения обязанностей.


    Был бы директор нормальный.

    Нет организованной базы наработок.


    Ой, а у вас совсем нет разработчиков. Был бы директор...

    Нет... корпоративной этики, что-ли..


    Мечтать о мопеде и обсуждать раздельный климат-контроль... Хм.

    Нет штатных менеджеров по продажам и проектам


    И не нужно. Почитайте "реворк".

    Хотеловь бы услышать советы,

    как можно развить хороший коллектив,


    Найти хорошего директора.

    как развить и наладить разработку,


    Найти хорошего директора.

    как расширить сеть контактов, завести нужные знакомства,


    Найти хорошего директора.

    где хотя бы примерно узнать, как всё сделать правильно,


    В ютубе много отличных роликов по теме, вебинаров и подкастов.

    как распределить обязанности...
    как организовать менеджмент и тайм менеджмент
    как организовать иерархию и как раздать должности


    Нужно повторяться?

    Ментора не надо. Если надо, директор сам найдет ментора.

    Курсы по бизнесу можно. Много их, в т.ч. на ютубе. Начните с любых.
    Ответ написан
    2 комментария
  • Как сделать несколько сайтов на одних исходниках Symfony?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Хватит экономить по 100 мегабайт на проект, это нынче копейки.

    Но если вы таки совсем уж переживаете и у вас всегда и на 100% все зависимости будут примерно одинаковые и т.д. то можете просто на каждый сайт по своему кернелу делать (AppKernel заменяется на SiteKernel, FooKernel, etc) и свои вэбруты со своими точками доступа. Можно хоть src свои...
    Ответ написан
    3 комментария
  • Почему Angular плохой?

    @VanKrock
    Angular всего лишь инструмент, если вы умеете им пользоваться и он решает ваши задачи, используйте его, если нет используйте другой инструмент. На Angular достаточно просто решать большой пул задач, если вы будете постоянно только сравнивать инструменты и искать который лучше, то в итоге вместо проекта вы все еще будете искать инструмент, который лучше.
    Ответ написан
    4 комментария
  • Ruby, Python или NodeJS для сервиса?

    OnYourLips
    @OnYourLips
    Node.JS не подходит из-за своей асинхронной природы.
    Поэтому с учетом твоего опыта рекомендую PHP, и смотреть в сторону очередей.

    Ruby или Python не рекомендую как раз из-за отсутсвия опыта.
    Ответ написан
    2 комментария
  • Каким образом должно работать обновление коллекций по REST?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    По хорошему если что-то пошло не так, то падает весь запрос, вся транзакция откатывается и приходится отправлять все заново. Более того, частично обработать коллекцию не выйдет, можно конечно перечислить через запятую айдишки но это не сильно удобно. Все остальное уже выходит за рамки концепции REST и тогда вам в помощь приходит JSON RPC, и тут уж вы сами регламентируете как и что, просто дергать будете POST запрос и все.
    Ответ написан
    2 комментария