Open Source

I’m a big fan and defensor of open source. I like to contribute to projects giving back a little of what I get from the community.

Corcel PHP

I’m the creator of Corcel PHP, a Composer package that allows you to get all data from an existing WordPress application, using Laravel’s Eloquent ORM. Corcel is very used when talking about integration between WordPress and Laravel.

Using Corcel you can do amazing things like this following one, remembering that you get data directly from the database, so it doesn’t matter where your WordPress application is. You can even have Laravel and WordPress apps working on different servers. Just tell Corcel where your database is.

// All published posts
$posts = Post::published()->get();
$posts = Post::status('publish')->get();

// A specific post
$post = Post::find(31);
echo $post->post_title;

For more information about Corcel, check out its documentation page on GitHub.

Corcel has also a plugin for the WordPress plugin Advanced Custom Fields. When used you have access to almost all ACF field types, using the same way you use with Corcel.

$post = Post::find(1);

// returns the url custom field created using ACF
echo $post->acf->url;

Galahad

I work for InterNACHI, a US-based association of home inspectors, and we have some open source projects under the glhd organization name on GitHub (and galahad on Packagist).

I have most contributions to the following repositories:

Laravel Addressing,  a Laravel port to the addressing package, that provides addressing functionalities like countries list, states, cities, zip code validator and more. It uses Google Maps to save locally JSON files with all data you need. So, no database is necessary.

// Countries
$country = Addressing::country('US');
echo $country->getName(); // United States

// States and Provincies
echo Addressing::country('US')->administrativeArea('AL')->getName(); // Alabama

$administrativeAreas = Addressing::country('BR')->administrativeAreas();
foreach ($administrativeAreas as $administrativeArea) {
    $code =$administrativeArea->getCode();
    $name =$administrativeArea->getName();
    echo sprint("[%s]: %s\n", $code, $name);
}

WP Bootstrap Widgets, a WordPress plugin that allows you to use Bootstrap 3 components as WordPress widgets. Very useful when you have a Bootstrap-based theme or even when using SiteOrigin Page Builder plugin.

vBulletin bbCode Parser, a Composer package that allows you to parse bbCode – very used in forum applications – into HTML code. Example:

$bbcode = '[font=Times New Roman]foo bar text[/font]';

$parser = new Parser;
echo $parser->parse($bbcode);

// <span style="font-family: Times New Roman;">foo bar text</span>

Others

I also have small contributions to the following packages:

Eloquent Query Filter, a composer package that allows you to filter Eloquent models through the URL query, making your code so much cleaner. For example, this URL would filter your User models through name  and gender: http://example.com/users?name=john&gender=male.

<?php

namespace App\Http\Filters;

use Kblais\QueryFilter\QueryFilter;

class UserFilter extends QueryFilter
{
    public function name($name)
    {
        $this->builder->where('name', 'like', "%name%");
    }

    public function gender($gender)
    {
        $this->builder->where('gender', strtolower($gender));
    }
}

Bootstrap Form, a Bootstrap 3 form builder for Laravel apps.

BootForm::text('username');