Ricerca…


introduzione

La PSR (PHP Standards Recommendation) è una serie di raccomandazioni formulate dalla FIG (Framework Interop Group).

"L'idea alla base del gruppo è che i rappresentanti del progetto parlino dei punti in comune tra i nostri progetti e trovino i modi in cui possiamo lavorare insieme" - FAQ FIG

I PSR possono essere nei seguenti stati: Accettato, Revisiona, Bozza o Obsoleto.

PSR-4: autoloader

PSR-4 è una raccomandazione accettata che delinea lo standard per le classi di autoloading tramite nomi di file. Questa raccomandazione è raccomandata come alternativa alla precedente (e ora deprecata) PSR-0 .

Il nome classe completo deve corrispondere al seguente requisito:

 \<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>
  • DEVE contenere uno spazio dei nomi del fornitore di livello superiore (ad esempio: Alphabet )
  • Può contenere uno o più sotto-nomi (ad esempio: Google\AdWord )
  • DEVE contenere un nome di classe finale (es: KeywordPlanner )

Quindi il nome della classe finale sarebbe Alphabet\Google\AdWord\KeywordPlanner . Il nome di classe completo dovrebbe anche tradursi in un percorso di file significativo, quindi Alphabet\Google\AdWord\KeywordPlanner si troverà in [path_to_source]/Alphabet/Google/AdWord/KeywordPlanner.php

A partire da PHP 5.3.0, è possibile definire una funzione di caricamento automatico personalizzata per caricare i file in base al percorso e al modello di nome file che si definiscono.

# Edit your php to include something like:
spl_autoload_register(function ($class) { include 'classes/' . $class . '.class.php';});

Sostituendo la posizione ('classes /') e l'estensione del nome file ('.class.php') con i valori che si applicano alla tua struttura.

Il gestore di pacchetti compositi supporta PSR-4, il che significa che, se si segue lo standard, è possibile caricare automaticamente le classi nel progetto utilizzando il caricatore automatico del fornitore di Composer.

# Edit the composer.json file to include
{
    "autoload": {
        "psr-4": {
            "Alphabet\\": "[path_to_source]"
        }
    }
}

Rigenera il file del caricatore automatico

$ composer dump-autoload

Ora nel tuo codice puoi fare quanto segue:

<?php

require __DIR__ . '/vendor/autoload.php';
$KeywordPlanner = new Alphabet\Google\AdWord\KeywordPlanner();

PSR-1: standard di codifica di base

PSR-1 è una raccomandazione accettata e delinea una raccomandazione standard di base su come scrivere il codice.

  • Descrive le convinzioni di denominazione per classi, metodi e costanti.
  • Rende l'adozione delle raccomandazioni PSR-0 o PSR-4 un requisito.
  • Indica quali tag PHP usare: <?php e <?= Ma non <? .
  • Specifica quale codifica file usare (UTF8).
  • Dichiara inoltre che i file devono dichiarare nuovi simboli (classi, funzioni, costanti, ecc.) E non causare altri effetti collaterali, o eseguire la logica con effetti collaterali e non definire simboli, ma fare entrambi.

PSR-8: interfaccia Huggable

PSR-8 è una parodia di PSR ( attualmente in Draft ) proposta da Larry Garfield come una battuta di April Fools il 1 aprile 2014.

La bozza delinea come definire un'interfaccia per rendere un oggetto Huggable .

Excert dal profilo del codice:

<?php

namespace Psr\Hug;

/**
 * Defines a huggable object.
 *
 * A huggable object expresses mutual affection with another huggable object.
 */
interface Huggable
{

    /**
     * Hugs this object.
     *
     * All hugs are mutual. An object that is hugged MUST in turn hug the other
     * object back by calling hug() on the first parameter. All objects MUST
     * implement a mechanism to prevent an infinite loop of hugging.
     *
     * @param Huggable $h
     *   The object that is hugging this object.
     */
    public function hug(Huggable $h);
}


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow