PSR-kirjausliittymä (ja miksi kirjaaminen on tärkeää)
Kaksi PHP:n ominaisuutta, joita mielestäni käytetään usein liikaa "virheenkorjauksessa", ovat echo ja var_dump. Olen puhunut tästä muutamassa eri virheenkorjausta käsittelevässä artikkelissa (kuten täällä ja täällä ).
Ja niin paljon kuin olen debuggerin käyttämisen fani, mielestäni on myös tärkeää ottaa käyttöön eräänlainen lokijärjestelmä, jotta sinä tai asiakkaasi voitte palata tarkastelemaan järjestelmässä tapahtuvaa toimintaa heidän tai heidän käyttäjiensä käyttänyt sitä.
Tämän tekemiseen on kuitenkin kaksi näkökohtaa, varsinkin jos haluat seurata PSR-kirjausliittymää, ja ne ovat:
- varsinaisen kirjausliittymän säännöt,
- projekti, joka toteuttaa oikein mainitun lokirajapinnan.
Joten miksi et käsittele molempia tässä viestissä?
PSR-kirjausliittymä
PSR – lokirajapinta (tai PSR-3) kattaa useita asioita, joista voit lukea tarkemmin varsinaisella sivulla.
Nämä sisältävät:
- Perusteet
- Viestit
- Konteksti
- Auttajaluokat
- Paketit
- Liitännät
- Lokitasot
- Ja enemmän.
Mutta tämän artikkelin tarkoituksiin haluan puhua nimenomaan käyttöliittymästä itsestään, sen toteuttavasta projektista ja siitä, miksi se on tärkeä.
Kirjausliittymä
Asiakirjan kotisivulla lukee:
Tässä asiakirjassa kuvataan yhteinen käyttöliittymä kirjastojen kirjaamiseen.
Päätavoitteena on antaa kirjastoille mahdollisuus vastaanottaa PsrLogLoggerInterface-objekti ja kirjoittaa siihen lokeja yksinkertaisella ja yleisellä tavalla.
Kehityksen näkökulmasta se on mukavaa, eikö? Tarkoitan, että se tarjoaa yhden, johdonmukaisen tavan, jolla voimme panostaa mihin tahansa lokikirjastoon, jota päätämme käyttää projekteissamme. Kerron haluamastani kirjastosta myöhemmin artikkelissa.
Niille, jotka ovat uusia olio-ohjelmoinnissa tai jotka ovat vain kiinnostuneita siitä, kuinka yhtenäinen käyttöliittymä hyödyttää meitä, ajattele asiaa näin: Riippumatta siitä, minkä järjestelmän valitset, sinulla on taatusti tietty joukko toimintoja, tiloja ja niin edelleen. voi käyttää sovelluksessasi.
Loppujen lopuksi sellaisen lokijärjestelmän lisääminen, jolla on standardi, jota sen on noudatettava, tarjoaa useita etuja riippumatta siitä, minkä kirjaston valitset (kunhan se on PSR-3:n mukainen).
Kokeile Monologia
Monolog on enemmän tai vähemmän de facto lokityökalu PHP-sovelluksille.
Projektin lisääminen Composerin kautta on helppoa, mutta se sisältää myös useita erilaisia tapoja tulostaa tietoja:
Monolog lähettää lokit tiedostoihin, pistorasiaan, postilaatikoihin, tietokantoihin ja erilaisiin verkkopalveluihin. Katso täydellinen luettelo käsittelijöistä alta. Erikoiskäsittelijöiden avulla voit rakentaa edistyneitä kirjausstrategioita.
Henkilökohtaisesti olen käyttänyt sitä vain lähetyksen yhteydessä tiedostoihin; On kuitenkin hyvä, että sen voi tulostaa muihin järjestelmiin (etenkin tietokantoihin, kuten WordPressin kanssa työskennellessä). Et tietenkään halua käyttää tätä kykyä väärin.
Toiseksi on tärkeää tunnustaa, että vaikka voit instantioida Loggerin funktiossa tai muussa luokassa, on olemassa muita, oliokeskeisempiä tapoja tehdä tämä. PSR-3 kattaa tämän (kuten edellä mainittiin).
Lyhyesti sanottuna haluat varmistaa, että luokkasi hyväksyy luokan esiintymän, joka toteuttaa LoggerInterfacen. Monolog toteuttaa mainitun käyttöliittymän, joten se ei ole ongelma.
Lisäksi, mitä tapahtuu, kun sinulla on joukko toisiinsa liittyviä luokkia, joiden kaikkien on otettava käyttöön loki?
- Perivätkö nämä luokat yhteiseltä vanhemmalta?
- Toteuttavatko nämä luokat jotain ominaisuutta? (Tämän vaihtoehdon ystäväni esitteli minulle äskettäin.)
- Hyväksyykö jokainen luokka riippuvuuden rakentajainjektion avulla?
On olemassa useita tapoja, joilla loggareita voidaan lisätä luokkaan, ja se riippuu siitä, miten projektisi on järjestetty.
Lisää kirjaamisesta
Joka tapauksessa kirjautumisen käyttöönotto sovellukseen on tärkeää useista syistä, kuten vianmäärityksestä, kun jokin ei toimi odotetulla tavalla sekä kehityksessä, lavastuksessa että erityisesti tuotannossa.
