Пяць інструментаў для паляпшэння PHP

Аўтар: Louise Ward
Дата Стварэння: 5 Люты 2021
Дата Абнаўлення: 18 Травень 2024
Anonim
Пяць інструментаў для паляпшэння PHP - Творчы
Пяць інструментаў для паляпшэння PHP - Творчы

Задаволены

Калі мы працуем над нашымі дадаткамі, незалежна ад абранай мовы, часам мы можам занадта шмат засяродзіцца на самім кодзе. Сапраўды добры жыццёвы цыкл распрацоўкі - гэта нашмат больш, чым код, ён уключае ў сябе некалькі дапаможных інструментаў, якія забяспечваюць якасць і надзейнасць прыкладання як самастойнай сутнасці, так і жывой істоты пры яго разгортванні. З гэтай мэтай у гэтым артыкуле разглядаюцца пяць інструментаў для паляпшэння прыкладанняў PHP: PHP Code Sniffer, PHP Documentor, Supervisord, Phing і Uptime Robot, каб сачыць за вашым цудоўным надзейным і нядаўна разгорнутым сайтам.

01. PHP-код Sniffer

Першы з гэтых інструментаў пачынаецца даволі блізка да кода, бо PHP Code Sniffer - гэта інструмент для праверкі адпаведнасці кода зададзеным стандартам кадавання. Ён пастаўляецца са сваімі ўласнымі ўбудаванымі правіламі, альбо вы вельмі лёгка можаце зрабіць свае ўласныя. Выкарыстанне PHP Code Sniffer азначае, што вы можаце праверыць, наколькі ваш праект узгоднены і чытэльны ва ўсім. PHP прагназуе прабелы, таму размяшчэнне дужак, новых радкоў і водступаў не ўплывае на спосаб аналізу і запуску кода - дык навошта турбавацца з такім інструментам?


Выкананне стандартаў кадавання азначае забеспячэнне мінімальнага стандарту адпаведнасці і чытальнасці. Гэта азначае, што ўвесь ваш праект прытрымліваецца пэўных рэкамендацый, што дазваляе лёгка чытаць і падтрымліваць. Улічваючы, колькі часу праводзіць сярэдняе вэб-дадатак у рэжыме абслугоўвання, гэта вельмі важная асаблівасць.

PHP Code Sniffer даступны праз PEAR, і яго старонка праекта знаходзіцца тут. Мяркуючы, што ў вас усталяваны PEAR (калі вы не выкарыстоўваеце PEAR, то праверце яго, там ёсць некалькі выдатных інструментаў!), Вы можаце ўсталяваць яго з дапамогай наступнай каманды:

груша ўсталяваць PHP_CodeSniffer

Пасля ўсталёўкі вы можаце адразу паспрабаваць праверыць стандарты кадзіравання вашага праекта ў адпаведнасці з адным з усталяваных стандартаў. Каб убачыць, што ўсталявана, выкарыстоўвайце phpcs -i з каманднага радка. Маім асабістым улюбёным з'яўляецца стандарт Squiz, ён менш драконаўскі, чым груша, але ўсё яшчэ даволі поўны. Цалкам верагодна, што (калі ваш праект ужо не прыняў стандарты кадавання) будзе шмат папярэджанняў, таму я лічу карысным пачаць з стварэння зводнага справаздачы. Выканайце наступную каманду з каталога, які змяшчае код праекта:


phpcs --report = рэзюмэ --standard = Squiz.

Вы ўбачыце вывад, які выглядае прыблізна так:

Патрабуецца некаторы час, каб прайсці і выправіць розныя папярэджанні, але варта прыкласці намаганні, даючы чысты і чытэльны код і звяртаючы ўвагу на якасць таго, што мы ствараем як распрацоўшчыкі. Калі ўкусы, якія ўваходзяць у камплект па змаўчанні, не адпавядаюць вашым патрэбам, вы можаце стварыць свой! Для гэтага ёсць выдатная дакументацыя, і гэта вельмі даступная задача, асабліва калі вы з задавальненнем "выбіраеце і змешваеце" існуючыя нюхі.

PHP Code Sniffer асабліва магутны, калі ён з'яўляецца часткай аўтаматызаванага працэсу зборкі, так што існуе пастаянны цыкл зваротнай сувязі аб стане адпаведнасці стандартам кадавання. Мы разгледзім гэта пазней, калі паглядзім на Пхінг.

02. Дакументатар PHP

Вымярэнне і генерацыя артэфактаў з кода без фактычнага запуску называецца статычным аналізам. PHP Code Sniffer - адзін з прыкладаў інструмента статычнага аналізу, а PHP Documentor - іншы. PHP Documentor счытвае структуру вашага кода, структуру файлавай сістэмы, класы, функцыі і ўсё, што паміж імі, і стварае з гэтага дакументацыю. Гэта становіцца яшчэ лепш, калі вы дадаеце дадатковыя каментарыі ў пэўнай натацыі, каб дадаць дадатковую інфармацыю пра розныя элементы кода.


Усталёўка для PHP Documentor ажыццяўляецца праз PEAR, таму, яшчэ раз, гэта вельмі проста. Аднак PHP Documentor запускае ўласны канал PEAR, таму для ўсталёўкі гэтага інструмента патрэбныя дзве каманды:

грушавы канал - адкрыйце pear.phpdoc.org
груша ўсталяваць phpdoc / phpDocumentor-alpha

Пасля ўстаноўкі ў вас будзе phpdoc праграма, даступная ў вашым камандным радку. Раскажы phpdoc з якой тэчкай дакументаваць і дзе напісаць выходныя файлы -d. Вы таксама можаце наладзіць фармат вываду і шаблоны, якія ён выкарыстоўвае, так што вы можаце ствараць шаблоны для ўласнай арганізацыі, калі гэта неабходна.

У якасці прыкладу паглядзім гэты фрагмент з класа TimeZone (узяты з сайта зваротнай сувязі з падзеі Joind.in, які з'яўляецца адкрытым зыходным кодам, таму ўвесь код знаходзіцца на GitHub):

? php

/**
* Бібліятэка класаў для працы з дадзенымі / праблемамі часу для мерапрыемстваў / размоў
*
* PHP, версія 5
*
* @category Joind.in
* Кантролеры @package
* @copyright 2009 - 2013 Joind.in
* @license http://github.com/joindin/joind.in/blob/master/doc/LICENSE JoindIn
* @link http://github.com/joindin/joind.in
*/
клас Часавы пояс
{

/**
* Атрымайце бягучы час на мерапрыемстве, дзе ў падзеі зрушаны гадзінны пояс
* з $ evt_offset гадзін
*
* @param integer $ evt_offset Зрушэнне часу
*
* цэлае вяртанне
*/
публічная статычная функцыя getEventTime ($ evt_offset)
{
$ тут = новы DateTimeZone (date_default_timezone_get ());
$ hoffset = $ тут-> getOffset (новы DateTime ("зараз", $ тут));
$ off = (час () - $ hoffset) + ($ evt_offset * 3600);
вярнуць $ off;
}

/**
* Вяртае адфарматаваную версію getDatetimeFromUnixtime.
*
* @param integer $ unixtime Час Unix для фарматавання
* @param радок $ гадзінны пояс Часовы пояс, які трэба ўсталяваць для пазнакі часу
* @param string $ format Фармат для вяртання
*
* @ вяртанне радка
*/
публічная статычная функцыя formattedEventDatetimeFromUnixtime (
$ непасрэдна,
$ гадзінны пояс,
фармат $
) {
$ datetime = static :: getDatetimeFromUnixtime ($ unixtime, $ гадзінны пояс);
$ retval = $ datetime-> фармат ($ фармат);

вярнуць $ retval;
}
}

Калі PHP Documentor ужываецца да гэтага фрагмента кода (у фактычным класе больш, чым паказана вышэй), вынік прыблізна такі:

Запуск PHP Documentor нават у праекце без каментарыяў па-ранейшаму стварае ўражанне пра структуру праекта і дазваляе карыстальнікам паглядзець, што там ёсць. Любыя каментарыі, якія потым дадаюцца, з'явяцца ў выходных дадзеных. Гэты інструмент цалкам добра суадносіцца з PHP Code Sniffer, пра які ўжо было згадана, таму што многія стандарты PHP Code Sniffer патрабуюць, каб прысутнічалі каментарыі PHP Documentor. Зноў жа, гэты інструмент працуе лепш за ўсё, калі ён запускаецца рэгулярна і аўтаматычна - звычайна дакументы API аднаўляюцца на працягу ночы або пасля аб'яднання кожнага змены, каб яны былі ў курсе і карысныя ў якасці даведачнай інфармацыі.

03. Наглядчык

Supervisord (вымаўляецца як "supervisor dee") - адзін з тых інструментаў, які вам не патрэбны, пакуль вы не напішаце пэўны стыль прыкладання - і тады вы не ўяўляеце, як вы жылі без яго. Вэб-прыкладанні пачынаюць сваё жыццё як просты набор кодаў, які абслугоўвае адказы на ўваходныя запыты. Па меры іх ускладнення ўзнікаюць і іншыя задачы, якія неабходна выконваць альбо перыядычна, альбо ў адказ на пэўную падзею. Такім чынам, як Supervisord дапамагае?
Supervisord сочыць за працяглымі працэсамі. Калі нешта выйдзе з ладу, Supervisord паспрабуе перазапусціць працэс; калі працэс будзе паміраць хутка, Supervisord адмовіцца. Ёсць некалькі асобных рэчаў, якія звычайна можна знайсці ў Supervisord у маіх уласных сістэмах:

  • IRC-боты
  • Рабочыя сцэнарыі, якія цягнуць заданні з чаргі
  • Прыкладанні PHP / node.js, якія абслугоўваюць запыты з каманднага радка

Supervisord вельмі проста ўсталяваць на большасці платформаў (напрыклад, праз мой менеджэр пакетаў у маёй сістэме Linux) і пастаўляецца з панэллю кіравання SupervisorCTL. Калі я запускаю яго, я бачу нешта накшталт:

З гэтага вы бачыце, што працуе мноства працэсаў (некаторыя спынены) і як доўга яны ўжо працуюць (я ўчора перазапусціў сервер!). Гэтая панэль кіравання дае мне магчымасць праверыць рэчы, убачыць запісаныя вынікі ўсіх розных задач і спыніць, запусціць альбо перазапусціць рабочага. Працяглыя працэсы могуць быць цяжка кантраляваць, і гэты інструмент робіць гэта вельмі простым. Пасля таго, як ваша заяўка выходзіць за межы этапу абслугоўвання вэб-старонак, Supervisord - ваш сябар.

04. Пхінг

Phing - гэта сістэма зборкі, аналагічная Ant. Гэта вельмі просты незалежны ад платформы спосаб запуску каманд для запуску розных заданняў у вашым праекце. Шматлікія праекты выкарыстоўваюць яго для разгортвання, але ён можа выконваць любую колькасць іншых задач і для вас, напрыклад, запускаць тэставыя наборы і выкарыстоўваць інструменты статычнага аналізу, такія як PHP Documentor і PHP Code Sniffer, пра якія ўжо гаварылася ў гэтым паведамленні.

Phing даступны праз PEAR і мае ўласны канал PEAR, так што вы можаце ўсталяваць яго па тым самым прынцыпе, што і іншыя інструменты на аснове PHP, якія мы бачылі, выкарыстоўваючы наступныя каманды:

грушавы канал - адкрыйце pear.phing.info
груша ўсталяваць phing / phing

Пасля таго, як ён там, зноў ёсць новая каманда, даступная ў вашым камандным радку. Phing чытае файлы зборкі, напісаныя ў XML (вельмі блізкія да сінтаксісу Ant, але не зусім сумяшчальныя), у якіх можна ўказаць колькасць "мэтаў" альбо каманды, якія Phing ведае, як запускаць. Вось невялікі прыклад:

? xml version = "1.0" encoding = "UTF-8"?>
назва праекта = "joindin" па змаўчанні = "зборка", заснаваная = ".">

target name = "phpdoc" description = "Стварыць дакументацыю API з дапамогай PHPDocumentor">
phpdoc2 destdir = "$ {basedir} / build / api">
набор файлаў dir = "$ {source}" />
/ phpdoc2>
/ мэта>

target name = "phplint" description = "Выканаць php -l па наборы файлаў">
phplint haltonfailure = "true">
fileset dir = "$ {source}">
набор шаблонаў>
уключыце name = " * * / *. php" />
/ набор шаблонаў>
/ набор файлаў>
/ phplint>
/ мэта>

мэтавае імя = "зборка" залежыць = "phpdoc, phplint" />
/ праект>

Гэта фрагмент з праекта Joind.in зноў, з build.xml файл, які, як наладжваецца Phing. Калі мы разглядаем кожны блок па чарзе, мы спачатку маем тэг праекта, які змяшчае імя па змаўчанні і ўсталёўвае Базір ўласцівасць, каб яго можна было выкарыстоўваць у наступных элементах. Унутры тэга праекта ёсць шэраг тэгаў задач. Гэтыя задачы Phing зможа выканаць і ўтрымліваць усю інфармацыю, неабходную для гэтага. Канчатковая мэта - "зборка". Гэта мэта па змаўчанні для гэтага праекта, таму будзе запушчана, калі каманда Phing запускаецца без аргументаў. Гэтая мэта залежыць ад двух іншых, а гэта значыць, што яны таксама будуць запушчаныя.

Phing дае выразны вывад з каманднага радка і генеруе такія артэфакты, як дакументацыя API, якія будуць захоўвацца ў зададзеных месцах, каб мы маглі потым спасылацца на яго. Запуск вышэйпаказанага з каманднага радка дае наступны вывад:

Выхад выглядае не так шмат, але калі мы праверым, што ён запісаў у каталог зборкі, дакументы API знаходзяцца там цалкам, а таксама артэфакты з іншых мэтаў зборкі:

Phing сапраўды ўступае ў сілу для разгортвання. У кожную мэту можна дадаць шэраг заданняў, якія будуць выконвацца па чарзе. Phing падтрымлівае ўсе віды задач (праверце яго дакументацыю), уключаючы апрацоўку экспарту з кантролю версій, сціск і перадачу файлаў, а таксама выкананне каманд па SSH.

Стварэнне мэты Phing для аўтаматызаванага разгортвання вашага праекта - выдатны спосаб зрабіць патэнцыяльна рызыкоўны і складаны працэс вельмі надзейным. Замест таго, каб прытрымлівацца інструкцый на вікі, Phing робіць усе крокі, неабходныя для запуску вашага сайта. Не забывайце, што гэта можа таксама ўключаць перазапуск працоўных сцэнарыяў у вашым дадатку праз Supervisord!

05. Маніторынг стану здароўя сайта

Пасля таго, як ваш сайт працуе, хочацца думаць, што праца выканана, але вельмі карысна сачыць за справамі. Маніторынг не азначае, што кліент патэлефануе вам і паведаміць, калі яго сайт перастане працаваць. Замест гэтага мы выкарыстоўваем інструмент для праверкі перыядычнасці ўсё ў парадку і паведамляем, калі гэта не так.

У гэтай галіне мноства варыянтаў, але мы разгледзім два віды маніторынгу: маніторынг абвесткі, які паведамляе, што сайт не працуе, і маніторынг тэндэнцый, дзе мы можам усталяваць парогі для зададзеных, вымераных значэнняў. Маніторынг папярэджанняў - гэта вельмі асноўная праверка на сайце. Калі сайт ёсць, усё ў парадку. Калі сайт не адкажа, ён папярэдзіць вас аб наяўнасці праблемы.

Самая простая ўстаноўка маніторынгу ўказвае на паспяховы адказ HTTP на вэб-запыт на дадзены URL. Калі адказу няма, альбо атрыманы адказ пра памылку, сайт лічыцца "недаступным". Звычайна вы можаце наладзіць службы, якія прапануюць такі маніторынг, каб звязацца з вамі, калі гэта павінна адбыцца па тэлефоне або электроннай пошце. Адным з пастаўшчыкоў гэтага віду паслуг з'яўляецца Uptime Robot, які дазваляе лёгка кантраляваць сайты, а таксама паказвае, калі сайты не працуюць ці не.

Выкарыстоўваючы гэты сэрвіс, мы таксама можам наладзіць маніторынг кантэнту. Гэта правярае, ці ёсць у адказе нейкі элемент, які там павінен быць. Гэта дапамагае падабраць, калі вяртаецца змест, але не чаканы змест (напрыклад, калі вы бачыце старонку "гэта працуе!" Ад Apache). Гэта можа быць чымсьці простым, як тэкст, які павінен з'явіцца на старонцы, якая кантралюецца.

Часам вы таксама ўбачыце маніторынг пінга, але цалкам магчыма, што машына рэагуе на пінг, але не можа паспяхова абслугоўваць адказы HTTP. Я аддаю перавагу маніторынгу HTTP.
Маніторынг тэндэнцый разглядае больш складаныя паказчыкі і часта ўключае інструмент, які працуе на самім серверы. Гэта можа ўлічваць колькасць працэсаў вэб-сервера, выкарыстанне памяці альбо час водгуку старонак і адсочваць, як яны змяняюцца з цягам часу. Інструменты маніторынгу дазволяць усталяваць парогі, калі, калі пэўная частка дадзеных будзе занадта высокай альбо нізкай, на працягу пэўнага перыяду часу вы будзеце нейкім чынам апавешчаныя. Часам гэта падпісвае людзей аперацый, часам экран прыборнай панэлі ў куце зменіць колер; правільны адказ цалкам залежыць ад вашай заяўкі.

06. Лепшыя інструменты

Паляпшэнне нашых інструментаў і працэсаў патрабуе часу, а часам і грошай. Аднак добрыя інструменты дазваляюць кожнай частцы працэсу распрацоўкі працаваць бесперабойна і паўтаральна, і даюць вялікую аддачу ад часу, які мы ўкладваем у іх паляпшэнне. Гэты артыкул накіраваны на выбар, якім вы, магчыма, яшчэ не карыстаецеся, але які з'яўляецца перавагай для працэсу бязбольнага развіцця.

Лорна - незалежны кансультант, трэнер і аўтар веб-распрацоўкі, які базуецца ў Лідсе, Вялікабрытанія. Яна з'яўляецца спецыялістам PHP і працуе з камандамі, каб атрымаць максімальную аддачу ад іх прыкладанняў, іх інструментаў і людзей. Лорна з'яўляецца звычайным дакладчыкам канферэнцыі і вядучым распрацоўшчыкам праекта з адкрытым зыходным кодам Joind.in.

Нашы Публікацыі
Спампаваць файлы 3D World для выпуску 209
Далей

Спампаваць файлы 3D World для выпуску 209

Каб загрузіць суправаджальныя файлы да выпуску 3D World 209, проста націсніце спасылку пад кожным артыкулам, і ZIP-файл аўтаматычна загрузіць змесціва на ваш Mac або ПК.Калі вы прапусцілі гэты выпуск ...
Выдавецтва Five Simple Steps вярнулася
Далей

Выдавецтва Five Simple Steps вярнулася

Месяц пасля нечаканага закрыцця "Пяці простых крокаў", выдавец мэтанакіраваных вэб-кніг, знайшоў новы дом. Першапачатковыя ўладальнікі Mark і Emma Boulton зачынілі краму пасля таго, як Mark ...
БЛОГ ТЫДНЯ: Творчы агляд
Далей

БЛОГ ТЫДНЯ: Творчы агляд

Удзел у камандзе Creative Bloq азначае, што нам пашанцавала правесці свае працоўныя будні, правяраючы іншыя цудоўныя дызайнерскія блогі. І там шмат насычанага інфарматыўнага і натхняючага зместу.Такім...