• Может кто-то проверить, что не так в моем тестовом задании?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Я бы расстроился как минимум изза rar. Залейте пример на plnkr.co

    Из того что я вижу - у вас проблемы с размерами. Все намного меньше чем в макете. Более того - вот эта картинка в шапке судя по всему по задумке автора макета должна быть на всю ширину страницы а не фиксированным блоком. Как и хедер как и футер. Короче у вас сама структура макета не передана.

    ID="features1" - славно, вы вкурсе что так делать не хорошо и вообще для стилей ID использовать не круто как минимум изза того что вы делаете неоправданно специфичный селектор а во вторых потому что у вас этот ID повторяется несколько раз на страницу нарушая тем самым его исконный смысл.

    С активным статусом соц иконок тоже порадовали...

    Словом выкинуть и переделать.
    Ответ написан
  • Как правильно сформировать запрос?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Если вы можете сформировать SELECT для таблицы test с теми данными, которые вы хотите вставить в works, то можно сделать insert into works (select ...)
    Ответ написан
    Комментировать
  • Как написать серверную часть для Android клиента на Java?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    nikesport: вы пишите rest сервис? Ну так пишите rest сервис. Возьмите Jersey какой и радуйтесь.
    Ответ написан
  • Как быстро и эффективно разобраться с PHP?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Первым делом ставим PHP (если вы под виндой сидите, желательно под linux-ом в виртуалке или в vagrant боксе. Как минимум потому что деплоиться вам под них и стоит разобраться минимально в unix да и банально проще все устанавливать и настраивать. Меньше проблем. Ну и да, в linux за счет особенностей файловой системы и реализации самого PHP он банально быстрее). Для начала хватит и его. С версии 5,4 там встроенный вэб сервер и что бы разобраться с основами ставить что-то еще не нужно (разве что mysql/postgresql/sqlite).

    php.net/manual/en/langref.php - быстро пробежаться что бы понять различия с c# (с большего все должно быть примерно так же, типа приоритеты операций, синтаксис условий и циклов и т.д., особое внимание следует уделить "массивам", так как первое время поведение оных может смущать.

    Для простоты дела можно подключить xdebug/phpdbg и баловаться. Так же TDD (phpunit/phpspec и прочие) неплохо помогает в обучении.

    В плане ООП проблем возникнуть не должно. Стоит разобраться с магическими методами а так все то же самое что и в c# только намного проще. Есть нюансы с деструкторами но это можно потом почитать.

    Далее вооружаемся Symfony2 и вперед. Этот фреймворк пожалуй наиболее близок к ASP.NET MVC по философии (не считая Zend2). Если вы работали с EntityFramework то Doctrine вам должен прийтись по душе. Есть аннотации, абстракция над запросами, DiC, solid и все такое, ну словом... будет несколько проще в вашем случае. А уже после можно спускаться вниз на всякие Laravel/Yii/etc если будет любопытно.

    В целом же документации должно хватить. Если хотите более основательно узнать о том как что себя ведет - https://github.com/php/php-langspec
    Ответ написан
    1 комментарий
  • Настройка grunt для переноса файлов без изменений?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    grunt-copy

    p.s. Советую выкинуть grunt и заменить его на gulp.
    Ответ написан
  • Нормально ли большое количество подключений в access.log?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Возможно у кого-то просто не работает keep-alive.
    Ответ написан
  • Как на Yii2 реализовать Ajax подгрузку partials для реализации SPA?

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

    Но как мне кажется можно просто забирать их как статику. А если речь идет о SPA на основе angularjs - вообще при сборке клиентсой части забивать это добро в $templateCache.
    Ответ написан
    2 комментария
  • Сайты клиентов на одном VPS или разные хостинги?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Нужно для каждого сайта IP заказывать.

    Нет

    Вообще все очень от сайтов зависит. В любом случае классические шаред хостинги это шило как по мне, но и держать на одном VDS десяток сайтов это перебор. Будет тот же шаред только хуже так как у вас я так понимаю навыков администрирования не много.
    Ответ написан
  • Существует ли какие-либо стандарты ответов в restful?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Есть вполне стандартные статус коды:
    401 - нужно авторизоваться. В этом случае на клиенте мы должны попросить чувака ввести логин и пароль
    403 - у вас нет прав на это действие. Например юзер пытался удалить что-то или сделать что-то на что у него нет прав.
    422 - не могу обработать сущность. То есть если у нас не валидны данные в запросе, пароль там или имейл не ввели и все такое.
    404 - пользователя с таким именем пользователя и паролем не существует.

    Добавлять ли в тело ответа месседж с пояснением проблемы - решать вам. По хорошему стоит добавлять ибо тогда мы можем рулить сообщениями об ошибках с сервера. Ну или предоставлять клиенту оные. Но в любом случае разруливать ошибки нужно при помощи статус кодов.

    restpatterns.org/HTTP_Status_Codes
    Ответ написан
    2 комментария
  • Возможно ли добавить метод в класс с помощью php?

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

    Если говорить в контексте ООП - у вас может быть один класс контроллер на запрос/страницу. И таких классов может быть бесчисленное множество. У вас может быть иерархия контроллеров. Да что угодно может быть.

    Если вы хотите сделать расширяемую и главное удобно расширяемую логику - посмотрите в сторону dependency injection и аннотаций. Правда учитывая специфику запроса о чем-то хорошем наверное стоит просто забыть. Если хотите написать еще одну CMS - могу дать пару забавных идей. Так хоть CMS будет отличаться от миллионов существующих.

    Но если отвечать на поставленный вопрос - проблема решается композицией классов, рефлексиями и ресолвом нужного метода в массиве контроллеров. По хорошему за это должен отвечать маршрутизатор запросов а "плагин" должен просто регистрировать маршрут либо подписываться на какие-то системные ивенты.
    Ответ написан
  • На чем лучше создать приложение для Android?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Android Studio. Java не сильно сложный язык (он многословен и мы же не говорим о сложных вещах?), программу о которой идет речь можно накопипастить со stackoverflow и с туториалов.
    Ответ написан
    Комментировать
  • Как соединить Git - dev сервер + live сервер + git сервер?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Замените в вашей цепочке dev сервер на Vagrant у разработчиков, ansible для провиженинга (что бы у всех все было одинаково) и добавьте staging.
    Ответ написан
    Комментировать
  • Подойдет ли php (yii) для разработки корпоративной учетной системы?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    SOAP это для .NET хорошо. На c# ваша задача решается как по мне чуточку проще. PHP конечно в этом плане подходит, особенно если вы его знаете а .NET не шибко. Что до выбора фреймворка - тут решающую роль имеет знаете вы Yii или просто выбрали наугад. Есть мнение что второе. Тогда без разницы что брать, лишь бы поновее и не cakephp/codeigniter.
    Ответ написан
    Комментировать
  • Что означает эта ошибка в PHP?

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

    Куки сетятся заголовком Set-Cookie, так что когда вы вызываете функцию session_start это равносильно отправке заголовка пользователю.

    Вообще в HTTP запросах/ответах есть две части - заголовки и тело. Заголовки описывают параметры запроса/ответа, в частности что именно содержится в теле запроса/ответа и в случае запроса, что хочет получить пользователь/клиент.

    Думаем дальше. для работы с заголовками ответов SAPI в PHP предоставляет вам функцию header. Упростим для себя жизнь и представим что session_start дергает внутри оную. Все что выходит через другие места в stdout (через echo или print например или просто какой-то символ перед <?php затесался) считается телом ответа. Так как должна соблюдаться последовательность действий при формировании HTTP ответа, то вы не можете менять заголовки как только хоть что-то, даже один байт, попал в буфер вывода.

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

    Вот... Помимо несоблюдения порядка взаимодействия с заголовками и выводом инфы частенько встречается такая штука как заголовки самих исходников (UTF BOM). Их умеет убирать любой нормальный редактор.

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

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Через indexOf не получилось.

    Как-то не удивительно.

    Можно воспользоваться функцией some (полифил прилагается в статье).

    function insert_uniqe(collection, el) {
        if (!collection.some(function (current) {
            return current.id === el.id
        })) {
            collection.push(el);
        }
    }
    Ответ написан
    Комментировать
  • Существуют ли готовые ~CMS решения для Lua (Lapis) + Nginx?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Хотелось бы хоть как-то упростить себе жизнь,

    Может быть стоит отказаться от идеи писать сайт на конфигах nginx-а? Есть конечно всякие moonstalk.org если хотите.
    Ответ написан
    Комментировать
  • Чем деплоить php проекты?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Не забудьте про rsync как средство деплоя.

    Вообще все просто, при деплое через git pull у вас перестает работать текущая версия сайта. И время простоя зависит от сложности деплоя. Например вам нужно установить вендоры - пока будет работать composer install мы ждем. Затем мы чистим кеш - опять простой. Затем миграции. Снова ждем, а миграции могут выполняться долго в зависимости от сложности... хотя они редко выполняются дольше пары минут.

    А всякие тулзы типа капифони и т.д. имеют возможность версионизации. То есть пока у вас поднимается новая версия - старая обрабатывает запросы. Как только миграции будут накачены, капифони просто поменяет симлинки и релоаднет nginx (не перезагрузит, а только реалоаднет).

    А когда приходится при каждой выкатке на сервер еще и за окружением следить вход пускают еще и ansible/puppet. Так же есть еще и Docker.
    Ответ написан
  • Chrome жрет память гигами на пустом месте, как так?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    #ужас #чтоделать #жизньболь

    Ну ликает у вас хром, на маках вот не ликает. А делать что? Для начала можно было бы загуглить. Затем либо откатиться на предыдущую версию либо попробовать 32-х битку.
    https://code.google.com/p/chromium/issues/detail?i...
    Ответ написан
  • Реально ли реализовать PHP демона, который будет держать постоянное соединение с websocket-сервером?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    reactphp + libev попробуйте за основу демона взять.
    Ответ написан
    Комментировать