• Как присвоить результат выполнения анон. функции к переменной в PHP?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    // для PHP 7+ (внимательно следите за скобочками)
    $val = (function () { return 'foo'; })();
    // Для PHP 5.3+ (до 7-ки приходится сначала функцию запихнуть в переменную)
    $fn = function () { return 'foo'; };
    $val = $fn();
    Ответ написан
    3 комментария
  • React Native vs Framework7?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    nativescript.org

    я так понимаю чат на node.js делать?

    Судя по характеру вопроса - да, проще будет на node.js
    Ответ написан
  • Чем заменить gulp.run?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    https://www.npmjs.com/package/gulp-sequence

    в gulp4 они заменили планировщик, и теперь gulp.run не нужен, все заменили комбинации из parallel/series.

    Ваш же случай лечится еще проще:

    gulp.task('run-beats', global.options.prod ? 
        beats_task.prod : beats_task.dev
    });
    Ответ написан
    1 комментарий
  • Как продолжить обучение js?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    функциональное программирование (рано или поздно всеравно придется разбираться, нынче все популярные фреймворки к этому идут). больше практики. Практика должна вызывать вопросы, на которые вы будете искать ответы. Ну и так далее, бесконечный цикл обучения, эксперементов и тд.
    Ответ написан
    2 комментария
  • Yii2: как создать структуру HMVC?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Организовать это дело вы можете используя видеты. Через них можно реализовать разделения UI на компоненты и продолжать вложенность оных строя иерархии компонентов/виджетов.
    Ответ написан
    Комментировать
  • Выполнение директивы?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    используйте ng-click и привязку к состоянию, не работайте с DOM сами.

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

    <div class="hide-elements" ng-class="{'your-class-name': vm.some.condition}"></div>
        <button class="add" ng-click="vm.add()">+</button>


    в контроллере меняете состояние компонента и все хорошо.

    Поясню идею, почему это хорошо. Если у вашего приложения нет привязки к DOM и он оперирует примитивами, который предоставляет вам ангуляр (ngHide/ngShow/ngClass/ngRepeat и т.д.) то вам не нужно париться вообще о том как формируется представление. Уменьшается возможность побочных эффектов, отсутствует необходимость покрывать код тестами (ну или волноваться что что-то сломается просто так), достаточно проверить что приложение входит в необходимое состояние а ангуляр вам уже гарантирует что представление под это состояние подстроится так, как вы это задекларировали в шаблонах.
    Ответ написан
    8 комментариев
  • Почему не парсится передача модели в angular.js?

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

    p.s. Я настоятельно рекомендую таки почитать документацию к инструментам которые вы используете. ну или видеокурсы хотя бы пройти.
    Ответ написан
    1 комментарий
  • Когда появилась первая ORM(Object-relational mapping)?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Насколько я могу судить "первопроходцами" решения проблема мэппинга данных из базы на объекты... стали те у кого эта проблема возникла впервые. А именно у чуваков из Oracle, которые предложили одну из первых ORM - TOPLink. Сначала для Smalltalk в начале 90-х и потом для Java.
    Ответ написан
  • Не работает $compile после запроса?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    По после запроса на then почему то не работает и кидает трейс на моменте compileScope.$apply();


    Приведи трейс, я на 90% уверен что у тебя там ошибка вида $digest already in progress.

    Это пожалуй самое гнилое место в ангуляре и я дико рад тому что они избавились от этого во втором. Перед запуском $digest цикла (то что вызывается у $rootScope когда вы делаете apply) надо бы проверить не запущен ли он. Сервис $http автоматически запускает $digest по завершению запроса, если что.

    Самый простой способ обезапасить себя от подобного - использовать сервис $timeout, который является оберткой и сам хэндлит $digest цикл.
    Ответ написан
    6 комментариев
  • Какой фреймворк выбрать для интернет-магазина?

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

    Скажем тот же angular2. На самом деле он не сильно отличается от 1-ой версии, если вы следили за развитием идей и т.д. Скажем компоненты, их форсят во втором ангуляре (а так же в reactjs), но использовать этот подход без боли можно было уже с angular 1.3. Сейчас с angular 1.5 все еще проще. Есть компоненты (как отдельная сущность поверх директив, для angular 1.3-1.4 есть полифил), есть декораторы для компонентов (директивы расширяющие поведение компонентов). Главное не пользоваться контроллерами как независимой сущностью (ну разве что только для ресолва состояний и проброса в компоненты), а внутри компонентов не дергать сервисы для получения состояния (хотя есть опять же исключения).

    далее, ни react ни angular из коробки не предоставляют вам ничего для организации вашего приложения. То есть, штуки типа контейнеров зависимостей и базовые какие-то вещи вроде ангуляровских инфраструктурных сервисов не в счет. У вас полная свобода действий. Хотите мутите нормальный сервисный слой, хотите - практикуйте идеи redux с одним общим состоянием приложения и деревом редьюсеров прокидывающие части состояний по компонентам...

    Словом... все на самом деле не так сильно различается. Оно только кажется так, а идеи сейчас идут примерно одни у теже у всех. Декларативный UI, независимые компоненты, функциональщина...
    Ответ написан
    Комментировать
  • Есть ли библиотека / фреимворк react / angular like?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    angular light, Riot.js
    Ответ написан
    Комментировать
  • Как создавать экземпляры класса с произвольным количеством аргументов?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    передавайте массив. У объектов по хорошему не должно быть "переменное" количество аргументов. Это как никак зависимости оных, а если у нас зависимости плавают то нам будет чертовски сложно управлять этими зависимостями и код со временем превратится в кашу.

    Ну либо используйте решение Николай, особенно ES6 вариант.
    Ответ написан
  • Компьютерное зрение. Как определить положение и направление объекта?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Есть EMGU, биндинг OpenCV для C#. Там же можно найти примеры трекинга объектов.
    Ответ написан
  • Кто должен настраивать CORS nginx или php-framework?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    С точки зрения производительности эффективнее это настроить на стороне nginx, с точки зрения производительности труда - как мидлвэр к вашему приложению (то есть на уровне фреймворка, либо на уровне PSR-7)
    Ответ написан
    Комментировать
  • Как в Protractor'е организовать тестирование backend запросов?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    суть E2E тестов в тестировании всего, никаких моков и стабов (ну стабы можно для каких-то внешний сервисов типа фэйсбука, и то у них есть песочница). Что бы протестировать весь проход, от кнопок на UI до запросов в базу данных на сервере.

    В рамках интеграционных тестов тестировать UI так же смысла не имеет. UI должен быть декларативным, а это значит что там нет инвариантов которые нужно покрывать тестами. То есть по сути нам надо покрывать тестами только сервисный слой и возможно контроллеры.

    Если же вы уж очень хотите потестить UI в интеграционных тестах - ну ок, поднимите отдельный mock сервер которым вы будете управлять из тест сюиты. Благо их много.
    Ответ написан
    2 комментария
  • Какой порядок инициализации в AngularJS?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Мммм... все инициализируется on demand и асинхронно. То есть сервисы инициализируются по требованию, если вы иньектите их в контроллеры то естественно они инициализируются раньше контроллера (так как это их зависимости). Фильтры инициализируются после компиляции шаблона, и только те что там используются.

    run запускается первым, перед run еще есть фаза конфигурации.

    С учетом всех сложностей вы просто не должны завязывать приложение на это все дело (и это хорошая идея). У вас есть фаза конфигурации где можно еще что-то сделать с контейнером зависимостей например, сконфигурить сервисы, и потом все... только run выполняется первым (причем если он требует сервисы сначала инициализируются они) потом представьте что вы не знаете порядок и т.д.
    Ответ написан
    Комментировать
  • Что выбрать для парсинга больших xml?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    phpdaemon уже мертв. Рекомендую вам взять amphp. Но если у вас есть достаточно опыта с go то лучше на go.

    по поводу хранилища - можно писать в память (redis, или в очереди) и потом агрегировать в какую-нибудь couchdb. Или просто в couchdb/mongodb и если не будет хватать производительности писать в буфер.
    Ответ написан
  • Symfony 2 или Laravel для распределённой системы?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    без разницы, в принципе. И на том и на том можно сделать как просто и быстро так и плохо. Разница по сути только в подходах по работе с базой (доктрина - domain centric, ларавелевская ORM - database centric).

    Ну и да, в Laravel вполне себе удобный IoC (даже не смотря на то что в symfony2.8 уже сделали автовайринг), и концепция мидлвэров. Но у Symfony2.8 можно включить микроядро, и по производительности он уйдет вперед (чисто фреймворк, без учета ORM и т.д.)
    Ответ написан
    5 комментариев
  • Как создать функцию-объект в PHP?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Использование классов не предлагать


    В вашем случае функция сама по себе является объектом типа Closure.

    $obj = $obj['func']; // просто забираем функцию из массива...


    p.s. отсыпьте, или поясните какую цель вы преследуете.
    Ответ написан
  • Как правильно изменять модель в laravel5?

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

    То есть контроллер дергает сервис, сервис работат с данными и занимается персистом изменений... и все.

    Контроллеры должны быть тупыми, не должны содержать логики. Это просто медиатор между приложением и UI. Толстые контроллеры приводят к дублированию кода и удорожанию поддержки. Но для простых проектов в принципе норм.
    Ответ написан