20 librerías alucinantes de PHP que debes conocer – Parte 2

El lenguaje PHP, el cual se lanzó allá por el año 1995, es ahora mayor de edad y se nos está haciendo un poco mayor, pero es no quita que sea uno de los lenguajes de programación más famoso del mundo, y la primera opción para muchos desarrolladores web.

La comunidad de PHP en Github es una de las más grandes y activas, con proyectos alucinantes que salen a la luz constantemente. En este artículo te mostramos 20 librerías que nos han llamado poderosamente la atención.

PHP VCR

Port de una popular librería para Ruby para testear interacciones HTTP. PHP VCR registra todas las solicitudes HTTP y las almacena en “cassettes” que pueden ser reproducidos después. También cuenta con un gran conjunto de herramientas de testing, haciendo posible el inspeccionar y comparar los registros en detalle.

// After turning on, the VCR will intercept all requests
VCRVCR::turnOn();

// Record requests and responses in cassette file 'example'
VCRVCR::insertCassette('example');

// Following request will be recorded once and replayed in future test runs
$result = file_get_contents('http://example.com');
$this->assertNotEmpty($result);

// To stop recording requests, eject the cassette
VCRVCR::eject();

// Turn off VCR to stop intercepting requests
VCRVCR::turnOff();

Oauth 2.0 Server

Esta librería te permite configurar un servidor Oauth 2.0 de forma sencilla y establecer todos los niveles de autenticación necesarios para proteger tu API. Es totalmente compatible con los estándares y soporta todos los grants definidos por el protocolo Oauth.

// Setup the authorization server
$server = new LeagueOAuth2ServerAuthorizationServer(
    $clientRepository,
    $accessTokenRepository,
    $scopeRepository,
    $privateKey,
    $publicKey
);

// Enable a grant on the server
$server->enableGrantType(
    new LeagueOAuth2ServerGrantClientCredentialsGrant(),
    new DateInterval('PT1H') // access tokens will expire after 1 hour
);

Imagine

Una librería para manipulación de imágenes que intenta concentrar todas las librerías de bajo nivel para el procesamiento de imágenes en PHP bajo la misma API orientada a objetos. Esto permite que Imagine se utilice para una amplia variedad de tareas como el dibujo, el redimensionamiento, recorte, uso de filtros, efectos, edición de metadatos y demás.

$palette = new ImagineImagePaletteRGB();

$image = $imagine->create(new Box(400, 300), $palette->color('#000'));

$image->draw()
    ->ellipse(new Point(200, 150), new Box(300, 225), $image->palette()->color('fff'));

$image->save('/path/to/ellipse.png');

AWS SDK

Librería oficial de PHP para trabajar con Amazon Web Services. El SDK hace que sea muy fácil conectar AWS con cualquier proyecto PHP y acceder a todos sus servicios. Cuenta también con wrapper para Laravel súper útil, el cual puedes descargar desde este enlace.

// Instantiate an Amazon S3 client.
$s3 = new S3Client([
    'version' => 'latest',
    'region'  => 'us-west-2'
]);

$s3->putObject([
    'Bucket' => 'my-bucket',
    'Key'    => 'my-object',
    'Body'   => fopen('/path/to/file', 'r'),
    'ACL'    => 'public-read',
]);

Purl

Librería de PHP súper ligera para trabajar con URLs. Con Purl puedes componer rutas complejas aributo por atributo, extrayendo datos de las URLS, manipulando queries y mucho más...

$url = PurlUrl::parse('http://jwage.com')
    ->set('scheme', 'https')
    ->set('port', '443')
    ->set('user', 'jwage')
    ->set('pass', 'password')
    ->set('path', 'about/me')
    ->set('query', 'param1=value1&param2=value2');

echo $url->getUrl(); // https://jwage:[email protected]:443/about/me?param1=value1&param2=value2
echo $url->publicSuffix; // com
echo $url->registerableDomain; // jwage.com

Daux.io

Generador de documentación que utiliza una estructura simple de carpetas y archivos Markdown para crear la documentación de sitios web. Daux.io cuenta con remarcado de sintaxis automático, 4 variaciones de temas, Bootstrap HTML para una fácil personalización, navegación con URLs amigables y muchas más características.

// Example configuration
{
    "title": "DAUX.IO",
    "tagline": "The Easiest Way To Document Your Project",
    "author": "Justin Walsh",
    "image": "app.png",
    "html": {
        "theme": "daux-blue",
        "breadcrumbs": true,
        "repo": "justinwalsh/daux.io",
        "edit_on_github": "justinwalsh/daux.io/blob/master/docs",
        "twitter": ["justin_walsh", "todaymade"],
        "google_analytics": "UA-12653604-10",
        "links": {
            "Download": "https://github.com/justinwalsh/daux.io/archive/master.zip",
            "GitHub Repo": "https://github.com/justinwalsh/daux.io",
            "Made by Todaymade": "http://todaymade.com"
        }
    }
}

Dompdf

Dompdf es un generador de PDFs que coge un diseño normal de HTML y lo convierte a un archivo .pdf. Es capaz de entender la mayoría de reglas CSS, que, o bien pueden estar en el mismo fichero HTML, o incluidas en un fichero CSS aparte.

// reference the Dompdf namespace
use DompdfDompdf;

// instantiate and use the dompdf class
$dompdf = new Dompdf();
$dompdf->loadHtml('hello world');

// (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4', 'landscape');

// Render the HTML as PDF
$dompdf->render();

// Output the generated PDF to Browser
$dompdf->stream();

Instaphp

Librería no oficial para acceder a la API de Instagram. Brinda a los desarrolladores de una manera sencilla de autenticar su app y obtener acceso a diversa información de Instagram como imágenes, usuarios, comentarios, likes y tags.

$api = new InstaphpInstaphp([
    'client_id' => 'your client id',
    'client_secret' => 'your client secret',
    'redirect_uri' => 'http://somehost.foo/callback.php',
    'scope' => 'comments+likes'
]);

$popular = $api->Media->Popular(['count' => 10]);

if (empty($popular->error)) {
    foreach ($popular->data as $item) {
        printf('<img src="%s">', $item['images']['low_resolution']['url']);
    }
}

PHPExcel

Un conjunto de clases PHP que permiten a los desarrolladores implementar de forma sencilla hojas de cálculo editando sus apps. Esta librería puede leer y crear hojas de cálculo en un sinfín de formatos, incluyendo Excel (.xls y .xlsx), OpenDocument (.ods) y CSV por nombrar algunos.

include 'PHPExcel/IOFactory.php';

$inputFileName = './sampleData/example1.xls';

echo 'Loading file ',pathinfo($inputFileName,PATHINFO_BASENAME),' using IOFactory';
$objPHPExcel = PHPExcel_IOFactory::load($inputFileName);

$sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
var_dump($sheetData);

Latitude

Librería sin dependencias para construir queries SQL utilizando métodos encadenados. Soporta la mayoría de tipos de queries y funciona muy bien con MySQL, Postgres, SQL Server y otras bases de datos. Cuenta con ciertas características integradas para que tus queries estén protegidas antes las inyecciones SQL.

$select = SelectQuery::make(
        'id',
        'username'
    )
    ->from('users');

echo $select->sql();
// SELECT id, username FROM users

Fuente: tutorialzine.com

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP