Skip to content

Instantly share code, notes, and snippets.

View vinicius73's full-sized avatar
🤓
"Those who cannot acknowledge themselves, will eventually fail."

Vinicius Reis vinicius73

🤓
"Those who cannot acknowledge themselves, will eventually fail."
View GitHub Profile
@vinicius73
vinicius73 / BaseRepository.php
Created March 5, 2016 05:44
Base Repository for Laravel Eloquent
<?php
namespace App\Support\Repositories;
use Illuminate\Database\Eloquent\Builder as EloquentQueryBuilder;
use Illuminate\Database\Eloquent\Collection as EloquentCollection;
use Illuminate\Database\Query\Builder as QueryBuilder;
use Illuminate\Pagination\AbstractPaginator as Paginator;
abstract class BaseRepository
<?php
// https://github.com/laravel/framework/blob/5.1/src/Illuminate/Foundation/helpers.php#L56
// https://github.com/laravel/framework/blob/5.1/src/Illuminate/Container/Container.php#L1128
// https://github.com/laravel/framework/blob/5.1/src/Illuminate/Container/Container.php#L614
$query = app(User::class)->newQuery();
$query = app()->make(User::class)->newQuery();
$query = app()->make('\App\Domains\Users\User')->newQuery();
$modelClass = User::class;
$query = app($modelClass)->newQuery();
@vinicius73
vinicius73 / EloquentQuery.php
Created March 5, 2016 05:03
Modos de uso do eloquent
<?php
// chain
// https://github.com/laravel/framework/blob/5.1/src/Illuminate/Database/Eloquent/Model.php#L3447
// https://github.com/laravel/framework/blob/5.1/src/Illuminate/Database/Eloquent/Model.php#L3429
$user = User::where('email', '[email protected]')->where('is_dead', false)->first();
$bastards = User::where('country', 'westeros')->whereNull('father')->get();
// https://github.com/laravel/framework/blob/5.1/src/Illuminate/Database/Eloquent/Model.php#L574
$query = User::query();
$query->where('email', '[email protected]');
@vinicius73
vinicius73 / UsersRepository.php
Created March 2, 2016 02:01
Repository Pattern não precisa ser chato
<?php
class UsersRepository
{
public function getList($limit = 15, $offset = 0)
{
return mysql_query("SELECT * FROM `users` LIMIT {$offset} , {$limit}");
}
}
@vinicius73
vinicius73 / BaseQueryBuilder.php
Created February 29, 2016 15:24
Repo query filter
<?php
namespace App\Support\Queries;
use Illuminate\Database\Query\Builder as QueryBuilder;
use Illuminate\Database\Eloquent\Builder as EloquentQueryBuilder;
use Carbon\Carbon;
abstract class BaseQueryBuilder
{
protected function compileVar($expression)
{
return preg_replace('/\(\'(.*?)\'\,\s*(.*)\)/', '<?php $$1 = $2; ?>', $expression);
}
@vinicius73
vinicius73 / DateField.php
Created January 18, 2016 14:43 — forked from emtudo/DateField.php
Helper para datas Laravel
<?php
namespace App\Support\Validators\Rules;
use App\Support\Helpers\Dates as DateHelper;
class DateField
{
/**
* @param string $attribute
@vinicius73
vinicius73 / CustomValidatorsServiceProvider.php
Last active May 5, 2016 20:54
Helper para datas Laravel
<?php
namespace App\Support\Validators;
use Illuminate\Support\ServiceProvider;
use Illuminate\Validation\Factory as ValidatorFactory;
class CustomValidatorsServiceProvider extends ServiceProvider
{
public function boot()
@vinicius73
vinicius73 / implode.js
Created November 5, 2015 14:50
VueJS implode filter
Vue.filter('implode', function (value, piece, key) {
piece = piece ? piece : ', ';
if(_.isUndefined(key)) {
return value.join(piece);
}
return _.pluck(value, key).join(piece);
});