Buscar..
Introducción
El PSR (Recomendación sobre estándares de PHP) es una serie de recomendaciones elaboradas por FIG (Framework Interop Group).
"La idea detrás del grupo es que los representantes del proyecto hablen sobre los puntos en común entre nuestros proyectos y encuentren formas de trabajar juntos" - Preguntas frecuentes de FIG
Los PSR pueden estar en los siguientes estados: Aceptado, Revisar, Borrador o En desuso.
PSR-4: Autoloader
PSR-4 es una recomendación aceptada que describe el estándar para las clases de carga automática a través de nombres de archivos. Se recomienda esta recomendación como alternativa al PSR-0 anterior (y ahora en desuso).
El nombre de clase completo debe coincidir con el siguiente requisito:
\<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>
- DEBE contener un espacio de nombres de proveedor de nivel superior (por ejemplo:
Alphabet
) - PUEDE contener uno o más
Google\AdWord
nombres (por ejemplo:Google\AdWord
) - DEBE contener un nombre de clase final (Ej .:
KeywordPlanner
)
Por lo tanto, el nombre final de la clase sería Alphabet\Google\AdWord\KeywordPlanner
. El nombre de clase completo también debe traducirse en una ruta de archivo significativa, por lo tanto Alphabet\Google\AdWord\KeywordPlanner
se ubicará en [path_to_source]/Alphabet/Google/AdWord/KeywordPlanner.php
A partir de PHP 5.3.0, se puede definir una función de autocargador personalizado para cargar archivos según la ruta y el patrón de nombre de archivo que defina.
# Edit your php to include something like:
spl_autoload_register(function ($class) { include 'classes/' . $class . '.class.php';});
Reemplazar la ubicación ('clases /') y la extensión del nombre de archivo ('.class.php') con valores que se aplican a su estructura.
El administrador de paquetes de Composer es compatible con PSR-4, lo que significa que, si sigue el estándar, puede cargar sus clases en su proyecto automáticamente usando el autocargador del proveedor de Composer.
# Edit the composer.json file to include
{
"autoload": {
"psr-4": {
"Alphabet\\": "[path_to_source]"
}
}
}
Regenera el archivo autoloader
$ composer dump-autoload
Ahora en tu código puedes hacer lo siguiente:
<?php
require __DIR__ . '/vendor/autoload.php';
$KeywordPlanner = new Alphabet\Google\AdWord\KeywordPlanner();
PSR-1: Estándar de codificación básica
PSR-1 es una recomendación aceptada y describe una recomendación estándar básica sobre cómo se debe escribir el código.
- Esboza las convenciones de nomenclatura para clases, métodos y constantes.
- Hace que la adopción de las recomendaciones de PSR-0 o PSR-4 sea un requisito.
- Indica qué etiquetas PHP usar:
<?php
y<?=
Pero no<?
. - Especifica qué codificación de archivo usar (UTF8).
- También establece que los archivos deben declarar nuevos símbolos (clases, funciones, constantes, etc.) y no causar otros efectos secundarios, o ejecutar la lógica con efectos secundarios y no definir símbolos, pero hacer ambos.
PSR-8: Interfaz Huggable
PSR-8 es una parodia de PSR ( actualmente en borrador ) propuesta por Larry Garfield como una broma de April Fools el 1 de abril de 2014.
El borrador describe cómo definir una interfaz para hacer que un objeto sea Huggable
.
Salir del esquema de código:
<?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);
}