Skip to content

Instantly share code, notes, and snippets.

View martinbean's full-sized avatar

Martin Bean martinbean

View GitHub Profile
@martinbean
martinbean / function.js
Created June 8, 2016 09:36
Lambda function to send Slack notification on deployment
'use strict';
const https = require('https');
const querystring = require('querystring');
String.prototype.capitalizeFirstLetter = function () {
return this.charAt(0).toUpperCase() + this.slice(1);
}
exports.handler = function (event, context) {
@martinbean
martinbean / VerifySnsMessageCameFromAmazon.php
Created July 8, 2016 21:01
Laravel 5.x middleware to verify an SNS request came from Amazon.
<?php
namespace App\Http\Middleware;
use Aws\Sns\Message;
use Aws\Sns\MessageValidator;
use Closure;
class VerifySnsMessageCameFromAmazon
{
@martinbean
martinbean / macros.php
Created July 30, 2016 10:48
Laravel Request startsWith and endsWith macros
<?php
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Str;
Request::macro('startsWith', function () {
return Str::startsWith(func_get_args());
});
Request::macro('endsWith', function () {
@martinbean
martinbean / BladeServiceProvider.php
Last active October 26, 2016 11:32
Laravel Blade directive for FontAwesome icons.
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;
class BladeServiceProvider extends ServiceProvider
{
/**
@martinbean
martinbean / Article.php
Created January 3, 2017 16:41
Request-driven development
<?php
namespace App\News;
use Illuminate\Database\Eloquent\Model;
class Article extends Model
{
public function publish()
{
@martinbean
martinbean / BladeServiceProvider.php
Created June 24, 2017 10:56
Admin Blade directive
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;
class BladeServiceProvider extends ServiceProvider
{
/**
@martinbean
martinbean / ForceSecure.php
Created June 28, 2017 13:11
Redirect non-secure requests on Heroku
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class ForceSecure
{
/**
@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 / install-autoconf.sh
Created October 31, 2017 10:30
Install autoconf on macOS
#!/bin/sh
cd ~/
curl -OL http://ftpmirror.gnu.org/autoconf/autoconf-latest.tar.gz
tar xzf autoconf-latest.tar.gz
cd autoconf-latest
./configure --prefix=/usr/local
make
sudo make install
@martinbean
martinbean / ExampleTest.php
Created November 16, 2017 13:55
TestResponse fromJsonString() macro
<?php
namespace Tests\Feature;
use Illuminate\Foundation\Testing\TestResponse;
use Tests\TestCase;
class ExampleTest extends TestCase
{
public function testExample()