Задать вопрос
  • Что лучше подойдет для построения клиентского GUI в сочитании с AngularJs?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    смотря насколько вам кросбраузерно (на дворе ж 2015-ый, IE11+ скажем) и насколько наворочено.

    Я лично использую bootstrap в большинстве проектов и не парюсь, но мне дико нравится material design и потому тыкаюсь с angular material.
    Ответ написан
    5 комментариев
  • Как устроен AngularJS?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    ангуляр берет HTML и парсит его (не регурялками, ибо парсить HTML регурярками не шибко удобно). Запись вида {{var}} является ничем иным как сокращенной записью директивы ng-bind:

    <div>Hello, {{name}}</div>
    <!-- Эквивалентно -->
    <div> Hello, <span ng-bind="name"></span></div>


    Как только шаблон полностью обработан, ангуляр может начать применять директивы к элементам. тут я на 100% не помню, но вроде как Angular тупо траверсит все элементы нашего фрагмента и пытается найти зарегистрированные директивы. Это удобно, тогда у нас есть период простого препроцессинга HTML, а затем мы просим распарсить это дело браузер, далее работая исключительно с DOM. Браузер за нас сделает большую часть грязной работы.

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

    Директива ngBind, которая используется в нашем случае, слушает изменения переменной в скоупе и, когда дожидается оных, меняет содержимое элемента через DOM.
    Ответ написан
    6 комментариев
  • Действительно ли в PHP PDO Prepared statements не поддерживаются для операций INSERT/UPDATE?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    речь именно о массивах.
    $ids = [1, 2, 3, 4];
    $sql = 'SELECT * FROM table WHERE id IN (?)'; // нельзя
    $sql = 'SELECT * FROM table WHERE id IN (?, ?, ?, ?)'; // можно
    Ответ написан
    4 комментария
  • Как получить доступ к сессиям в шаблоне(twig) symfony2?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Можно, но зачем? Передавайте все явно и проблем будет меньше.
    Ответ написан
    6 комментариев
  • Возможно ли написание игр на Phonegap?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Для игр лучше Xamarin, так как есть возможность работать с opengl. (webgl не везде поддерживается, даже учитывая решения типа Crosswalk)

    В целом же смотря какие игры.
    Ответ написан
    Комментировать
  • Считается ли правильным тоном создавать тестовые объекты если нет возможности создать моки?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    вы можете замокать __get метод и таким образом затрэкать обращение к свойству и вернуть необходимое значение. Но в целом публичные свойства для объектов типа ConnectionInterface это уже странно.
    Ответ написан
  • Есть ли какой-то туториал по Angular Seed?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    не надо разбираться с темплейтами, надо разбираться с ангуляром. Почитайте документацию, почитайте angular styleguide... и дальше пробуйте походу.
    Ответ написан
    Комментировать
  • Как реализовать простой интерпретатор в JavaScript?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    ну мы имеем простенький DSL с довольно простой структурой. Сначала мы должны распарсить строку. Ваш пример можно попробовать распарсить регулярками. Если регулярками сложно - можно попробовать написать посимвольный парсер. Ну и еще неплохой идеей будет воспользоваться генераторами парсеров: pegjs.org

    Из строки собираем детали задачи. Что-то в духе:

    var task = {
        site: 'http://site.ru',
        find: 'selector', // селектор у вас не стандартный, придется парсить и его еще отдельно ..
        result: '' // и описание результата тоже 
    }


    Ну а дальше уже выполнять таску.
    Ответ написан
    Комментировать
  • Это говнокод? Если да, то в чем именно я провинился?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Да, это говнокод. А чем провинились я устану перечислять

    - $GLOBALS и использоваие суперглобальных массивов
    - использование собачки для подавления ошибок
    - for($count=0;isset($block[$count]);$count++) и стремные бесконечные циклы вместо foreach
    - переменные вида $ppfile и $pppfile, ваш код очень "удобно" читать.
    - смешивание php и html и css
    - по сути код состоит преимущественно из канкатенации строк... это грустно
    - использование закрывающего тега ?>
    Ответ написан
    8 комментариев
  • Стоит ли делать в директивах angular независимые контроллеры?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Скажем контроллер директивы которые делает запросы на получение массива

    Причем тут контроллер? Обычно этим сервисы занимаются. Вообще контроллер директивы должен заниматься только тем, что нужно в рамках этой директивы (то есть содержит логику работы этой директивы, link скажем нужен для привязки логики и DOM). Если вам там надо забирать данные, то забирайте.

    И вообще в целом не перекликающиеся контроллеры

    c3d0981ae770f926eedf4eda7505b006.jpeg
    Как много стоит плодить директив?

    Столько, сколько нужно. Важно что бы директивы были изолированными кусочками функциональности, не имеющими представления о реализации внешнего мира.
    Ответ написан
    3 комментария
  • Чем смотреть протокол обмена между браузером и веб-сервером?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Wireshark
    Ответ написан
    Комментировать
  • Как не прописывать gulp install каждый раз?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Еще есть yoman который придумали именно для автоматизации создания базовых приложений. Единственное что придется написать шаблон для приложения, зато выходит очень гибко.
    Ответ написан
  • Как не затереть данные при сохранении Doctrine?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    cloud_zurbag: когда вы вытягиваете данные из entityManager эти самые данные (сущности) начинают крутиться в Unit-of-work. Когда вы дергаете flush этот самый UoW (по умолчанию, поведение настраивается) сравнивает что было, что стало, генерирует SQL соответствующий и коммитит транзакцию (то есть все изменения уже обернуты в транзакцию, непонятно почему в описании вопроса еще раз в ручную оборачивается все). Потому очень даже легко, если случано поменять сущность где-то не в том месте, похерить данные (разве что СУБД вам транзакцию не даст закончить).

    romteh

    Самый простой способ устраить возможные факапы - убрать автоматическое добавление загруженный энтитей в UoW, что вынудит разработчика всегда делать persist (да, по умолчанию можно просто сделать flush при редактировании уже загруженной энтити).

    Еще вариант - флашить только то, что поменялось:

    $em->flush([$entity1, $entity2]);

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

    Но вообще у меня к вам встречный вопрос, что статистика у вас делает в сущностях? Ей там не место (если конечно это не часть бизнес логики именно).
    Ответ написан
  • Как добавить анимацию в AngularJS при изменении модели?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    пишите директиву, а там магия с DOM и css transition.
    Ответ написан
    Комментировать
  • Использовал ли кто то HMVC при работе с AngularJs?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Просто используйте директивы грамотно и будет вам что-то похожее на HMVC.

    По сути именно это дают вам директивы, возможность разделить одно приложение на иерархию маленьких, изолированных MVC приложений, каждое из которых отвечает за свой маленький кусок работы.
    Ответ написан
    Комментировать
  • PHP + MySQL, лучшая книга/лучший ресурс для изучения?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    php.net и гугл, книжки это клево но лучше почитать Танембаума, Кнута и других персонажей. Далее, когда будет уже более конкретные вопросы - будете искать на них ответы (причем самостоятельно). Паралельно можно читать книжки по каким-то определенным сферам.

    Проблема с книжками по PHP в том, что большая часть из них вреда наносят больше чем приносят пользы.
    Ответ написан
    Комментировать
  • На каком фреймворке разрабатывать HTML5 приложение под iOs+Android?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    phonegap apache cordova, Ionic...


    apache cordova === adobe phonegap. Читать википедию.

    ionic - UI-фреймворк с возможностью юзать просто как либо, либо, что обычно удобнее, вместе с angularjs. Если хочется сделать быстренько и нет своего дизайна - обычно выгодно его использовать. В некоторых ситуациях с кастомным дизайном не шибко дружит.
    Ответ написан
    Комментировать
  • Чем заменить оператор goto?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    после выполнения какой либо функции программа возвращалась на начало.


    Обычно для этого в main гоняют бесконечный цикл, в котором уже запускают нужные функции. Тогда когда функция отработала, она просто заканчивает работу и управление возвращается обратно циклу. А там уже в зависимости от пользовательского ввода или сигналов можно убивать цикл и выходить из программы.
    Ответ написан
    Комментировать
  • Как писать селекторы должным образом?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Я слышал, что надо писать более производительные селекторы

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

    больше использовать комбираторы. Серьёзно?

    А почему нет? Основная проблема - изоляция стилей. То есть как сделать так, что бы имезения в стилях для блока A не влияли на блок Б. Рекомендую вам так же ознакомиться с популярными методологиями верстки (серьезно, чем раньше тем лучше), например БЭМ, smacss, oocss и т.д.

    селекторы на основе аттрибутов

    Для JS очень удобно на основе data-* атрибутов делать селекторы. В целом в этом плане можно посмотреть в сторону webcomponents и как-то ориентироваться на этот путь.
    Ответ написан
    3 комментария
  • Скажите, пожалуйста, как получить параметры с УРЛ?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    разделяй и властвуй.

    как получить параметр "inactive" с УРЛ

    Курить в сторону маршрутизации (ngRoute, ui-router). На чем у вас эти урлы реализованы я не вкурсе.

    передать его в php

    сервис $http.
    Ответ написан
    Комментировать