• В чем преимущества *nix, linux перед windows (для веб разработчика)?

    DevMan
    @DevMan
    1. вы получаете окружение близкое или идентичное к продакшену.
    2. вы получаете внятную консоль/шел из коробки.
    3. вы избавляетесь от массы вопросов типа "на локалке все работает, а залил на сервер и получил жопу" (или наоборот).
    4. у вас появляется более лучшее понимание как на сервере все работает.

    при теперешнем развитие технологий и производительности железа, нет необходимости себя ломать.
    можно попробовать в виртуалке (docker/vagrant)/дуалбуте и самому для себя решить стоит или нет.
    Ответ написан
    17 комментариев
  • PhpStorm и задачи (trello, wunderlist)?

    skobkin
    @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Тестил через Tasks, но там как-то очень все заморочено, создается новая ветка в гите и т.д.

    Вы не поверите, но люди так и работают над задачами.
    Ответ написан
    Комментировать
  • Как правильно сохранить модель в Laravel?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Laravel
    Если вы следуете методологии REST, то у вас post_id не в $data, а прямо в URL.
    И тогда метод контроллера будет выглядеть примерно так:
    public function save(Post $post, Request $request) {
      $fields = $request->only(['field', 'other_field']);
      $post->comments()->save($fields);
    }

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

    Первый способ - процедурный. Связь между сущностями описана в "магическом" поле в каком-то массиве. Он имеет право на существование в каких-то технических консольных скриптах, например (и то не всегда).
    Второй - объектно-ориентированный и легче читается. Этот код очень хорошо коррелирует с методологией REST, когда мы оперируем сущностями, а не массивами и абстрактными объектами.
    Ответ написан
    3 комментария
  • Какие есть сайты для проверки своих знаний PHP?

    @ArtemioVegas
    php developer
    Вот хороший тест от компании Badoo на знание PHP/MySQL/Linux
    php.feedme.ru
    Ответ написан
    Комментировать
  • Какие есть сайты для проверки своих знаний PHP?

    certification.mail.ru

    Поделитесь пожалуйста потом полученным сертификатом) Думаю что mail.ru не посчитает Вас сеньор-сеньором)
    Ответ написан
    2 комментария
  • Как проанализировать код большого проекта на PHP на наличие неиспользуемых кусков кода и файлов?

    kopyrin
    @kopyrin
    системный администратор, программист,
    Есть еще ряд полезных инструментов, которые могут пригодиться для тестирования качества кода:
    PHPDCD - Dead Code Detector (DCD) для PHP. Он сканирует в PHP проекте все неиспользуемые функции и методы и сообщает о них.
    $ composer global require 'sebastian/phpdcd=*'
    $ sudo ln -s ~/.composer/vendor/bin/phpdcd /usr/local/bin/phpdcd
    Пример проверки:
    project_directory$ phpdcd .
    PHPMD - PHP Mess Detector. Помогает найти в коде потенциальные проблемы, такие как возможные ошибки, субоптимальный код, усложненные выражения, неиспользуемые параметры, методы, свойства.
    $ composer global require 'phpmd/phpmd=2.2.*'
    $ sudo ln -s ~/.composer/vendor/bin/phpmd /usr/local/bin/phpmd
    Пример проверки:
    project_directory$ phpmd . text codesize,unusedcode,naming
    PHP Depend - показывает качество дизайна кода для расширяемости, повторного использования и сопровождения.
    $ composer global require 'pdepend/pdepend=*'
    $ sudo ln -s ~/.composer/vendor/bin/pdepend /usr/local/bin/pdepend
    Пример запуска
    phpDocumentor - инструмент для генерирования документации из PHP кода.
    $ composer global require 'phpdocumentor/phpdocumentor=*'
    $ sudo ln -s ~/.composer/vendor/bin/phpdoc /usr/local/bin/phpdoc
    Пример запуска:
    project_directory$ mkdir docs && phpdoc -d . -t docs
    PHP CodeBrowser - инструмент для создания HTML презентации PHP кода, где выделены участки с выявленными нарушениями по обеспечению качества инструментов, таких как PHP CodeSniffer или PHPMD.
    $ composer global require 'mayflower/php-codebrowser=~1.1'
    $ sudo ln -s ~/.composer/vendor/bin/phpcb /usr/local/bin/phpcb
    Пример запуска:
    project_directory$ mkdir cb && phpcb -s . -o cb
    PHP Copy/Paste Detector (PHPCPD) - инструмент для поиска дублированного кода.
    $ composer global require 'sebastian/phpcpd=*'
    $ sudo ln -s ~/.composer/vendor/bin/phpcpd /usr/local/bin/phpcpd
    Пример проверки:
    project_directory$ phpcpd .
    PHPLOC - инструмент для быстрого измерения размера и анализа структуры PHP проекта.
    $ composer global require 'phploc/phploc=*'
    $ sudo ln -s ~/.composer/vendor/bin/phploc /usr/local/bin/phploc
    Пример проверки:
    project_directory$ phploc --log-xml phploc.xml .
    PHP CodeSniffer - набор из двух PHP инструментов. Основной - phpcs, позволяет выявить нарушения стандартов кодирования в PHP, CSS и JS файлах. И второй - phpcbf, позволяет проводить автоматическую коррекцию стандартов. PHP CodeSniffer является важным инструментом , благодаря которому код остается чистым и последовательным.
    $ composer global require 'squizlabs/php_codesniffer=*'
    $ sudo ln -s ~/.composer/vendor/bin/phpcs /usr/local/bin/phpcs
    Дополнительная проверка стандарта Symfony2 для PHP CodeSniffer:
    $ cd ~/.composer/vendor/squizlabs/php_codesniffer/CodeSniffer/Standards
    $ git clone git://github.com/escapestudios/Symfony2-coding-standard.git Symfony2
    $ cd Symfony2
    $ git checkout 2.0.1
    Пример проверки:
    project_directory$ find . -type f -name '*.php' -exec phpcs --standard=Symfony2 '{}' ';'
    Ответ написан
    Комментировать
  • Как перенести laravel на хостинг?

    zvermafia
    @zvermafia
    WebDev
    Первое что надо учитывать это полный доступ к серверу, то есть чтобы было возможно установить необходимые программы...
    Второе если вы новичок по VDS, было бы намного легче если есть какой нибудь панель управления с сервером. А то будет не много проблем с созданием доменов/директорий для сайта...

    Если используете Git, то:
    1. подключаетесь к серверу через SSH (с начало настраиваете подключения по SSH);
    2. Клонируете проект (из репозиторий);
    3. Выполняете composer install (конечно composer тоже должно быть установленным);
    4. Выполняете миграцию php artisan migrate;
    5. Наслаждаетесь!

    UPD: Deployer — Deployment tool for PHP. Есть готовые настройки для Laravel apps. Очень удобно!
    Ответ написан
    3 комментария
  • Как правильно вести разразработку в PhpStorm?

    sggr
    @sggr
    PHP, Ruby, GO
    Tools->Deployment->Options
    Выставляете галочку на Prompt when overr.....
    Выставляете Automatic Upload в Tools->Deployment
    В итоге после смены ветки/генерации кода/тдтп - изменения отправляются на сервер.

    Но:
    Разработка на удаленном сервере нужна только если Ваш проект сложный и развернуть полноценную рабочую версию тяжело. Например микросервисы. Когда их 20+ поднять полноценное приложение на локальной тачке тяжело, да и порой невозможно, ресурсов не хватит.

    В остальных случаях:
    Никогда не загрязняйте свою хост машину. Используйте vagrant + любой devops софт. Самое простое использовать puphpet. Используйте vcs(git/svn/mercurial), для контроля версий приложения.
    Деплоить можно по разному, тут кто на что горазд, от сборки на локальной тачке и заливке через scp до CI(gitlab, capistrano, jenkins), это тема другого вопроса.

    PS: также, если вы разрабатываете не на винде(лучше сразу отвыкайте), то можно смонтировать nfs директорию, которая будет автоматом подгружать ваши изменения, но уже на уровне операционной системы, а не IDE.

    UPD: d3e6b0993ce2438a8e419ecb9c22b161.png

    UPD2: Под разработкой на сервере я подразумевал девелоперский сервер\контейнер.
    UPD3: Upload External Changes должен выгружать изменения с сервера, но помоему он у меня не заработал по ssh, точно не помню, можете попробовать =)
    Ответ написан
    7 комментариев
  • "Сильные" книги по Symfony и архитектуре приложений?

    by25
    @by25
    Веб-разработчик
    1. Мэтт Зандстра "PHP: объекты, шаблоны и методики программирования" - Врубиться в ООП
    2. Эрик Фримэн и ко "Паттерны проектирования" (Head First) - Влюбиться в ООП
    3. Эрик Эванс "Предметно-ориентированное проектирование" - научиться проектировать сложные системы
    4. Крэг Ларман "Применение UML 2.0 и шаблонов проектирования" - про проектирование, глубокое понимание ООП
    Ответ написан
    Комментировать
  • Какими знаниями о http/https должен обладать web-разработчик?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Для HTTP: Что такое URI и какие заголовки для чего используются.
    Для HTTPS: принцип работы, настройка на сервере, SSL/TLS, OpenSSL, проверка и генерация сертификатов с различными типами и алгоритмами шифрования.
    Ответ написан
    5 комментариев
  • Какими знаниями о http/https должен обладать web-разработчик?

    aRegius
    @aRegius
    Python Enthusiast
    На мой взгляд, категория "обязательно должен знать" довольно субъективна. Есть конкретный работодатель - есть конкретные требования к требуемому набору инструментов. Т.е. типовые "обязалки" нужно, наверное, смотреть в инфо о вакансиях.

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

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

    Когда я только начинал изучать программирование (я выбрал back-end), мне нужна была подобная информация для того, чтобы чувствовать себя более-менее комфортно в этой теме (т.е. я хотел сам в ней разобраться, понимая, что это и нужно, и интересно). И моим мотивом, в данном случае, был вовсе не тот факт, что кто-то, или что-то "обязало" меня это выучить.

    Посмотрите, она была в открытом доступе. Полагаю, ознакомившись с оглавлением (там конкретно разбито по главам, о чем там речь, какие темы... ) вы сами поймете, то ли это, что вам нужно и определитесь с тем, в каком объеме вам это нужно, чтобы чувствовать себя комфортно. Это, повторюсь, все довольно субъективно. (Я например, когда читал оглавление, сходу для себя отмечал: "О, это мне нужно... О, здорово, это тоже пригодиться... Это, пока, пропущу..." и т.п. В сухом остатке понял, что это то, что мне нужно.)

    P.S. Я еще новичок по меркам IT, поэтому копнуть глубже (если, конечно, вам нужно глубже) не в моей компетенции. Чем смог, как говорится. Успехов!
    Ответ написан
    1 комментарий
  • Из чего состоит окружение продвинутого php разработчика?

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

    1. docker-окружение
    (в 90% случаев для веб-разработки достаточно php -S 0.0.0.0:8000)
    виртуальные машину становятся нужны:
    - когда надоест переустанавливать хост-систему из-за обилия хлама
    - когда работаешь с несколькими проектами имеющие специфические (разные) настройки окружения(php, web-сервер, база)
    - когда надоест решать проблемы в команде из-за того что по разному настроено окружение

    2. git - система контроля версий
    Помнить что ты и когда изменял, должен не человек, а машина.
    Это необходимо:
    - чтобы не испортить всю работы за прошедший год нажав del
    - чтобы определить кто из команды злодей и все испортил
    - чтобы не думать как перенести свежую версию проекта с одной машины на другую

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

    4. behat + phpspec
    Тесты нужны:
    - когда хочется почувствовать себя безопасности и для сладко спать ночь, забыв о кошмарах о сломанном коде
    - когда в production все снова сломалось
    - когда ты написал одну новую фичу, а сломал три

    5. zsh
    Хорошей консолью приятно пользоваться, работа идет быстрее.
    Консоль есть жизнь, жизнь есть shell.

    6. tmux
    Мало одно окошка в консоли, тогда tmux идет к вам.
    В качестве бонуса получите возможность парного программирования совершенно бесплатно

    7. tmuxinator
    Надоело каждый раз открывать кучу окон для tmux, попробуйте его )
    8. vim
    - Потянуло на что-нибудь необычное?
    - Хочется эффективнее писать код ?
    Ну что открыли vim? В первый раз? Поздравляю закрыть вы его не сможете )
    Вызывает зависимость при частом потреблении


    9. continuous integration сервер
    Вообще ci сервер это одушевленная машина. Это твой тамагочи, ты кормишь его хорошим кодом, он радуется и ты видишь приятный зеленый огонек. Если ты дал с код от скажет что не вкусно. Ну а если ты ему, что гнилое он будет долго на тебя орать плохими словами. Со временем он растет и учится делать более серьезные вещи, и начнет помогать тебе:
    Его скилы:
    - он может сам выполнить 10 минутные тесты
    - подготовить и опубликовать проект
    - рассказать о твоем коде, даже то что ты не знаешь
    Он легко обучается и ты легко сможешь научить его удивительным вещам.

    10. куча линтеров на pre commit hook
    Чтобы ci не кормить плохими продуктами, хорошо бы проверять что ты сделал до отправки на сервер. Что бы не забыть это сделать git сам работу.

    11. gulp
    gulp - это еще один твой помощник.
    как если использовать, как watcher файлов + livepreview, можно забыть о F5 в браузере

    12. bower
    Тоже что и composer но для управления ассетами. Это я о всяких jQuery и Bootstrap

    666. Линукс
    Даже если не хочется ставить как хост-систему, его все равно надо знать. Ваш код будет работать на нем )
    Ответ написан
    16 комментариев