Skip to content

Instantly share code, notes, and snippets.

View martinbean's full-sized avatar

Martin Bean martinbean

View GitHub Profile
@martinbean
martinbean / filtering.php
Last active December 28, 2015 05:29
Very crude way of building up raw SQL clauses for filtering and sorting.
<?php
// whitelist columns to filter by
$filterable = array(
'colour',
'size',
'price'
);
// build up string for WHERE clause
$where = array();
@martinbean
martinbean / Adapter.php
Last active July 9, 2018 08:32
Basic ORM sketch that uses value objects, data mappers that persists data to a data source, and adapters for data sources.
<?php
abstract class Adapter
{
protected $config;
protected $connection;
public function __construct($config)
{
$this->config = $config;
@martinbean
martinbean / Condition.php
Created January 30, 2014 14:30
A rough, basic query object implementation
<?php
class Condition
{
protected $field;
protected $comparator;
protected $value;
const EQUALS = '=';
const GREATER_THAN = '>';
const LESS_THAN = '<';
@martinbean
martinbean / config.json
Created August 1, 2014 07:23 — forked from anonymous/config.json
Your Fight Site CMS Bootstrap variables
{
"vars": {
"@gray-darker": "lighten(#000, 13.5%)",
"@gray-dark": "lighten(#000, 20%)",
"@gray": "lighten(#000, 33.5%)",
"@gray-light": "lighten(#000, 46.7%)",
"@gray-lighter": "lighten(#000, 93.5%)",
"@brand-primary": "#c00",
"@brand-success": "#5cb85c",
"@brand-info": "#5bc0de",
@martinbean
martinbean / ValidatorTrait.php
Last active August 29, 2015 14:05
Laravel validation trait.
<?php
trait ValidatorTrait {
protected $validator;
public function isValid()
{
return $this->getValidator()->passes();
}
@martinbean
martinbean / Registrar.php
Last active September 1, 2017 15:47
Laravel 5 registrar service, improved
<?php namespace App\Services;
use App\Contracts\UserRepository;
use App\User;
use Illuminate\Contracts\Auth\Registrar as RegistrarContract;
use Illuminate\Contracts\Hashing\Hasher as HasherContract;
use Illuminate\Contracts\Validation\Factory as ValidationFactory;
use Illuminate\Contracts\Validation\Validator;
class Registrar implements RegistrarContract {
@martinbean
martinbean / plugin.ajax_submit.js
Created April 1, 2015 11:41
jQuery AJAX submit plugin
// Submit a form via AJAX and return the request object
$.fn.ajaxSubmit = function (options) {
var settings = $.extend({
submittingText: 'Submitting...'
}, options);
var form = $(this);
var url = form.attr('action');
var data = form.serialize();
var type = form.attr('method');
var submitButton = form.find('[type="submit"]');
@martinbean
martinbean / Administrator.php
Last active September 6, 2015 19:21
Is administrator middleware for Laravel
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class Administrator
{
/**
@martinbean
martinbean / gist:8d299655f4207c580cac
Last active August 29, 2015 14:20
Displays a confirmation dialog if a form’s changed and the user tries to leave the page.
(function ($) {
$.fn.confirmUnload = function (options) {
var settings = $.extend({
message: 'You have unsaved changes.'
}, options);
return this.filter('form').each(function () {
var form = $(this);
var dataOnLoad = form.serialize();
@martinbean
martinbean / validation.php
Created July 28, 2015 18:58
Check submitted value matches a hash in Laravel.
<?php
// Definition
Validator::extend('hash_matches', function ($attribute, $value, $parameters) {
return Hash::check($value, $parameters[0]);
});
// Usage
'old_password' => 'required|hash_matches:'.$old_password,