20 librerías de PHP a tener en cuenta este verano - Parte 1

Lanzado inicialmente en 1995, el lenguaje PHP ya ha alcanzado la mayoría de edad, pero esto no impide que siga siendo uno de los lenguajes de programación más utilizados en todo el mundo, y la primera opción de muchos desarrolladores back-end.

La comunidad de PHP en GitHub es también una de las comunidades más grande y más activa, con nuevos proyectos que aparecen constantemente. Aquí está nuestra selección de las 10 librerías de PHP open source más útiles e interesantes que no te puedes perder en el verano de este 2016.

Monolog

Con Monolog puedes crear sistemas de logging avanzados enviando tus logs de PHP a archivos, sockets, bases de datos, bandejas de entrada u otros servicios web. La librería cuenta con más de 50 controladores para diversas utilidades y puedes integrarla en distintos frameworks como Laravel, Symfony2 y Slim.

use MonologLogger;
use MonologHandlerStreamHandler;

// create a log channel
$log = new Logger('name');
$log->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING));

// add records to the log
$log->warning('Foo');
$log->error('Bar');

PHPExcel

Un conjunto de clases PHP que permiten a los desarrolladores implementar fácilmente la edición de hojas de cálculo en sus aplicaciones. La librería puede leer y escribir en hojas de cálculo de varios formatos populares, incluyendo Excel (.xls y .xlsx), OpenDocument (.ods), y CSV por nombrar solo unos pocos.

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);

PHP-ML

Una interesante librería para experimentar con una Machine Learning. PHP-ML te proporciona una API para entrenar a tu bot y hacer predicciones basadas en los datos de entrada. Ofrece una variedad de diferentes algoritmos de reconocimiento de patrones y cálculos estadísticos complejos.

use PhpmlClassificationKNearestNeighbors;

$samples = [[1, 3], [1, 4], [2, 4], [3, 1], [4, 1], [4, 2]];
$labels = ['a', 'a', 'a', 'b', 'b', 'b'];

$classifier = new KNearestNeighbors();
$classifier->train($samples, $labels);

$classifier->predict([3, 2]);
// returns 'b' as the [3, 2] point is closer to the points in group b

Opauth

Librería para que los usuarios puedan autenticarse a través de su cuenta en redes sociales u otros servicios. Por supuesto, todas las grandes están disponibles: Google, Facebook, Twitter, Github, Instagram, LinkedIn. Opauth soporta muchos frameworks de PHP para que pueda ser fácilmente integrado en la mayoría de aplicaciones PHP.

'Strategy' => array(  
    // Define strategies here.

    'Facebook' => array(
        'app_id' => 'YOUR APP ID',
        'app_secret' => 'YOUR APP SECRET'
    ),
);

Whoops

Whoops mejora en gran medida la experiencia de depuración en PHP mediante la visualización de páginas de errores detalladas cuando algo está mal en la aplicación. Esta página de error nos da la traza completa y muestra los archivos y fragmentos de código específicos que produjeron el error, con toda la sintaxis de resaltada y colorida. El framework Laravel viene con Whoops integrado.

$whoops = new WhoopsRun;
$whoops->pushHandler(new WhoopsHandlerPrettyPageHandler);
$whoops->register();
// That's it!

FastCache

La implementación de este sistema de caché en tus aplicaciones PHP garantiza que se carguen de manera más rápida mediante la reducción de la cantidad de consultas enviadas a la base de datos. En lugar de ejecutar todas las consultas a la base de datos, FastCache envía las únicas, las guarda en caché, y luego las sirve para cada repetición. De esta manera si tienes una misma consulta que se repite 1000 veces, solo se consultará a base de datos una sola vez y el resto 999 cargas serán de caché.

use phpFastCacheCacheManager;

$config = array(
    "storage"   =>  "files",
    "path"      =>  "/your_cache_path/dir/",
);
CacheManager::setup($config);

// Try to get from Cache first with an Identity Keyword
$products = CacheManager::get("products");

// If not available get from DB and save in Cache.
if(is_null($products)) {
    $products = "DB SELECT QUERY";
    // Cache your $products for 600 seconds.
    CacheManager::set($cache_keyword, $products,600);
}

Guzzle

Guzzle es uno de los mejores clientes HTTP de toda la red. Puedes gestionar casi cualquier tarea HTTP que lances en él: peticiones síncronas y asíncronas, cookies HTTP, streaming de grandes cargas y descargas. Trabajar con Guzzle es muy fácil y la documentación está bien escrita con una gran cantidad de ejemplos y explicaciones detalladas.

$client = new GuzzleHttpClient();
$res = $client->request('GET', 'https://api.github.com/user', [
    'auth' => ['user', 'pass']
]);
echo $res->getStatusCode();
// "200"
echo $res->getHeader('content-type');
// 'application/json; charset=utf8'
echo $res->getBody();
// {"type":"User"...'

// Send an asynchronous request.
$request = new GuzzleHttpPsr7Request('GET', 'http://httpbin.org');
$promise = $client->sendAsync($request)->then(function ($response) {
    echo 'I completed! ' . $response->getBody();
});
$promise->wait();

Munee

Munee cuenta con un montón de trucos bajo la manga: combina varias solicitudes CSS o JavaScript en una sola, redimensión de imágenes, compilación automática para Sass, Less y CoffeeScript, así como minimización y compresión Gzip. Todos los procesos mencionados anteriormente se almacenan en caché tanto del lado del servidor, como del lado del cliente para un rendimiento óptimo.

require 'vendor/autoload.php';
echo MuneeDispatcher::run(new MuneeRequest());
<!-- Combining two CSS files into one. --> <link rel="stylesheet" href="/css/bootstrap.min.css, /css/demo.css"> <!-- Resizing image --> <img src="/path/to/image.jpg?resize=width[100]height[100]exact[true]"> <!-- Files that need preprocessing are compiled automatically --> <link rel="stylesheet" href="/css/demo.scss"> <!-- Minifying code --> <script src="/js/script.js?minify=true"></script>

Twig

Motor de plantillas con una sintaxis muy limpia que hace que el diseño sea más corto y más fácil de escribir. Twig ofrece todo lo que cabe esperar de una librería de plantillas moderna: escape variables, bucles, bloques if / else, así como un modo sandbox que verifica el código de la plantilla.

// Template HTML <p>Welcome {{ name }}!</p> // Rendering 
require_once '/path/to/lib/Twig/Autoloader.php';
Twig_Autoloader::register();
$loader = new Twig_Loader_Filesystem('/path/to/templates');
$twig = new Twig_Environment($loader, array( 'cache' => '/path/to/compilation_cache', ));
echo $twig->render('index.html', array('name' => 'George'));

Goutte

Goutte es un Web Scrapper que puede rastrear sitios web HTML y extraer datos HTML o XML de ellos. Funciona enviando una solicitud a una determinada URL y esta, devolverá un objeto Crawler, lo que permite al desarrollador interactuar con la página remota de varias maneras.

use GoutteClient;
$client = new Client();

// Go to the symfony.com website
$crawler = $client->request('GET', 'http://www.symfony.com/blog/');

// Click on the links
$link = $crawler->selectLink('Security Advisories')->link();
$crawler = $client->click($link);

// Extract data
$crawler->filter('h2 > a')->each(function ($node) {
    print $node->text()."n";
});

Fuente: tutorialzine.com

COMPARTE ESTE ARTÍCULO

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