Вот как должен выглядеть современный php (1)

задняя часть PHP GitHub Composer
Вот как должен выглядеть современный php (1)

Эта статья из среды ----Оригинальная ссылка; Добро пожаловать в нашу группу по изучению php&Laravel: 109256050

Не слишком ли самонадеянно это название? Верно! Несмотря на то, что я работаю с php в течение многих лет, я все еще не могу сформулировать лучшие практики и лучшие инструменты для работы, но я собираюсь начать пытаться это сделать.

Я вижу реальные изменения в том, как разработчики работают с php для разработки, не только язык явно становится более зрелым и надежным с новыми версиями и улучшениями, но и вся экосистема вокруг него меняется.

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

Я не начинаю осваивать новые тенденции на ранней стадии, на самом деле, я применяю новые инструменты только тогда, когда уверен, что за ними стоит поддержка сообщества, и я действительно чувствую, что это улучшит мою работу. Что я часто делаю, так это стараюсь, чтобы мой код соответствовал лучшим практикам.

По этим причинам я провожу время, используя такие инструменты, как Composer и PHPUnit. Около года назад я открыл свое сердце всем этим блестящим новым вещам.

Сначала PSR, потом Composer, PHPUnit, Travis-ci и еще какие-то библиотеки и классные инструменты. Я даже начал использовать IDE (Vim FTW, PHPStrom, интегрированный с Xdebug, является обязательным условием для надежного процесса разработки)!

Что такое современный?

Интернет полон статей о том, насколько плох PHP, насколько плохой была бы ваша жизнь, если бы вам пришлось работать с кодом PHP, насколько уродлив этот язык и о чем еще вы только можете подумать!

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

У меня каждый день возникает несколько вопросов о работе с PHP, но мы не можем закрывать глаза на изменения, происходящие в языке, сообществе и экосистеме. Впереди еще долгий путь, но область PHP созрела.

Я начал создавать SDK для внутреннего API для компании, в которой работаю, в качестве домашнего проекта и решил следовать лучшим практикам. Большинство из них я уже делаю, но я внес некоторые изменения в то, что я делаю. Эти изменения и то, что я узнал в прошлом году, являются предметом этой статьи, которую я называю современным PHP.

Я начал создавать SDK для внутреннего API для компании, в которой работаю, в качестве хобби и решил следовать лучшим практикам. Большинство из них я уже делаю, но я внес некоторые изменения в то, как я делаю некоторые вещи. Эти изменения и то, что я узнал в прошлом году, являются предметом этой статьи, которую я называю современным PHP.

Начнем рабочий процесс

Как я уже сказал, я новичок в этой IDE, phpStorm — очень, очень замечательная программа, и я влюбился в нее с первого взгляда. Это моя первая и единственная IDE. Я впервые пробую IDE, и мне даже не нужно пробовать какую-либо другую IDE.

Идеальное сочетание с XDebug, разрешение пространства имен PHP, интеграция с Composer, интеграция с GIT, автозаполнение, генерация кода, рефакторинг кода и многое другое.

Вам не обязательно использовать IDE, это личное предпочтение. Вы должны использовать любой инструмент, который соответствует вашим потребностям — Vim, Atom, Emacs, Bracket, NetBeans, phpStorm, Eclipse и т. д. Два основных момента здесь — производительность и эффективность. Ваша IDE/текстовый редактор должны помочь вам хотя бы в этих двух пунктах.

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

Я даже не знаю, есть ли другие варианты, в XDebug есть все, что вам нужно. У вас есть несколько минут? Если вы еще этого не сделали, найдите время, чтобы установить Xdebug и интегрировать его в свою IDE или текстовый редактор. Начните отлаживать свой код с помощью правильных инструментов.

GitHub — еще один инструмент, которому я хочу, чтобы вы уделили больше внимания. Здесь дело в интеграции.

Есть несколько инструментов, интегрированных с GitHub, вы должны начать их использовать. Эти инструменты могут генерировать метрики, запускать тесты, запускать задания для вас и выполнять различные действия в рабочем процессе в рамках процесса непрерывной интеграции. Интеграция — хороший повод начать использовать GitHub.

управление зависимостями

Еще одним аспектом современной экосистемы PHP является управление зависимостями, и Composer — это инструмент, который выполняет эту работу.

Composer 5 лет, но на мой взгляд большое количество фич переняли только в последние годы. Может быть, это потому, что я не являюсь первопроходцем, или потому, что разработчики PHP не хотят меняться.

Этот инструмент предоставляет внешний пакет Packagist, который представляет собой библиотеку пакетов PHP, состоящую из библиотек PHP, проектов и инструментов, исходный код которых хранится на GitHub (или в других подобных местах, таких как bitbucket).

Все библиотеки, которые я обсуждал в этой статье, или, может быть, один из ваших проектов, могут быть добавлены в ваш проект с помощью простого следующего метода.

$ composer require package_vendor/package_name

Если вы не знаете распространителя пакета, вы можете найти и установить соответствующий пакет, получив пакет

$ composer search package_nameComposer — отличный инструмент, если использовать его только для управления зависимостями, но он делает и много других вещей. Найдите минутку, чтобы установить Composer и прочитать его документацию.

Правильное использование интерфейса командной строки

Мне очень нравится использовать интерфейс командной строки, чтобы быстро опробовать идеи. Отличным инструментом для меня является IPython REPL. Это может помочь вам завершить ваш код, позволить вам легко определять функции, использовать документацию и некоторые другие удивительные функции. К сожалению, этот инструмент предназначен для Python, а не для PHP.

В мире PHP у нас есть так называемый «интерактивный режим», к которому можно получить доступ через терминал, набрав:

$ php -a
Interactive mode enabled
php >

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

К счастью, есть классный новый CLI (интерфейс командной строки), и он называется Psysh. psysh — это удивительный инструмент, полный интересных функций, который можно установить глобально или локально с помощью Composer.

Для меня лучшей особенностью psysh является встроенная документация. Очень удобно получить доступ к документации функции PHP, не заходя на php.net. Недостатком является то, что вам нужно будет выполнить дополнительную настройку, прежде чем он станет полностью функциональным.

После установки введите следующую команду (здесь я использую Debian, это может не сработать для всех), чтобы она заработала.

$ apt-get install php7.1-sqlite3
$ mkdir /usr/local/share/psysh
$ wget http://psysh.org/manual/en/php_manual.sqlite -o /usr/local/share/psysh/php_manual.sqlite

Первая команда необязательна, если вы уже установили Sqlite, вы можете пропустить этот шаг. Вторая команда создает каталог для сохранения документа, а третья команда загружает документ и сохраняет его в каталог, созданный на втором шаге.Обратите внимание, что все команды должны выполняться пользователем root.

Тогда вы можете сделать это:

Перейдите на веб-сайт Psysh, чтобы узнать больше об этом инструменте.