• Какое посоветуете легкое IDE для PHP под Linux?

    nonlux
    @nonlux
    То что пробовал и какие впечатления получал:
    - Netbeance
    мое первое нормальное IDE for web хз какой версии.
    Этого еще под виндой пробывал
    - Eclipse ( честно не хватило тарпения настроить под себя)
    - Aptana (больше всего вкатило)
    - Zend studio (не сложилось, какие-то глюки были, сейчас не помню)
    Выбрал потому что до этого писал на нем пару проектов под java.
    Все круто подсветка, дополнение кода, тесты, покрытие кода.
    Удобно, ничего не смущало из коробки.

    - PHPStorm
    Увидел в рекламе на хабре.
    Поставил и забыл про Netbeance.
    Как-то все здорово, понятнее что ли. И настройки и оформление. Короче захватило.

    - vim
    Бл@#ь что за ху@#я.
    Как выйти? Крестик на терминал эмуляторе решил проблему.

    - PHPStorm все лучше, но я долго стал зависать в консоли, да и совесть мучила от триального PHPStorm

    - Sublime
    Не постиг магию хоткеев. Как редактор хорошо, но как IDE нет c PHPStorm нет сравнения.

    - PHPStorm
    спасибо IDEA за работу.
    но благодоря git composer symfony grunt долго стал сидеть в консоли

    - vim
    Ну делать было вечером, делать было нечего.
    vimtutor - прочитал
    поставил spf13/spf13-vim
    подсел

    - весной снес систему и поставил arch + gnome 3.16
    так гуишечек захотелось

    - brackets vs atom vs sublime 3
    поставил сразу два
    из коробки понравился brackets очень удобный для веб показался
    Далее начался гон за плагинами.
    sublime почему-то вышел из конкурса практически сразу хотя control + P монстр
    brackets почему-то начал постоянно вылетать с ошибками
    atom победил, я даже поставил его как default editor
    Но помучившись пару дней между переключениями окон забил и на него.

    - PHPStorm
    поставил vim эмулятор. С консолью пробовал работать со встроенной, чтобы как с vim работать в одном окне. Выбисило неперключение консоли на окно кода без кучи хитростей без мыши.

    - emacs
    консольная версия как-то не впечатлила. Потыкал настройки попытался повторить вимовские. Не зацепило

    -vim
    Остался, но конфиг постоянно растет.

    Короче для меня
    лучшее IDE - PHPStorm.
    Но vim - это рука, без него не могу и IDE стал не нужен.
    Ответ написан
    1 комментарий
  • Как делать правильный деплой?

    nonlux
    @nonlux
    накрутить можно много и как угодно.
    1. CI сервер их куча разных на любой вкус и цвет
    для repo1 по хуку на какую-нибудь ветку например master или prodaction делаем обновление кода на сервере
    с бд все зависит от организации работы с ней
    если есть механизм миграций, то проблемы вообще нет
    repo 2 заворачиваем в пакет для любого удобного менеджера пакетов npm bower и т.д
    c обновлением по лицензии, я бы не стал ее делать на рабочем сервере сразу, но это вам решать
    2 для удаленной кофигурации так же есть ansible puppet можно их прикрутить
    3 докер - собираете контейнер с приложением, а на сервере тупо обновляете

    короче вариантов много, пробуйте. как правильно никто не скажет. скажут лишь о том что в тренде.
    Ответ написан
    Комментировать
  • Как грамотно создать оповещения в Linux?

    nonlux
    @nonlux
    notify-send
    + если задача в консоли и shell - zsh. Есть плагин для долгоиграющих задач.
    Ответ написан
    1 комментарий
  • Какой workflow front-end разработки у вас?

    nonlux
    @nonlux
    Расклад такой:

    1. Возьми docker контейнер с настроенным окружением для разработки.
    Это удобно если вдруг разработчик станет не один, слетит система, поменяешь рабочее место. Один раз настроил и забыл )
    docker запускает:
    - веб-сервер (можно nginx, можно внутри gulp, все зависит о задачи)
    - livereload сервер, через gulp ( f5 нажимать каждые 3 секунды - это больно
    - gulp watchers ( в ручную компилить всякую хню, запускать тесты скучно )

    2. Запусти vim ( или любой твой любимый редактор)
    3. пиши, бл@#ь, код:
    - less, sass и прочее по мне гораздо удобнее чистого css, меньше пишешь больше кода получаешь.
    - не пиши голый html, используй шаблонизатор любой какой удобнее, я пользуюсь twig, но и простой {{mustache }} подойдет
    4. пользуйся git. И пользуйся им часто.
    - для приветных проектов поставь gitlab
    - используй gitworkflow, ну или сделай хотя бы 2 ветки: например master и prodaction (об этом позже)
    5. CI
    - работая ты все равно допустить кучу ошибок. Проверка синтаксиса, валидация по стандартам, тесты - это все поможет тебе не облажаться.
    - если ты будешь это делать сам потеряешь кучу времени просто на то что бы запускать и проверять всю свою работу. ci сервер поможет тебе убрать эту рутину из свое жизни.
    6. Кроссбраузенрость
    - используй browserstack ( или аналоги) для просмотра результатов своей работы
    - ну уж если нашел ошибку бери реальный браузер ( или в виртуалке) занимайся отладкой
    - получение скриншотов легко подключается к ci
    - а так же из коробки работает и с локальными серверами
    7. Обратная связь с заказчиком
    - для ветки master (да и вообще для любой другой ветки) в git ты легко с помощью ci сервера + docker можешь поднимать сайт c последними обновлениями кода
    - делай это у себя и можешь не боятся, что заказчик сможет забрать твою работы и забыть заплатить
    8. Деплой
    - я просто использую на нужном сервере gitlab-ci-worker и получаю все аналично п.7
    - но для этого использую только ветку prodaction, в которую выкладываю стабильные изменения по готовности
    - просто хостинг - все, что угодно ( shell, ansilbe + ssh ) через ci server
    - И да не забудь что для prodaction надо бы все ассеты по сжимать ( да, да я про ci)
    9 Be happy
    Выкинь рутину, и делай то что тебе нравится. Пиши код))

    P.S.
    Это не наставление как надо работать, не реклама инструментов. Это описание моего workflow.
    Ответ написан
    8 комментариев
  • Есть ли графический интерфейс программирования без кодинга (например для JS)?

    nonlux
    @nonlux
    Если понимаешь приблизительно как работает веб фронт ( html + css + js ). То можешь делать так:
    Бери сверстанную страницу прототипа, подключай нужные тебе скрипты js и пиши логику анимаций и переходов в https://developers.google.com/blockly/
    и профит )
    Ответ написан
  • Можно ли делать веб-дизайны в aillustrator?

    nonlux
    @nonlux
    Можно делать дизайны и в паинт, все зависит от того кто эти дизайны делает.

    А по делу. Мне гораздо удобнее делать прототип и дизайн с помощью AI.
    Минимальные переделки на прототип -> дизайн -> верстка.
    Ответ написан
  • Как распарсить строку и построить дерево категорий товаров и услуг?

    nonlux
    @nonlux
    Почитай банду четырех )
    Например интерпритатор
    Ну и многое другое от них, позволит создать лаконичный парсер.
    Ответ написан
    Комментировать
  • Как спрятать роут от залогиненных юзеров в Symfony2?

    nonlux
    @nonlux
    Вообще я похоже делал
    security.yml
            -
                path: ^/register
                allow_if: "!has_role('ROLE_USER')"


    + кастомизируем 403 станицу на перенаправление
    Ответ написан
  • Как правильно верстать PSD-макет c шириной 1663px или Какими должны быть требования к макетам для дизайнеров?

    nonlux
    @nonlux

    В итоге его пришли с заказчиком к выводу просто сжать пополам и сверстать под стандартные ширины контейнеров для разных устройств (1170px/970px/750px/auto).
    И вообще, какими должны быть требования к макетам для дизайнеров?

    Сами ответили на этот вопрос )
    требуйте макеты четыре разных макета:
    - от 1170px,
    - от 970px до 1170px
    - от 750px до 970px
    - до 750px

    Соответственно ваш макет 1663px это 1 ( из первой категории) его делать резиной до 1170px
    А далее требуйте пояснений от дизайнера заказчика.
    Ответ написан
    Комментировать
  • Как в Vagrant конфигурировать Shared Folders на хосте под Win и виртуалке Linux?

    nonlux
    @nonlux
    sshfs - для меня оказался самым нормальным вариантом.
    Вагрант активно не использую уже около года. Но на тот момент это оказалось наиболее адекватное решение, у которого не возникало проблем с `chmod +x`
    Клиенты на вин есть.

    Единственное, но shared folders обеспечивалось не средствами вагрант, а тупо sshd

    А вообще попробуйте уйти от разработки на винде...
    После 3-4 лет разработки на под линукс, попробовал поработать в вин. Реально много проблем возникает на пустом месте )))
    Ответ написан
    2 комментария
  • Как выяснить, на каких сайтах сидят юзвери?

    nonlux
    @nonlux
    Можно проще поставь dns server например этот образ докер https://hub.docker.com/r/phensley/docker-dns/
    Переключай dns на себя и смотри куда просятся пользователи )
    Ответ написан
    3 комментария
  • На сколько правильно использовать для composer-а git форки (fork) в своём проекте?

    nonlux
    @nonlux
    Алексей Уколов +1
    Проведем аналогию с идеализированным алгоритмом работы ФСТЭК для лицензии ПО с гос. тайной
    1. Берется определенная версия ПО
    2. Проводится полный аудит кода
    3. Данная версия ПО получает лицензию

    Но подумайте о том, что бы работать на ПЭВМ в гос тайной надо проверить весь стек ПО

    Поэтому просто забейте на эту параною.
    Подумайте:
    1. веб-сервер, php, git делают одни люди
    2. Вторые люди собирают это под ту ос, что вы используете
    3. Администраторы железа на вашем хостинге - это третьи люди
    4. Администраторы магистральной сети - это четвертые

    Враги кругом.
    Вы можете делать аудит всего стороннего кода, но у вас больше шансов написать огромную дыру в вашем приложении, где любой пользователь сделает rm -fr.

    А для того чтобы окружить себя от нерадивых чужих разработчиков тестируйте свой код, тестируйте приложение в изолированном окружении ( в контейнере), а только потом выкидывайте все на production сервер
    Ответ написан
    Комментировать
  • Как найти системный и глобальный конфигурационные файлы git'а, если в стандартных местах для Ubuntu их нет?

    nonlux
    @nonlux
    183614956 +1

    Файл ~/.gitconfig у ввас есть просто скрытый

    P.S По вашей ссылке
    Эти параметры могут быть сохранены в трёх местах:

    Это не значит что git при установке их создает.
    Это значит вы можете их создать ))

    sudo touch /etc/gitconfig
    Ответ написан
    Комментировать
  • Как получить массив атрибутов класса используя get_object_vars в родителе?

    nonlux
    @nonlux
    Melkij +1
    родительский класс не будет видеть private метод объявленные в наследниках.
    На пальцах ООП тут работает так:
    Catalog->__toString() на сам деле работает так Catalog::parent->__toString() (т.е функция вызывается в контексте Table)
    Если уж очень хочется именно через get_object_vars, то он должен вызываться у наследников. Как вашем комментарии или так:
    <?php                                                                                                                                                                                       
                                                                                         
      class Catalog extends Table {                                                      
        private $type;                                                                   
        private $desc;                                                                   
        protected $prot;                                                                 
        public $pub;                                                                     
                                                                                         
        protected function getMetods() {                                                 
          $vars = get_object_vars($this->self);                                          
          return array_keys($vars);                                                      
        }                                                                                
                                                                                         
      }                                                                                  
                                                                                         
      abstract class Table {                                                             
        public $perPub;                                                                  
        protected $perProt;                                                              
        private $perPriv;                                                                
        protected $self;                                                                 
        abstract protected function getMetods();                                         
        public function __toString() {                                                   
          return implode(', ', $this->getMetods());                                      
        }                                                                                
      }                                                                                  
                                                                                         
      $o=new Catalog();                                                                  
                                                                                         
      echo (string) $o;
    Ответ написан
    2 комментария
  • Использование .json файла с настройками key bindings user from Sublime text в vim?

    nonlux
    @nonlux
    Такого не встречал. Но если это json в чем проблема из него сгененировать vim конфиг на любом доступном вам языке?
    Ответ написан
    Комментировать
  • Нужно ли после установки PHP устанавливать дополнительные модули?

    nonlux
    @nonlux
    Я обычно ставлю так:
    apt-get install php5-cli php5-fpm
    все это основное что будет необходимо для работы php.
    Вы при установке увидите какие зависимости оно тянет.

    Дальнейшие расширения необходимы в зависимости от проекта.
    Почитайте мануал по php. Там описано какие расширения идут в поставке по умолчанию, какие нет.

    Т.е если расширение популярно, то оно обычно доступно в репозиториях вашей ос.
    И при необходимости вы его можете поставить.
    Ответ написан
  • MongoDB - как получить список полей коллекции?

    nonlux
    @nonlux
    Doctrine ORM -> Doctrine ODM очень легко переходит. Но я не знаю как у вас построен проект. И насколько сложно будет это все перести на ООП
    Ответ написан